git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 6 May 2020 15:26:09 +0000 (15:26 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 6 May 2020 15:26:09 +0000 (15:26 +0000)
16 files changed:
server/-configuration/run-mediacube-server-user-worker.launch [new file with mode: 0644]
server/-configuration/scheduledjobs.json
server/user.jobengine.executors/config/config.xml
server/user.jobengine.executors/src/user/jobengine/server/steps/WorkerKeepAliveStep.java
server/user.jobengine.osgi.server/META-INF/MANIFEST.MF
server/user.jobengine.osgi.server/src/user/jobengine/server/ExecutorConfigParser.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/actions/StatusMachine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java
server/user.jobengine.osgi.server/test/user/jobengine/server/IT/JobengineIT.java
server/user.jobengine.osgi.server/test/user/jobengine/server/JobIntegration.java
server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/ClusterService.java

diff --git a/server/-configuration/run-mediacube-server-user-worker.launch b/server/-configuration/run-mediacube-server-user-worker.launch
new file mode 100644 (file)
index 0000000..5f5185c
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">\r
+<booleanAttribute key="append.args" value="true"/>\r
+<booleanAttribute key="automaticAdd" value="false"/>\r
+<booleanAttribute key="automaticValidate" value="true"/>\r
+<stringAttribute key="bootstrap" value=""/>\r
+<stringAttribute key="checked" value="[NONE]"/>\r
+<booleanAttribute key="clearConfig" value="true"/>\r
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/run-mediacube-server-user-worker"/>\r
+<booleanAttribute key="default" value="true"/>\r
+<booleanAttribute key="default_auto_start" value="false"/>\r
+<intAttribute key="default_start_level" value="4"/>\r
+<booleanAttribute key="includeOptional" value="false"/>\r
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">\r
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>\r
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>\r
+</listAttribute>\r
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty&#13;&#10;-Djava.io.tmpdir=c:\temp\jetty&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/&#13;&#10;-Djobengine.transcoder.template=MP4&#13;&#10;-Djobengine.transcoder.version=1&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB;&#13;&#10;-Djobengine.nexio.db.user=sa&#13;&#10;-Djobengine.nexio.db.password=resolve&#13;&#10;-Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis;&#13;&#10;-Djobengine.planair.db.user=MAM&#13;&#10;-Djobengine.planair.db.password=VDani&#13;&#10;-Dnexio.host=192.168.0.12&#13;&#10;-Djobengine.nexio.name=testnexioclips&#13;&#10;-Dnexio.useMOSGateway=false&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=rundowns181026&#13;&#10;-Djobengine.octopus.storyfolders.name=storyfolders181026&#13;&#10;-Djobengine.octopus.stories.name=stories181026&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.json&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.disable=true&#13;&#10;-Djobengine.mediafinder.external=false&#13;&#10;-Djobengine.mediacube.service.proxyroot=&quot;/opt&quot;&#13;&#10;-Djobengine.scheduledexecution.disabled=false&#13;&#10;-Djobengine.randomize.archives=false&#13;&#10;-Djobengine.master.server=http://localhost:8888"/>\r
+<stringAttribute key="pde.version" value="3.3"/>\r
+<booleanAttribute key="show_selected_only" value="false"/>\r
+<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.omnifaces@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<booleanAttribute key="tracing" value="false"/>\r
+<booleanAttribute key="useCustomFeatures" value="false"/>\r
+<booleanAttribute key="useDefaultConfigArea" value="true"/>\r
+<stringAttribute key="workspace_bundles" value="user.commons.log4j2@default:false,user.jobengine.osgi.commons@default:true,user.jobengine.osgi.db@default:default,user.jobengine.osgi.server@default:default,user.jobengine.osgi.services@default:default,user.mediacube.metadata@default:default,user.tsm.client@default:default"/>\r
+</launchConfiguration>\r
index 0f881970d380d84a656c9e8f47b5be3d38dc1d5d..4693367e058fba4ec44cc80773fbd51d87a74735 100644 (file)
@@ -1,6 +1,6 @@
 {"joblist":[\r
        {\r
-      "active": true,\r
+      "active": false,\r
       "executeimmediate": false,\r
       "cronexpression": "0/10 * * * * ? *",\r
       "template": "worker-keepalive.xml",\r
index 9e925cb0cfdf7d10022299cd021f8d25271fb1b0..5062fc97f7f5dc127263ed75f9b988272c03032c 100644 (file)
@@ -1,45 +1,45 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <executors>\r
-       <executor className="user.jobengine.server.steps.ArchiveListBuilderStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.ArchiveMaterialSubmitStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.BatchRetrieveForkStep" maxConcurrent="10"/>\r
-       <executor className="user.jobengine.server.steps.CancelableStep" maxConcurrent="10"/>\r
-       <executor className="user.jobengine.server.steps.CheckLOWRESIntegrity" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CheckMORPHEUSMissingMaterialsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CheckTRAFFICMissingMaterialsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CleanupMountedLocationStep" maxConcurrent="10"/>\r
-       <executor className="user.jobengine.server.steps.ProjectCleanupMountedLocationStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CopyForArchiveNEXIOMaterialsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CopyForArchiveNEXIORecordingsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CreateMissingLowresStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.DeleteNEXIOMaterialsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.DetectMissingLengthStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.DeleteFileStep" maxConcurrent="100"/>\r
-       <executor className="user.jobengine.server.steps.DownloadRecordingFromNexioStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.DuplicateRemoverStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.FakeNoParamsStep" maxConcurrent="20"/>\r
-       <executor className="user.jobengine.server.steps.FakeStep" maxConcurrent="20"/>\r
-       <executor className="user.jobengine.server.steps.FileCopyStep" maxConcurrent="10"/>\r
-       <executor className="user.jobengine.server.steps.GenerateMorpheusMetadataStep" maxConcurrent="10"/>\r
-       <executor className="user.jobengine.server.steps.HSMMigrateStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.ImportMORPHEUSMissingMaterialsStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.ImportStatisticsStep" maxConcurrent="7"/>\r
-       <executor className="user.jobengine.server.steps.MetadataTransformStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.MXFCutterStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.OutputPathAndNameSelectorStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.RecordingsArchiveItemBuilderStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.SyncOCTOPUSDataStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.SubmitChildStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.TranscodeFFAStranStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.TranscodeSELENIOStep" maxConcurrent="4"/>\r
-       <executor className="user.jobengine.server.steps.TranscodeStep" maxConcurrent="4"/>\r
-       <executor className="user.jobengine.server.steps.TSMBackupStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.TSMExtendedRetrieveStep" maxConcurrent="1" />\r
-       <executor className="user.jobengine.server.steps.TSMRestoreStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.TSMSystemRestoreStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.TSMRetrieveMissingMaterialStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.UploadRecordingToNexioStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.MediaToolStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.UpdateGhostMediaData" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.WorkerKeepAliveStep" maxConcurrent="1"/>\r
+       <executor className="user.jobengine.server.steps.ArchiveListBuilderStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.ArchiveMaterialSubmitStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.BatchRetrieveForkStep" maxConcurrent="10" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CancelableStep" maxConcurrent="10" isRemote="true" />\r
+       <executor className="user.jobengine.server.steps.CheckLOWRESIntegrity" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CheckMORPHEUSMissingMaterialsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CheckTRAFFICMissingMaterialsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CleanupMountedLocationStep" maxConcurrent="10" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.ProjectCleanupMountedLocationStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CopyForArchiveNEXIOMaterialsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CopyForArchiveNEXIORecordingsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.CreateMissingLowresStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.DeleteNEXIOMaterialsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.DetectMissingLengthStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.DeleteFileStep" maxConcurrent="100" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.DownloadRecordingFromNexioStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.DuplicateRemoverStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.FakeNoParamsStep" maxConcurrent="20" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.FakeStep" maxConcurrent="20" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.FileCopyStep" maxConcurrent="10" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.GenerateMorpheusMetadataStep" maxConcurrent="10" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.HSMMigrateStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.ImportMORPHEUSMissingMaterialsStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.ImportStatisticsStep" maxConcurrent="7" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.MetadataTransformStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.MXFCutterStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.OutputPathAndNameSelectorStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.RecordingsArchiveItemBuilderStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.SyncOCTOPUSDataStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.SubmitChildStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TranscodeFFAStranStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TranscodeSELENIOStep" maxConcurrent="4" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TranscodeStep" maxConcurrent="4" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TSMBackupStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TSMExtendedRetrieveStep" maxConcurrent="1"  isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TSMRestoreStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TSMSystemRestoreStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.TSMRetrieveMissingMaterialStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.UploadRecordingToNexioStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.MediaToolStep" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.UpdateGhostMediaData" maxConcurrent="1" isRemote="false" />\r
+       <executor className="user.jobengine.server.steps.WorkerKeepAliveStep" maxConcurrent="1" isRemote="false" />\r
 </executors>
\ No newline at end of file
index d181ac3ec07fb4eb53ab69b25ecad0855271aa11..87de9666f8deb10332e059bad68a9f700b3a5843 100644 (file)
@@ -14,7 +14,11 @@ public class WorkerKeepAliveStep extends JobStep {
 \r
        @StepEntry\r
        public Object[] execute(String masterAddress) throws Exception {\r
-               logger.info("Keep alive response: {}", ping(masterAddress));\r
+               int ping = ping(masterAddress);\r
+               if (ping == 404)\r
+                       logger.error("Keep alive response: {}", ping);\r
+               else\r
+                       logger.debug("Keep alive response: {}", ping);\r
                return null;\r
        }\r
 \r
@@ -30,7 +34,7 @@ public class WorkerKeepAliveStep extends JobStep {
                } catch (Exception e) {\r
                        logger.error(e.getMessage());\r
                } finally {\r
-                       logger.info("Keep alive response: {}", response.getStatus());\r
+                       logger.debug("Keep alive response: {}", response.getStatus());\r
                        if (response != null)\r
                                response.close();\r
                }\r
index b51a2ed56f16cda375bb5bc57ee87bda99e13b72..cd74817193d3138b99b6d998e19d60d26bb54fc8 100644 (file)
@@ -6,11 +6,14 @@ Bundle-Version: 1.0.0
 Service-Component: OSGI-INF/component.xml, OSGI-INF/componentBinder.xml
 Import-Package: javax.servlet;version="3.1.0",
  javax.servlet.http;version="3.1.0",
+ javax.ws.rs.client,
+ javax.ws.rs.core,
  org.apache.commons.io.output;version="2.2.0",
  org.apache.logging.log4j;version="2.8.2",
  org.apache.logging.log4j.message;version="2.8.2",
  org.eclipse.core.runtime.adaptor,
  org.eclipse.osgi.framework.console;version="1.1.0",
+ org.jboss.resteasy.client.jaxrs,
  org.osgi.framework;version="1.5.0",
  org.osgi.framework.wiring;version="1.2.0",
  org.osgi.util.tracker;version="1.4.0",
index 32707860ee0acb577f4b73303448d2bfee60fa42..921c79d64246ef92661c9a8bed76745674b32f8a 100644 (file)
@@ -10,10 +10,10 @@ import org.apache.logging.log4j.Logger;
 \r
 public class ExecutorConfigParser {\r
        private static final Logger logger = LogManager.getLogger();\r
-       private final InputStream stream;\r
-\r
        private static String EXECUTORS = "executors";\r
+\r
        private static String EXECUTOR = "executors/executor";\r
+       private final InputStream stream;\r
 \r
        public ExecutorConfigParser(InputStream stream) {\r
                this.stream = stream;\r
@@ -28,9 +28,10 @@ public class ExecutorConfigParser {
                        digester.setClassLoader(this.getClass().getClassLoader());\r
                        digester.addObjectCreate(EXECUTORS, ArrayList.class);\r
                        digester.addObjectCreate(EXECUTOR, JobStepExecutor.class);\r
-                       digester.addCallMethod(EXECUTOR, "create", 2, new Class<?>[] { String.class, int.class });\r
+                       digester.addCallMethod(EXECUTOR, "create", 3, new Class<?>[] { String.class, int.class, boolean.class });\r
                        digester.addCallParam(EXECUTOR, 0, "className");\r
                        digester.addCallParam(EXECUTOR, 1, "maxConcurrent");\r
+                       digester.addCallParam(EXECUTOR, 2, "isRemote");\r
                        digester.addSetNext(EXECUTOR, "add");\r
                        result = (List<IJobStepExecutor>) (List<?>) digester.parse(stream);\r
                } catch (Exception e) {\r
index b9dd419da55715c8e8625c675ef1e5731bf67923..ca13905923e0b60801b703fb9ab6ed4c20b5cf35 100644 (file)
@@ -59,6 +59,8 @@ public interface IJobEngine {
 
        Map<String, IProgram> getPrograms();
 
+       IJobRuntime getRemoteJob(String className);
+
        ScheduledJob getScheduledJob(String template);
 
        SchedulerService getScheduler();
@@ -71,6 +73,8 @@ public interface IJobEngine {
 
        boolean isScheduledExecutionDisabled();
 
+       boolean isWorker();
+
        void keepAliveWorker(String remoteAddr);
 
        void loadExecutors();
index 991accaac2cb30729f8b0fee90c2c5ec936b2524..2ebe331471376e362370fe2cc5b73ca22a76d63c 100644 (file)
@@ -8,11 +8,15 @@ import user.jobengine.server.steps.IJobStep;
  * Folyamat l�p�s v�grehajt� interface.
  */
 public interface IJobStepExecutor {
+       static final String PROCESSING_LOCALLY = "Processing locally";
+       static final String PROCESSING_REMOTLY = "Processing remotly";
+       static final String WAIT_REMOTE_PROCESSOR = "Waiting for remote processor";
+
        void changePriority(IJobRuntime runtime);
 
        boolean containsRuntime(IJobRuntime runtime);
 
-       void create(String name, int maxConcurrent) throws JobEngineException;
+       void create(String name, int maxConcurrent, boolean isRemote) throws JobEngineException;
 
        int getMaxConcurrent();
 
index 412d83429af5ec412869098ff5c8b514ea7751a7..e4c26b1c96bf96579aba664d3dd0d818cdf8f488 100644 (file)
@@ -21,8 +21,13 @@ import java.util.concurrent.PriorityBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
+import javax.ws.rs.core.Response;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.jboss.resteasy.client.jaxrs.ResteasyClient;
+import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
+import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
 
 import com.ibm.nosql.json.api.BasicDBObject;
 
@@ -51,7 +56,6 @@ import user.jobengine.server.messages.UserReplyMessage;
 import user.jobengine.server.scheduler.ScheduledJob;
 import user.jobengine.server.scheduler.SchedulerService;
 import user.jobengine.server.steps.IJobStep;
-import user.jobengine.zk.util.SessionUtil;
 import user.tsm.client.TSMClient;
 import user.tsm.client.TSMException;
 
@@ -114,7 +118,7 @@ public class JobEngine implements IJobEngine {
 
                        while (!shutdown) {
                                try {
-                                       IJobRuntime jobRuntime = runQueue.poll(SessionUtil.getMediaCubeConfig().getJobQueuePollInterval(), TimeUnit.MILLISECONDS);
+                                       IJobRuntime jobRuntime = runQueue.poll(10, TimeUnit.MILLISECONDS);
                                        if (jobRuntime != null) {
                                                while (jobRuntime.hasNextInstruction() && jobRuntime.isRunable()) {
                                                        ir = jobRuntime.getNextInstruction();
@@ -180,6 +184,7 @@ public class JobEngine implements IJobEngine {
 
        private List<IJobChangedListener> jobChangedListenerList = new CopyOnWriteArrayList<>();
        private Map<String, LocalDate> remoteWorkers;
+       private String masterServerAddress = System.getProperty("jobengine.master.server", "false");
 
        /**
         * A MAM motor példányosítása. Ennek során létrejönnek a várakozási sorok, az ütemező szál, az üzenet kezelő szál.
@@ -435,6 +440,27 @@ public class JobEngine implements IJobEngine {
                return programs;
        }
 
+       @Override
+       public IJobRuntime getRemoteJob(String className) {
+               IJobRuntime result = null;
+               ResteasyClient client = new ResteasyClientBuilder().build();
+               ResteasyWebTarget target = client.target(masterServerAddress).path("/services/rest/cluster/getjob").queryParam("className", className);
+               Response response = null;
+               try {
+                       response = target.request().get();
+                       if (response.getEntity() != null) {
+
+                       }
+               } catch (Exception e) {
+                       logger.error(e.getMessage());
+               } finally {
+                       logger.debug("Keep alive response: {}", response.getStatus());
+                       if (response != null)
+                               response.close();
+               }
+               return result;
+       }
+
        @Override
        public ScheduledJob getScheduledJob(String template) {
                List<BasicDBObject> jobs = NoSQLUtils.asList(schedulerService.getScheduleJobs());
@@ -491,6 +517,11 @@ public class JobEngine implements IJobEngine {
                return isScheduledExecutionDisabled;
        }
 
+       @Override
+       public boolean isWorker() {
+               return Boolean.parseBoolean(masterServerAddress);
+       }
+
        private void jobCleanup(IJobRuntime jobRuntime) {
                statusMachine.processAction(JobAction.FINISH, jobRuntime);
        }
@@ -576,6 +607,8 @@ public class JobEngine implements IJobEngine {
                        store.setFileFilter("*.xml");
                        String templateRoot = store.toString(true);
                        logger.info("Template root is: " + templateRoot);
+                       File f = new File(templateRoot);
+                       System.out.println(f.getAbsolutePath());
                        List<RemoteFile> files = store.getRemoteFiles();
 
                        for (RemoteFile file : files) {
@@ -699,7 +732,7 @@ public class JobEngine implements IJobEngine {
                if (submittedJobs.containsKey(id)) {
                        IJobRuntime jobRuntime = submittedJobs.remove(id);
                        fireJobChangedEvent(new JobChangedEvent(jobRuntime, SignalType.DELETE));
-                       logger.info("--- {} removed from VM", jobRuntime);
+                       logger.debug("--- {} removed from VM", jobRuntime);
                        closeSessionLog(jobRuntime);
                }
 
@@ -844,7 +877,7 @@ public class JobEngine implements IJobEngine {
                runtime.add();
                addToRunQueue(runtime);
                submittedJobs.put(runtime.getId(), runtime);
-               logger.info("+++ {} added to VM ", runtime);
+               logger.debug("+++ {} added to VM ", runtime);
        }
 
        @Override
@@ -948,5 +981,4 @@ public class JobEngine implements IJobEngine {
                        logger.error("Couldn't shutdown jobEngine", e);
                }
        }
-
 }
index 2c21dcffe83efd38c0f6ee7447a6171f53289fee..14531c7e1307ead068b743109a7c6b4ba5859f20 100644 (file)
@@ -36,18 +36,45 @@ public class JobStepExecutor implements IJobStepExecutor {
                        IJobStep step = null;
                        while (true) {
                                try {
-                                       jobRuntime = queue.poll(SessionUtil.getMediaCubeConfig().getJobQueuePollInterval(), TimeUnit.MILLISECONDS);
-                                       if (jobRuntime == null && shutdown) {
-                                               logger.trace("Shutting down");
-                                               break;
+                                       if (jobEngine.isWorker()) {
+                                               jobRuntime = jobEngine.getRemoteJob(className);
+                                               jobRuntime.setDescription(PROCESSING_REMOTLY);
+                                       } else {
+                                               jobRuntime = queue.poll(SessionUtil.getMediaCubeConfig().getJobQueuePollInterval(), TimeUnit.MILLISECONDS);
+                                               if (jobRuntime == null && shutdown) {
+                                                       logger.trace("Shutting down");
+                                                       break;
+                                               }
+                                               if (jobRuntime == null)
+                                                       continue;
+                                               if (shutdown) {
+                                                       logger.trace("{} skipping by shutdown", jobRuntime);
+                                                       jobEngine.sendMessage(new JobStepSkippedMessage(jobRuntime.getId()));
+                                                       continue;
+                                               }
+
+                                               long submitted = jobRuntime.getSubmitted().getTime();
+                                               long current = System.currentTimeMillis();
+                                               boolean timeout = current - submitted > 3000;
+                                               if (isRemote) {
+                                                       if (timeout) {
+                                                               logger.info("Remote JobStep timed out, processing locally.");
+                                                       } else {
+                                                               //logger.info("JobStep is remote, waiting for remote processor");
+                                                               if (!WAIT_REMOTE_PROCESSOR.equals(jobRuntime.getDescription()))
+                                                                       jobRuntime.setDescription(WAIT_REMOTE_PROCESSOR);
+                                                               queue.put(jobRuntime);
+                                                               //skip local processor
+                                                               continue;
+                                                       }
+                                               }
+                                               jobRuntime.setDescription(PROCESSING_LOCALLY);
                                        }
+
                                        if (jobRuntime == null)
                                                continue;
-                                       if (shutdown) {
-                                               logger.trace("{} skipping by shutdown", jobRuntime);
-                                               jobEngine.sendMessage(new JobStepSkippedMessage(jobRuntime.getId()));
-                                               continue;
-                                       }
+
+                                       //processing locally
                                        Object[] inputs = jobEngine.getInputsFromStack(jobRuntime);
                                        Object[] outputs = null;
                                        jobRuntime.setStatus(JobStatus.EXECUTING);
@@ -55,12 +82,8 @@ public class JobStepExecutor implements IJobStepExecutor {
                                        step = createStepObject();
                                        if (step == null)
                                                throw new Exception("Step object is null");
-                                       logger.info("{} executing", jobRuntime);
+                                       logger.debug("{} executing", jobRuntime);
                                        jobRuntime.IncrementPriority();
-
-                                       //                                              logger.info("Executor thread name is {} id is {}", Thread.currentThread().getName(),
-                                       //                                                              Thread.currentThread().getId());
-
                                        outputs = step.run(jobEngine, jobRuntime, inputs);
                                        jobEngine.sendMessage(new JobStepCompletedMessage(jobRuntime.getId(), outputs));
                                } catch (Throwable e) {
@@ -99,16 +122,21 @@ public class JobStepExecutor implements IJobStepExecutor {
        private Class<IJobStep> stepClass;
        private int maxConcurrent;
        private String className;
+       private boolean isRemote;
 
        public JobStepExecutor() {
        }
 
        public JobStepExecutor(Class<IJobStep> clazz, int maxConcurrent) throws Exception {
-               this(clazz.getName(), maxConcurrent);
+               this(clazz.getName(), maxConcurrent, false);
        }
 
        public JobStepExecutor(String className, int maxConcurrent) throws Exception {
-               create(className, maxConcurrent);
+               this(className, maxConcurrent, false);
+       }
+
+       public JobStepExecutor(String className, int maxConcurrent, boolean isRemote) throws Exception {
+               create(className, maxConcurrent, false);
        }
 
        @Override
@@ -131,25 +159,22 @@ public class JobStepExecutor implements IJobStepExecutor {
 
        @Override
        @SuppressWarnings("unchecked")
-       public void create(String className, int maxConcurrent) throws JobEngineException {
+       public void create(String className, int maxConcurrent, boolean isRemote) throws JobEngineException {
                this.className = className;
+               this.isRemote = isRemote;
                logger = LogManager.getLogger(getClass().getSimpleName() + ":" + className);
                logger.debug("Creating executor {}, instances {}", className, maxConcurrent);
                if (StringUtils.isEmpty(className))
                        throw new JobEngineException("Step class name can't be null.");
-               // throw new
-               // JobEngineException("Illegal concurrent instance count. Must be greater then 0.");
-               //DynamicClassLoader loader = new DynamicClassLoader(getClass().getClassLoader());
+
                try {
-                       //ClassLoader parentClassLoader = getParentClassLoader();
                        URLClassLoader loader = URLClassLoader.newInstance(DynamicClassLocator.makeURLs(), getClass().getClassLoader());
                        stepClass = (Class<IJobStep>) loader.loadClass(className);
                } catch (ClassNotFoundException e) {
                        logger.catching(e);
                        throw new JobEngineException("System can't load JobStep implementation: " + className);
                }
-               // priorityQueue = new PriorityBlockingQueue<IJobRuntime>();
-               //queue = new LinkedBlockingQueue<IJobRuntime>();
+
                queue = new PriorityBlockingQueue<IJobRuntime>();
                this.maxConcurrent = maxConcurrent;
                if (maxConcurrent > 0) {
index 698e7af36a2cec37275c936c3dfeb500f9edcb72..a030bcdddb23a5a340656d684923d3d03cef00bc 100644 (file)
@@ -30,7 +30,7 @@ public class StatusMachine implements IStatusMachine {
                StatusMachineAction machineAction = new StatusMachineAction(jobAction, jobRuntime.getStatus());\r
                if (actions.containsKey(machineAction)) {\r
                        IJobStatusAction action = actions.get(machineAction);\r
-                       logger.info("{} status change {} -> {}", jobRuntime, jobRuntime.getStatus(), jobAction);\r
+                       logger.debug("{} status change {} -> {}", jobRuntime, jobRuntime.getStatus(), jobAction);\r
                        action.processAction(jobEngine, jobRuntime);\r
                }\r
 \r
index 180db6af8c617c55ed143ccb5218b0eaef542899..e752c0ccb10605490cf71b723d7b045757599c95 100644 (file)
@@ -166,8 +166,10 @@ public class SchedulerService {
         */\r
        private void loadStartupJobsFromConfig() throws Exception {\r
                String configPath = System.getProperty("jobengine.jobscheduling.config");\r
-               if (configPath == null || "".equals(configPath))\r
-                       throw new Exception("Missing system property: 'jobengine.jobscheduling.config'");\r
+               if (configPath == null || "".equals(configPath)) {\r
+                       logger.error("Missing system property: 'jobengine.jobscheduling.config'");\r
+                       return;\r
+               }\r
                File schedulingConfigFile = new File(configPath);\r
                if (schedulingConfigFile.exists()) {\r
                        String jsonConfig = new String(Files.readAllBytes(Paths.get(schedulingConfigFile.getAbsolutePath())));\r
index 42f8953b8b171c0136fb1d4492693aa1dd74eb77..6959e8454266438a57fe3c5e207b409bba65eeb1 100644 (file)
@@ -65,7 +65,7 @@ public class JobStep implements IJobStep {
        private Object[] executeMethod(Method method, Object[] extendedInputs) throws Exception {\r
                Object[] result;\r
                try {\r
-                       logger.info("Executing {}", method);\r
+                       logger.debug("Executing {}", method);\r
                        result = (Object[]) method.invoke(this, extendedInputs);\r
                } catch (Exception e) {\r
                        if (e instanceof IllegalArgumentException) {\r
@@ -98,7 +98,7 @@ public class JobStep implements IJobStep {
 \r
        /***\r
         * A runtime nevevel egyezo rendszerszintu gyerek. A szulo rendszer szintu MEDIACUBE cimkes.\r
-        * \r
+        *\r
         * @return\r
         */\r
        protected Marker getMarker() {\r
@@ -131,7 +131,7 @@ public class JobStep implements IJobStep {
 \r
        /***\r
         * JobRuntime session marker\r
-        * \r
+        *\r
         * @return\r
         */\r
        protected MediaCubeMarker getSessionMarker() {\r
index 0698b0220754d873528a7baa1918d38e26e79dc1..faa3ed0dfb14ef2986ac9c4c0669589d9c1a5110 100644 (file)
@@ -31,7 +31,7 @@ public class JobengineIT {
                //Kornyezeti valtozok betoltese
                Properties properties = new Properties();
                URL srcLocation = JobengineIT.class.getProtectionDomain().getCodeSource().getLocation();
-               URL location = new URL(srcLocation, "../../-configuration/mediacube-dev.properties");
+               URL location = new URL(srcLocation, "../../-configuration/mediacube-dev-user.properties");
                properties.load(new FileInputStream(location.toURI().getPath().toString()));
                System.getProperties().putAll(properties);
 
@@ -41,42 +41,21 @@ public class JobengineIT {
        }
 
        /***
-        * Teszt folyamat futtatasa
-        * @throws Exception
-        */
-       @Test
-       public void fake() throws Exception {
-               final ThreadSynchronizer sync = new ThreadSynchronizer();
-               final IJobEngine jobEngine = new JobEngine();
-               jobEngine.bindItemManagerService(manager);
-               Map<String, Object> parameters = new HashMap<>();
-               //parameters.put("itemID", 100);
-               IJobRuntime runtime = jobEngine.submit("fake.xml", "Fake", parameters);
-               runtime.addEventListener(new IJobStatusChangedListener() {
-                       @Override
-                       public void statusChanged(JobStatusChangedEvent event) {
-                               if (JobStatus.FINISHED.equals(event.getStatus()))
-                                       sync.suspend();
-
-                       }
-               });
-               sync.waitSuspend();
-               sync.resume();
-               jobEngine.shutdown();
-       }
-
-       /***
-        * NEXIO adatok szinkronizalo folyamat futtatasa
+        * Archivalo folyamat futtatasa
+        *
         * @throws Exception
         */
        @Test
-       public void sync_nexio() throws Exception {
+       public void archive_media() throws Exception {
                final ThreadSynchronizer sync = new ThreadSynchronizer();
                IJobEngine jobEngine = new JobEngine();
-               jobEngine.bindItemManagerService(manager);
+               jobEngine.setItemManager(manager);
+               jobEngine.loadPrograms();
+               jobEngine.loadExecutors();
+               jobEngine.startup();
                Map<String, Object> parameters = new HashMap<>();
-               parameters.put("itemID", 100);
-               IJobRuntime runtime = jobEngine.submit("sync-nexio.xml", "Synchronize NEXIO", parameters);
+               parameters.put("mediaFolder", "/tmp");
+               IJobRuntime runtime = jobEngine.submit("archivemedia.xml", "Fake", parameters);
                runtime.addEventListener(new IJobStatusChangedListener() {
                        @Override
                        public void statusChanged(JobStatusChangedEvent event) {
@@ -91,18 +70,19 @@ public class JobengineIT {
        }
 
        /***
-        * Ket teszt folyamat futtatasa egyszerre
+        * Teszt folyamat futtatasa
+        *
         * @throws Exception
         */
-       @Test(expected = JobEngineException.class)
-       public void fake_overlap() throws Exception {
+       @Test
+       public void fake() throws Exception {
                final ThreadSynchronizer sync = new ThreadSynchronizer();
-               IJobEngine jobEngine = new JobEngine();
+               final IJobEngine jobEngine = new JobEngine();
+               jobEngine.startup();
                jobEngine.bindItemManagerService(manager);
                Map<String, Object> parameters = new HashMap<>();
-               parameters.put("itemID", 100);
+               //parameters.put("itemID", 100);
                IJobRuntime runtime = jobEngine.submit("fake.xml", "Fake", parameters);
-               jobEngine.submit("fake.xml", "Fake", parameters);
                runtime.addEventListener(new IJobStatusChangedListener() {
                        @Override
                        public void statusChanged(JobStatusChangedEvent event) {
@@ -118,6 +98,7 @@ public class JobengineIT {
 
        /***
         * Ket teszt folyamat futtatasa egymas utan
+        *
         * @throws Exception
         */
        @Test
@@ -156,20 +137,45 @@ public class JobengineIT {
        }
 
        /***
-        * Archivalo folyamat futtatasa
+        * Ket teszt folyamat futtatasa egyszerre
+        *
+        * @throws Exception
+        */
+       @Test(expected = JobEngineException.class)
+       public void fake_overlap() throws Exception {
+               final ThreadSynchronizer sync = new ThreadSynchronizer();
+               IJobEngine jobEngine = new JobEngine();
+               jobEngine.bindItemManagerService(manager);
+               Map<String, Object> parameters = new HashMap<>();
+               parameters.put("itemID", 100);
+               IJobRuntime runtime = jobEngine.submit("fake.xml", "Fake", parameters);
+               jobEngine.submit("fake.xml", "Fake", parameters);
+               runtime.addEventListener(new IJobStatusChangedListener() {
+                       @Override
+                       public void statusChanged(JobStatusChangedEvent event) {
+                               if (JobStatus.FINISHED.equals(event.getStatus()))
+                                       sync.suspend();
+
+                       }
+               });
+               sync.waitSuspend();
+               sync.resume();
+               jobEngine.shutdown();
+       }
+
+       /***
+        * NEXIO adatok szinkronizalo folyamat futtatasa
+        *
         * @throws Exception
         */
        @Test
-       public void archive_media() throws Exception {
+       public void sync_nexio() throws Exception {
                final ThreadSynchronizer sync = new ThreadSynchronizer();
                IJobEngine jobEngine = new JobEngine();
-               jobEngine.setItemManager(manager);
-               jobEngine.loadPrograms();
-               jobEngine.loadExecutors();
-               jobEngine.startup();
+               jobEngine.bindItemManagerService(manager);
                Map<String, Object> parameters = new HashMap<>();
-               parameters.put("mediaFolder", "/tmp");
-               IJobRuntime runtime = jobEngine.submit("archivemedia.xml", "Fake", parameters);
+               parameters.put("itemID", 100);
+               IJobRuntime runtime = jobEngine.submit("sync-nexio.xml", "Synchronize NEXIO", parameters);
                runtime.addEventListener(new IJobStatusChangedListener() {
                        @Override
                        public void statusChanged(JobStatusChangedEvent event) {
index c218a7ed670059c97422d1a7e5b54e442138aaf3..34c842608d077c2b6a3592c594f2815e3f641502 100644 (file)
@@ -116,6 +116,15 @@ public class JobIntegration {
                // program.addInstruction(new AssignVariableInstruction());
        }
 
+       public void sendReply(JobStatusChangedEvent event) {
+               if (event.getStatus() == JobStatus.WAIT_USERMESSAGE) {
+                       IJobRuntime jobRuntime = (IJobRuntime) event.getSource();
+                       UserReplyMessage message = new UserReplyMessage(jobRuntime.getId());
+                       message.setReply(userReply);
+                       jobEngine.sendMessage(message);
+               }
+       }
+
        @Before
        public void setup() throws Exception {
                jobEngine = new JobEngine() {
@@ -141,13 +150,4 @@ public class JobIntegration {
                synchronizer.resume();
                jobEngine.shutdown();
        }
-
-       public void sendReply(JobStatusChangedEvent event) {
-               if (event.getStatus() == JobStatus.WAIT_USERMESSAGE) {
-                       IJobRuntime jobRuntime = (IJobRuntime) event.getSource();
-                       UserReplyMessage message = new UserReplyMessage(jobRuntime.getId());
-                       message.setReply(userReply);
-                       jobEngine.sendMessage(message);
-               }
-       }
 }
index 3eb430b66bb49c2719cbf772e01ae96d01363b37..bf252521398b2360fc429fd5bf5e41a4b16d7470 100644 (file)
@@ -10,7 +10,6 @@ import javax.ws.rs.core.Response;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
-import user.jobengine.db.IItemManager;\r
 import user.jobengine.osgi.rest.ComponentBinder;\r
 import user.jobengine.server.IJobEngine;\r
 \r
@@ -18,11 +17,10 @@ import user.jobengine.server.IJobEngine;
 public class ClusterService {\r
 \r
        private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager itemManager = ComponentBinder.getItemManager();\r
        private IJobEngine jobEngine = ComponentBinder.getJobengine();\r
 \r
        public ClusterService() {\r
-               logger.info("Created");\r
+               logger.debug("Created");\r
        }\r
 \r
        @GET\r
@@ -30,7 +28,7 @@ public class ClusterService {
        public Response keepAlive(@Context HttpServletRequest request, @QueryParam("responseRoot") String responseRoot) {\r
                Response result = null;\r
                try {\r
-                       logger.info("Keepalive {}, {}, {}", request.getRemoteAddr(), request.getRemoteHost(), request.getRemotePort());\r
+                       logger.debug("Keepalive {}, {}, {}", request.getRemoteAddr(), request.getRemoteHost(), request.getRemotePort());\r
 \r
                        jobEngine.keepAliveWorker(request.getRemoteAddr());\r
                        result = Response.ok().build();\r