[VID-6] Initial rebase push
[vid.git] / epsdk-app-onap / src / main / java / org / openecomp / portalapp / scheduler / RegistryAdapter.java
1 /*-\r
2  * ================================================================================\r
3  * ECOMP Portal SDK\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ================================================================================\r
19  */\r
20 package org.openecomp.portalapp.scheduler;\r
21 \r
22 import java.util.ArrayList;\r
23 import java.util.Arrays;\r
24 import java.util.List;\r
25 \r
26 import org.openecomp.portalsdk.core.scheduler.Registerable;\r
27 import org.openecomp.portalsdk.workflow.services.WorkflowScheduleService;\r
28 import org.quartz.Trigger;\r
29 import org.springframework.beans.factory.annotation.Autowired;\r
30 import org.springframework.scheduling.quartz.SchedulerFactoryBean;\r
31 import org.springframework.stereotype.Component;\r
32 \r
33 @Component\r
34 public class RegistryAdapter {\r
35 \r
36         @Autowired\r
37         private Registerable registry;\r
38 \r
39         @Autowired\r
40         private WorkflowScheduleService workflowScheduleService;\r
41 \r
42         private SchedulerFactoryBean schedulerBean;\r
43 \r
44         Trigger trigger[] = new Trigger[1];\r
45 \r
46         public Trigger[] getTriggers() {\r
47 \r
48                 registry.registerTriggers();\r
49 \r
50                 List<Trigger> allTriggers = new ArrayList<Trigger>();\r
51 \r
52                 List<Trigger> coreTriggers = addCoreTriggers();\r
53                 final Trigger[] extTriggerArray = registry.getTriggers();\r
54 \r
55                 allTriggers.addAll(Arrays.asList(extTriggerArray));\r
56                 allTriggers.addAll(coreTriggers);\r
57 \r
58                 return allTriggers.toArray(trigger);\r
59         }\r
60 \r
61         public List<Trigger> addCoreTriggers() {\r
62                 // On startup of the application after crash recovery, invoke workflow\r
63                 // schedule trigger\r
64                 List<Trigger> triggers = getWorkflowScheduleService().triggerWorkflowScheduling();\r
65                 return triggers;\r
66         }\r
67 \r
68         public void setSchedulerBean(SchedulerFactoryBean _schedulerBean) {\r
69                 schedulerBean = _schedulerBean;\r
70         }\r
71 \r
72         public SchedulerFactoryBean getSchedulerBean() {\r
73                 return schedulerBean;\r
74         }\r
75 \r
76         public Registerable getRegistry() {\r
77                 return registry;\r
78         }\r
79 \r
80         public void setRegistry(Registerable registry) {\r
81                 this.registry = registry;\r
82         }\r
83 \r
84         public WorkflowScheduleService getWorkflowScheduleService() {\r
85                 return workflowScheduleService;\r
86         }\r
87 \r
88         public void setWorkflowScheduleService(WorkflowScheduleService workflowScheduleService) {\r
89                 this.workflowScheduleService = workflowScheduleService;\r
90         }\r
91 \r
92 }\r