1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.bitrepository.integrityservice.workflow;
24
25 import org.bitrepository.common.settings.Settings;
26 import org.bitrepository.service.scheduler.JobScheduler;
27 import org.bitrepository.service.workflow.WorkflowManager;
28 import org.bitrepository.settings.referencesettings.Schedule;
29 import org.bitrepository.settings.referencesettings.Schedules;
30 import org.bitrepository.settings.referencesettings.WorkflowConfiguration;
31 import org.bitrepository.settings.referencesettings.WorkflowSettings;
32
33
34
35
36
37 public class IntegrityWorkflowManager extends WorkflowManager {
38 public static final long DAILY = 86400000;
39 public static final long HOURLY = 360000;
40
41 public IntegrityWorkflowManager(IntegrityWorkflowContext context, JobScheduler scheduler) {
42 super(context,
43 getWorkflowSettings(context.getSettings()),
44 scheduler);
45 }
46
47 private static WorkflowSettings getWorkflowSettings(Settings settings) {
48 WorkflowSettings workflowSettings;
49 if (settings.getReferenceSettings().getIntegrityServiceSettings().isSetWorkflows()) {
50 workflowSettings = settings.getReferenceSettings().getIntegrityServiceSettings().getWorkflows();
51 } else {
52 workflowSettings = createDefaultWorkflowSettings();
53 }
54 return workflowSettings;
55 }
56
57
58
59
60
61 protected static WorkflowSettings createDefaultWorkflowSettings() {
62 WorkflowSettings defaultWorkflowSettings = new WorkflowSettings();
63 WorkflowConfiguration completeIntegrityWorkflowConf = new WorkflowConfiguration();
64 completeIntegrityWorkflowConf.setWorkflowClass(CompleteIntegrityCheck.class.getCanonicalName());
65 Schedule schedule = new Schedule();
66 schedule.setWorkflowInterval(DAILY);
67 completeIntegrityWorkflowConf.setSchedules(new Schedules());
68 completeIntegrityWorkflowConf.getSchedules().getSchedule().add(schedule);
69 defaultWorkflowSettings.getWorkflow().add(completeIntegrityWorkflowConf);
70 return defaultWorkflowSettings;
71 }
72
73 @Override
74 protected String getDefaultWorkflowPackage() {
75 return "org.bitrepository.integrityservice.workflow";
76 }
77 }