git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Mon, 8 Feb 2021 16:15:13 +0000 (16:15 +0000)
committervasary.daniel <TFS\vasary.daniel>
Mon, 8 Feb 2021 16:15:13 +0000 (16:15 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java
server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java
server/user.mediacube.gui/src/user/jobengine/zk/model/JobSelectorModel.java

index 66b092bafaeb73137e4c940046ecfbbc87690555..cd38fc11ab6b6c39a69ef72af8cc31f018342dc2 100644 (file)
@@ -3,6 +3,8 @@ package user.jobengine.server;
 import java.util.List;\r
 import java.util.Map;\r
 \r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
 import user.jobengine.server.ast.JobTemplate;\r
 import user.jobengine.server.scheduler.ScheduledJob;\r
 import user.jobengine.server.steps.IJobStep;\r
@@ -11,10 +13,14 @@ public interface IJobEngineConfiguration {
 \r
        IJobStep createJobStep(String stepUnitName) throws Exception;\r
 \r
+       ScheduledJob createScheduledJob(BasicDBObject jobJSON);\r
+\r
        Map<String, IJobStepExecutor> getExecutors();\r
 \r
        Map<String, IProgram> getPrograms();\r
 \r
+       List<BasicDBObject> getScheduleDescriptors();\r
+\r
        Map<String, ScheduledJob> getSchedules();\r
 \r
        List<JobTemplate> getTemplates();\r
index c4037986f0fd053c9feed026f3106a635eaa84a9..dfafb8ea9d32f24c455b16052c56fe650a3f306e 100644 (file)
@@ -49,6 +49,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
        private final Map<String, IProgram> programs = new LinkedHashMap<String, IProgram>();\r
        private final Map<String, ScheduledJob> schedules = new LinkedHashMap<String, ScheduledJob>();\r
        private final List<JobTemplate> templates = Collections.synchronizedList(new ArrayList<JobTemplate>());\r
+       private final List<BasicDBObject> scheduleDescriptors = Collections.synchronizedList(new ArrayList<BasicDBObject>());\r
 \r
        private URLClassLoader stepsClassLoader = null;\r
 \r
@@ -91,7 +92,8 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                return result;\r
        }\r
 \r
-       private ScheduledJob createScheduledJob(BasicDBObject jobJSON) {\r
+       @Override\r
+       public ScheduledJob createScheduledJob(BasicDBObject jobJSON) {\r
                ScheduledJob sj = new ScheduledJob();\r
                String name = jobJSON.getString("name");\r
                String template = jobJSON.getString("template");\r
@@ -149,6 +151,11 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                return programs;\r
        }\r
 \r
+       @Override\r
+       public List<BasicDBObject> getScheduleDescriptors() {\r
+               return scheduleDescriptors;\r
+       }\r
+\r
        @Override\r
        public Map<String, ScheduledJob> getSchedules() {\r
                return schedules;\r
@@ -211,6 +218,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
        @Override\r
        public void loadSchedules() throws Exception {\r
                getSchedules().clear();\r
+               getScheduleDescriptors().clear();\r
                String configFilePath = systemConfig.getConfig(JobEngineConfiguration.CONF_SCHEDULES);\r
                logger.info("Loading scheduler configuration file {}", configFilePath);\r
                String jsonConfig = new String(Files.readAllBytes(Paths.get(configFilePath)));\r
@@ -221,6 +229,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                        ScheduledJob sj = null;\r
                        try {\r
                                sj = createScheduledJob(sjob);\r
+                               getScheduleDescriptors().add(sjob);\r
                        } catch (Exception e) {\r
                                logger.error("Error creating job: {}", sjob);\r
                        }\r
index a30519b7603bd757a90315eecbcc576fcb473619..ff6d572539ac06149d29456cac5f294d2658f648 100644 (file)
@@ -26,8 +26,6 @@ import org.quartz.UnableToInterruptJobException;
 import org.quartz.impl.StdSchedulerFactory;\r
 import org.quartz.impl.matchers.KeyMatcher;\r
 \r
-import com.ibm.nosql.json.api.BasicDBList;\r
-\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobEngineConfiguration;\r
 \r
@@ -42,7 +40,6 @@ public class SchedulerService {
 \r
        private Scheduler scheduler = null;\r
        private IJobEngine jobEngine = null;\r
-       private BasicDBList scheduleJobs;\r
 \r
        public SchedulerService(IJobEngine jobEngine) {\r
                // http://www.quartz-scheduler.org/documentation/quartz-2.2.x/configuration/\r
@@ -99,10 +96,6 @@ public class SchedulerService {
                return result;\r
        }\r
 \r
-       public BasicDBList getScheduleJobs() {\r
-               return scheduleJobs;\r
-       }\r
-\r
        private void interruptJobs(List<JobExecutionContext> jobs) throws UnableToInterruptJobException {\r
                for (JobExecutionContext context : jobs) {\r
                        String instanceID = context.getFireInstanceId();\r
index 45c69860b20d51c55fb9ae36400e6a03043aac0d..205fb415dddcd76ff217e373731deee0ac5c3196 100644 (file)
@@ -23,7 +23,6 @@ import org.zkoss.zul.Window;
 \r
 import com.ibm.nosql.json.api.BasicDBObject;\r
 \r
-import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.scheduler.ScheduledJob;\r
 import user.jobengine.server.scheduler.SchedulerService;\r
@@ -54,7 +53,7 @@ public class JobSelectorModel extends BaseModel {
                if (selectedJob == null)\r
                        return;\r
 \r
-               ScheduledJob scheduledJob = jobEngine.getScheduledJob("");\r
+               ScheduledJob scheduledJob = jobEngine.getScheduledJob(selectedJob.getString("template"));\r
                scheduledJob.setJobEngine(jobEngine);\r
                try {\r
                        scheduledJob.doManualJob();\r
@@ -79,7 +78,7 @@ public class JobSelectorModel extends BaseModel {
        @Init\r
        public void init() {\r
                this.jobEngine = (IJobEngine) Executions.getCurrent().getArg().get("jobEngine");\r
-               jobs = new ListModelList<>(NoSQLUtils.asList(jobEngine.getScheduler().getScheduleJobs()));\r
+               jobs = new ListModelList<>(jobEngine.getJobEngineConfiguration().getScheduleDescriptors());\r
        }\r
 \r
        @Command\r
@@ -88,7 +87,7 @@ public class JobSelectorModel extends BaseModel {
                SchedulerService scheduler = jobEngine.getScheduler();\r
                try {\r
                        scheduler.restart();\r
-                       jobs = new ListModelList<>(NoSQLUtils.asList(scheduler.getScheduleJobs()));\r
+                       jobs = new ListModelList<>(jobEngine.getJobEngineConfiguration().getScheduleDescriptors());\r
                } catch (Exception e) {\r
                        logger.info("Scheduler reload error. System message: {}", e.getMessage());\r
                }\r