git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 1 Mar 2018 13:32:35 +0000 (13:32 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 1 Mar 2018 13:32:35 +0000 (13:32 +0000)
33 files changed:
server/-configuration/run-mediacube-server-bsh.launch
server/-configuration/scheduledjobs.json
server/user.jobengine.executors/.classpath
server/user.jobengine.executors/.settings/org.hibernate.eclipse.console.prefs [new file with mode: 0644]
server/user.jobengine.executors/config/config.xml
server/user.jobengine.executors/obsolate/obsolate/AFakeStep.java [moved from server/user.jobengine.executors/src/obsolate/AFakeStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/DeleteMaterialsStep.java [moved from server/user.jobengine.executors/src/obsolate/DeleteMaterialsStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/DownloadStep.java [moved from server/user.jobengine.executors/src/obsolate/DownloadStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/GetItemSourcesStep.java [moved from server/user.jobengine.executors/src/obsolate/GetItemSourcesStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/ImportWriteDataToDBStep.java [moved from server/user.jobengine.executors/src/obsolate/ImportWriteDataToDBStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/MediaDBWriterStep.java [moved from server/user.jobengine.executors/src/obsolate/MediaDBWriterStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/MediaDownloadStep.java [moved from server/user.jobengine.executors/src/obsolate/MediaDownloadStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/MediaUploadStep.java [moved from server/user.jobengine.executors/src/obsolate/MediaUploadStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/NexioDataMinerStep.java [moved from server/user.jobengine.executors/src/obsolate/NexioDataMinerStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/SetArchivedStep.java [moved from server/user.jobengine.executors/src/obsolate/SetArchivedStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/TSMBackupStep_orig.java [moved from server/user.jobengine.executors/src/obsolate/TSMBackupStep_orig.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/TemplateStep.java [moved from server/user.jobengine.executors/src/obsolate/TemplateStep.java with 100% similarity]
server/user.jobengine.executors/obsolate/obsolate/TranscodeStep.java [moved from server/user.jobengine.executors/src/obsolate/TranscodeStep.java with 100% similarity]
server/user.jobengine.executors/src/user/jobengine/server/steps/FakeStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MultiParamStep.java [deleted file]
server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/UploadRecordingToNexioStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/UserNotificationStep.java [deleted file]
server/user.jobengine.executors/test-deploy-steps-to-bsh-bkup.bat
server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF
server/user.jobengine.osgi.commons/src/user/commons/transcoder/FFAStransAPI.java [moved from server/user.jobengine.osgi.commons/src/user/commons/ffastrans/FFAStransAPI.java with 83% similarity]
server/user.jobengine.osgi.commons/src/user/commons/transcoder/IFFAStransAPI.java [moved from server/user.jobengine.osgi.commons/src/user/commons/ffastrans/IFFAStransAPI.java with 87% similarity]
server/user.jobengine.osgi.commons/src/user/commons/transcoder/IProgressChangedListener.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusDataMinerTest.java
server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLoader.java [deleted file]
server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLocator.java [new file with mode: 0644]
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java

index e6edad96f5f4cd19bfd0a2c8759116dd79f8c06c..4ffdbc8f77b49bf7fce306a2443230bf384dbb59 100644 (file)
@@ -19,7 +19,7 @@
 <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.10.1.27:50000/mc: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/user/jobengine/server/steps&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.10.1.27:50000/mc: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.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.55&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=test_rundowns&#13;&#10;-Djobengine.octopus.storyfolders.name=test_storyfolders&#13;&#10;-Djobengine.octopus.stories.name=test_stories&#13;&#10;-Dmediacube.auth.location=&quot;${workspace_loc}/-configuration/mediacube-auth.properties&quot;"/>\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.10.1.27:50000/mc: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.10.1.27:50000/mc: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.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.55&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=test_rundowns&#13;&#10;-Djobengine.octopus.storyfolders.name=test_storyfolders&#13;&#10;-Djobengine.octopus.stories.name=test_stories&#13;&#10;-Dmediacube.auth.location=&quot;${workspace_loc}/-configuration/mediacube-auth.properties&quot;"/>\r
 <stringAttribute key="pde.version" value="3.3"/>\r
 <booleanAttribute key="show_selected_only" value="true"/>\r
 <stringAttribute key="target_bundles" value="cglib@default:default,com.auth0.java-jwt@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.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.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.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@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.jasper.glassfish@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.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,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.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
index 7cd76f45c5d8d8f1618e15c2e33c7e5e8a6f69ac..b2fc4826da6b7c4062004120e53e56bec4de430b 100644 (file)
        {\r
       "active": false,\r
       "executeimmediate": false,\r
-         "name" : "Teszt folyamat",\r
+         "name" : "Teszt folyamat (nincs paraméter)",\r
       "template": "fake-noparams.xml",\r
       "cronexpression": "0 40 22 * * ?",\r
+      "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
+       },\r
+       {\r
+      "active": false,\r
+      "executeimmediate": false,\r
+         "name" : "Teszt folyamat",\r
+      "template": "fake.xml",\r
+      "cronexpression": "0 40 22 * * ?",\r
       "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
        }\r
 ]}\r
index 4848249846f9153775ed2f647f17ee59f78163ac..dd1b9a6402bc4fe60286d35418da5b97f3299b00 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <classpath>\r
        <classpathentry kind="src" path="src"/>\r
+       <classpathentry excluding="obsolate" kind="src" path="obsolate"/>\r
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
        <classpathentry kind="output" path="bin"/>\r
diff --git a/server/user.jobengine.executors/.settings/org.hibernate.eclipse.console.prefs b/server/user.jobengine.executors/.settings/org.hibernate.eclipse.console.prefs
new file mode 100644 (file)
index 0000000..8fdae10
--- /dev/null
@@ -0,0 +1,3 @@
+default.configuration=\r
+eclipse.preferences.version=1\r
+hibernate3.enabled=false\r
index e482e38ca0cad3a4c2839810db42ac3b968df869..4366af6f06842770feb480a1c9363961683c3a32 100644 (file)
@@ -1,18 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <executors>\r
-       <executor className="user.jobengine.server.steps.FakeStep" maxConcurrent="20"/>\r
-       <executor className="user.jobengine.server.steps.FakeNoParamsStep" maxConcurrent="20"/>\r
-       <executor className="user.jobengine.server.steps.ArchiveMaterialSubmitStep" maxConcurrent="1"/>\r
        <executor className="user.jobengine.server.steps.ArchiveListBuilderStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CheckTRAFFICMissingMaterialsStep" maxConcurrent="1"/>\r
+       <executor className="user.jobengine.server.steps.ArchiveMaterialSubmitStep" 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.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.DownloadRecordingFromNexioStep" 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.ImportMORPHEUSMissingMaterialsStep" maxConcurrent="1"/>\r
+       <executor className="user.jobengine.server.steps.ImportStatisticsStep" maxConcurrent="1"/>\r
        <executor className="user.jobengine.server.steps.MetadataTransformStep" 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.TranscodeFFAStranStep" maxConcurrent="1"/>\r
        <executor className="user.jobengine.server.steps.TranscodeSELENIOStep" maxConcurrent="4"/>\r
-       <executor className="user.jobengine.server.steps.TSMBackupStep" maxConcurrent="4"/>\r
-       <executor className="user.jobengine.server.steps.TSMRestoreStep" maxConcurrent="2"/>\r
-       <executor className="user.jobengine.server.steps.OutputPathAndNameSelectorStep" maxConcurrent="1"/>\r
-       <executor className="user.jobengine.server.steps.CopyForArchiveNEXIOMaterialsStep" maxConcurrent="1"/>\r
+       <executor className="user.jobengine.server.steps.TSMBackupStep" maxConcurrent="2"/>\r
+       <executor className="user.jobengine.server.steps.TSMRetrieveMissingMaterialStep" maxConcurrent="1"/>\r
+       <executor className="user.jobengine.server.steps.UploadRecordingToNexioStep" maxConcurrent="1"/>\r
 </executors>
\ No newline at end of file
index 4f6512da8cdf5f7c76f198fcfdfc7151fc681456..431205b530c37048ee1733b7df7f6be6fe7cfea7 100644 (file)
@@ -3,6 +3,9 @@ package user.jobengine.server.steps;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
+import com.ibm.nosql.json.api.DB;\r
+\r
+import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 \r
@@ -14,7 +17,7 @@ public class FakeStep extends JobStep {
        @StepEntry\r
        public Object[] execute(long itemID, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
                Object[] result = { itemID + 1 };\r
-\r
+               DB noSQLDB = NoSQLUtils.getNoSQLDB();\r
                //logger.info(jobRuntime.getMarker(), "Starting with {} #{}", itemID, jobRuntime.getId());\r
                //              Message message = logger.getMessageFactory().newMessage("Starting with {} #{}", itemID, jobRuntime.getId());\r
                //              logger.error(jobRuntime.getMarker(), message, new Exception("TESZT"));\r
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/MultiParamStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/MultiParamStep.java
deleted file mode 100644 (file)
index 2d0f185..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class MultiParamStep extends JobStep {\r
-\r
-       @StepEntry\r
-       public Object[] execute(long p1, String p2, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               Object[] result = { p1 + 1, p2 + "x" };\r
-\r
-               return result;\r
-       }\r
-\r
-}\r
index 93c5f4cd99c19f324c2ca431f0e9cca3a38546c7..c09674f2d733e5dbe2631ba8a188ce0450f438c5 100644 (file)
@@ -12,8 +12,8 @@ import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.message.Message;\r
 import org.apache.logging.log4j.message.ParameterizedMessage;\r
 \r
-import user.commons.ffastrans.FFAStransAPI;\r
-import user.commons.ffastrans.IFFAStransAPI;\r
+import user.commons.transcoder.FFAStransAPI;\r
+import user.commons.transcoder.IFFAStransAPI;\r
 import user.jobengine.db.FileType;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.Media;\r
@@ -33,9 +33,9 @@ public class TranscodeFFAStranStep extends JobStep {
        private Marker marker;\r
 \r
        @StepEntry\r
-       public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderAddress, String transcoderTemplateName, String localHiresSourcePath,\r
-                       String globalHiresSourcePath, String localLowresTargetPath, String webPath, String sourcePath, boolean deleteSource, IJobEngine jobEngine,\r
-                       IJobRuntime jobRuntime) throws Exception {\r
+       public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderAddress, String transcoderTemplateName, String localHiresTargetPath,\r
+                       String globalHiresSourcePath, String localLowresTargetPath, String webPath, boolean deleteSource, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
+                       throws Exception {\r
                marker = jobRuntime.getMarker();\r
                manager = jobEngine.getItemManager();\r
                store = check(manager.getSystemStore(true), "lowres Store");\r
@@ -44,7 +44,7 @@ public class TranscodeFFAStranStep extends JobStep {
                check(archiveItem, "archiveItem");\r
                check(transcoderAddress, "transcoderAddress");\r
                check(transcoderTemplateName, "transcoderTemplateName");\r
-               check(localHiresSourcePath, "localHiresSourcePath");\r
+               check(localHiresTargetPath, "localHiresTargetPath");\r
                check(globalHiresSourcePath, "globalHiresSourcePath");\r
                check(localLowresTargetPath, "localLowresTargetPath");\r
                check(webPath, "webPath");\r
@@ -53,7 +53,7 @@ public class TranscodeFFAStranStep extends JobStep {
                String sourceFileName = sourceMediaFile.getName();\r
                String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length());\r
                try {\r
-                       String sourceFile = sourceMediaFile.toString().replace(localHiresSourcePath, globalHiresSourcePath);\r
+                       String sourceFile = sourceMediaFile.toString().replace(localHiresTargetPath, globalHiresSourcePath);\r
                        IFFAStransAPI api = new FFAStransAPI(transcoderAddress, p -> {\r
                                jobRuntime.incrementProgress(p);\r
                        });\r
index 47cc941d9d1f3e244e730a509b3f9e926bb9a5d3..20796b805760d2d09ef33e09f7be2d72d3021275 100644 (file)
@@ -52,6 +52,7 @@ public class UploadRecordingToNexioStep extends JobStep {
        @StepEntry\r
        public Object[] execute(ArchiveItem archiveItem, String targetFileName, int nexioPort, String nexioUserName, String nexioPassword, IJobEngine jobEngine,\r
                        IJobRuntime jobRuntime) throws Exception {\r
+\r
                marker = jobRuntime.getMarker();\r
                manager = jobEngine.getItemManager();\r
                setAndCheck(archiveItem, targetFileName, nexioPort, nexioUserName, nexioPassword);\r
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/UserNotificationStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/UserNotificationStep.java
deleted file mode 100644 (file)
index 0886c95..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import org.apache.commons.lang.StringUtils;\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import user.commons.MediaCubeMarker;\r
-\r
-public class UserNotificationStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(String to, String notification) {\r
-               if (StringUtils.isNotBlank(to) && StringUtils.isNotBlank(notification))\r
-                       logger.info(new MediaCubeMarker(to), notification);\r
-               return null;\r
-       }\r
-\r
-}\r
index 8ad416336c97ad4bab7bffcc83f97be8d67f3ba0..023f98145321c2128acc2010e6a8eaca0bab4aaf 100644 (file)
@@ -4,8 +4,8 @@ SET REMOTE_HOST=10.10.1.29
 SET REMOTE_SERVER_HOSTKEY=ssh-ed25519 256 ea:ab:67:70:79:63:2f:6a:34:81:48:e2:b9:dd:ca:d4\r
 SET REMOTE_SERVER_ADDRESS=scp://root:password@%REMOTE_HOST%\r
 \r
-SET LOCAL_STEPS_LOCATION=bin/user/jobengine/server/steps\r
-SET REMOTE_STEPS_LOCATION=/opt/test-mediacube/configuration/executors\r
+SET LOCAL_STEPS_LOCATION=bin/user\r
+SET REMOTE_STEPS_LOCATION=/opt/test-mediacube/configuration/executors/user\r
 \r
 SET LOCAL_TEMPLATES_LOCATION=jobtemplates\r
 SET REMOTE_TEMPLATES_LOCATION=/opt/test-mediacube/configuration/jobtemplates\r
index 02b6b369e905216fd067e4a2d79e428f3c91cdb6..f5903f8093a6c71a1c00a642e7b0a154f773867b 100644 (file)
@@ -19,7 +19,6 @@ DynamicImport-Package: *
 Bundle-ClassPath: .
 Service-Component: OSGI-INF/nexioAPI.xml, OSGI-INF/octopusAPI.xml
 Export-Package: user.commons,
- user.commons.ffastrans,
  user.commons.ftp,
  user.commons.logging,
  user.commons.morpheus,
@@ -32,7 +31,8 @@ Export-Package: user.commons,
  user.commons.selenio.wsclient,
  user.commons.server.protocol,
  user.commons.server.tcp,
- user.commons.strings
+ user.commons.strings,
+ user.commons.transcoder
 Require-Bundle: org.apache.commons.lang;bundle-version="2.4.0",
  user.tsm.client;bundle-version="1.2.0",
  org.apache.commons.digester;bundle-version="3.2.0";visibility:=reexport,
similarity index 83%
rename from server/user.jobengine.osgi.commons/src/user/commons/ffastrans/FFAStransAPI.java
rename to server/user.jobengine.osgi.commons/src/user/commons/transcoder/FFAStransAPI.java
index 7d47d4d86ad10690e8ef3734a70fb6091bf5a4ef..e4688763fe798b8c8c9324eab2cd3ca4d026d090 100644 (file)
@@ -1,4 +1,4 @@
-package user.commons.ffastrans;\r
+package user.commons.transcoder;\r
 \r
 import java.util.List;\r
 \r
@@ -17,38 +17,34 @@ import user.commons.nosql.NoSQLUtils;
 \r
 public class FFAStransAPI implements IFFAStransAPI {\r
 \r
-       public interface IProgressChangedListener {\r
-               void onProgressChanged(int progress);\r
-       }\r
-\r
-       public static void main(String[] args) throws Exception {\r
-\r
-               for (int i = 0; i < 1; i++) {\r
-                       IFFAStransAPI api = new FFAStransAPI("http://10.10.1.74:65445/api/json/v1/", p -> {\r
-                               System.out.println("Progress: " + p);\r
-                       });\r
-\r
-                       String inputFile = "\\\\10.10.254.74\\temp_isilon\\NEXIO\\HIRADO\\180201\\0700_hirado_CLN_-_CS.lxf";\r
-                       api.submit("MAM_proxy_copy", inputFile);\r
-                       try {\r
-                               api.monitor(1000);\r
-                       } catch (Exception e) {\r
-                               System.out.println(e.getMessage());\r
-                       }\r
-                       //                      try {\r
-                       //\r
-                       //                              String outputFile = "\\\\10.10.1.74\\MAM-Proxy_output\\20180201-0700_hirado_TEST-_CS.mp4";\r
-                       //                              Path outputFilePath = Paths.get(outputFile);\r
-                       //                              File file = outputFilePath.toFile();\r
-                       //                              if (!file.exists())\r
-                       //                                      Thread.sleep(2000);\r
-                       //                              Files.delete(outputFilePath);\r
-                       //                      } catch (Exception e) {\r
-                       //                              System.out.println(e.getMessage());\r
-                       //                      }\r
-\r
-               }\r
-       }\r
+       //      public static void main(String[] args) throws Exception {\r
+       //\r
+       //              for (int i = 0; i < 1; i++) {\r
+       //                      IFFAStransAPI api = new FFAStransAPI("http://10.10.1.74:65445/api/json/v1/", p -> {\r
+       //                              System.out.println("Progress: " + p);\r
+       //                      });\r
+       //\r
+       //                      String inputFile = "\\\\10.10.254.74\\temp_isilon\\NEXIO\\HIRADO\\180201\\0700_hirado_CLN_-_CS.lxf";\r
+       //                      api.submit("MAM_proxy_copy", inputFile);\r
+       //                      try {\r
+       //                              api.monitor(1000);\r
+       //                      } catch (Exception e) {\r
+       //                              System.out.println(e.getMessage());\r
+       //                      }\r
+       //                      //                      try {\r
+       //                      //\r
+       //                      //                              String outputFile = "\\\\10.10.1.74\\MAM-Proxy_output\\20180201-0700_hirado_TEST-_CS.mp4";\r
+       //                      //                              Path outputFilePath = Paths.get(outputFile);\r
+       //                      //                              File file = outputFilePath.toFile();\r
+       //                      //                              if (!file.exists())\r
+       //                      //                                      Thread.sleep(2000);\r
+       //                      //                              Files.delete(outputFilePath);\r
+       //                      //                      } catch (Exception e) {\r
+       //                      //                              System.out.println(e.getMessage());\r
+       //                      //                      }\r
+       //\r
+       //              }\r
+       //      }\r
 \r
        private ResteasyWebTarget webTarget;\r
 \r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/transcoder/IProgressChangedListener.java b/server/user.jobengine.osgi.commons/src/user/commons/transcoder/IProgressChangedListener.java
new file mode 100644 (file)
index 0000000..395435f
--- /dev/null
@@ -0,0 +1,5 @@
+package user.commons.transcoder;\r
+\r
+public interface IProgressChangedListener {\r
+       void onProgressChanged(int progress);\r
+}
\ No newline at end of file
index 0b5670ea2d1dff72c245db6cdf05172fbe410f41..5956ab403ea819f2a39eb826d122f5797bb9ceaf 100644 (file)
@@ -1,11 +1,14 @@
 package user.common.octopus.test;\r
 \r
 import static org.junit.Assert.assertFalse;\r
+import static org.junit.Assert.assertNotNull;\r
 import static org.junit.Assert.assertTrue;\r
 \r
+import java.io.File;\r
 import java.io.FileInputStream;\r
 import java.lang.invoke.MethodHandles;\r
 import java.net.URL;\r
+import java.net.URLClassLoader;\r
 import java.nio.file.Files;\r
 import java.nio.file.Paths;\r
 import java.sql.SQLException;\r
@@ -70,23 +73,23 @@ public class OctopusDataMinerTest {
                sut.execute();\r
        }\r
 \r
-       @Test\r
-       public void integrationTestClear() {\r
-               // fixture\r
-               sut = new OctopusDataMiner1();\r
-               // Exercise\r
-               sut.clear();\r
-       }\r
-\r
-       @Test\r
-       public void integrationTestWithClear() {\r
-               // fixture\r
-               sut = new OctopusDataMiner1();\r
-               sut.clear();\r
+       //      @Test\r
+       //      public void integrationTestClear() {\r
+       //              // fixture\r
+       //              sut = new OctopusDataMiner1();\r
+       //              // Exercise\r
+       //              sut.clear();\r
+       //      }\r
 \r
-               // Exercise\r
-               sut.run();\r
-       }\r
+       //      @Test\r
+       //      public void integrationTestWithClear() {\r
+       //              // fixture\r
+       //              sut = new OctopusDataMiner1();\r
+       //              sut.clear();\r
+       //\r
+       //              // Exercise\r
+       //              sut.run();\r
+       //      }\r
 \r
        @Test\r
        public void run() {\r
@@ -285,8 +288,11 @@ public class OctopusDataMinerTest {
 \r
        @Test\r
        public void test6() throws Exception {\r
-               BasicDBObject x = new BasicDBObject();\r
-               x.remove("y");\r
+               URL[] urls = new URL[] { new File("c:/_workspace/USER/MediaCube/server/user.jobengine.executors/bin/").toURI().toURL() };\r
+\r
+               URLClassLoader loader = URLClassLoader.newInstance(urls);\r
+               Class<?> stepClass = loader.loadClass("user.jobengine.server.steps.FakeStep2");\r
+               assertNotNull(stepClass);\r
        }\r
 \r
        @Test\r
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLoader.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLoader.java
deleted file mode 100644 (file)
index 74110e6..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-package user.jobengine.server;\r
-\r
-import java.io.ByteArrayOutputStream;\r
-import java.io.File;\r
-import java.io.InputStream;\r
-import java.net.URL;\r
-import java.net.URLConnection;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-public class DynamicClassLoader extends ClassLoader {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       public DynamicClassLoader(ClassLoader parent) {\r
-               super(parent);\r
-       }\r
-\r
-       @Override\r
-       public Class<?> loadClass(String name) {\r
-               Class<?> result = null;\r
-               boolean load = false;\r
-               try {\r
-                       String[] tags = name.split("\\.");\r
-                       String fileName = tags[tags.length - 1] + ".class";\r
-\r
-                       String filePath = null;\r
-                       String path = null;\r
-                       File file = null;\r
-                       File directory = null;\r
-\r
-                       path = System.getProperty(JobEngine.STEPSROOT);\r
-                       if (path != null && path.length() > 0) {\r
-                               directory = new File(path);\r
-                               filePath = directory.getCanonicalPath() + File.separator + fileName;\r
-                               file = new File(filePath);\r
-                               if (file.exists())\r
-                                       load = true;\r
-                       }\r
-\r
-                       if (!load) {\r
-                               path = System.getProperty(JobEngine.STEPSALTERNATEROOT);\r
-                               if (path != null && path.length() > 0) {\r
-                                       directory = new File(path);\r
-                                       filePath = directory.getCanonicalPath() + File.separator + fileName;\r
-                                       file = new File(filePath);\r
-                                       if (file.exists())\r
-                                               load = true;\r
-                               }\r
-                       }\r
-\r
-                       if (load) {\r
-                               String url = "file:" + filePath;\r
-                               logger.trace("Trying load from: " + url);\r
-\r
-                               URL classUrl = new URL(url);\r
-                               URLConnection connection = classUrl.openConnection();\r
-                               InputStream input = connection.getInputStream();\r
-                               ByteArrayOutputStream buffer = new ByteArrayOutputStream();\r
-                               int data = input.read();\r
-                               while (data != -1) {\r
-                                       buffer.write(data);\r
-                                       data = input.read();\r
-                               }\r
-                               input.close();\r
-                               byte[] classData = buffer.toByteArray();\r
-                               result = defineClass(name, classData, 0, classData.length);\r
-                               if (result != null)\r
-                                       logger.trace("Dynamic load successfull: " + result.getName());\r
-                       }\r
-               } catch (Exception e) {\r
-                       throw new RuntimeException(e);\r
-               }\r
-               if (result == null) {\r
-                       try {\r
-                               result = super.loadClass(name);\r
-                               if (result != null)\r
-                                       logger.trace("Standard load successfull: " + result.getName());\r
-                       } catch (Exception e1) {\r
-                               throw new RuntimeException(e1);\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-}\r
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLocator.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/DynamicClassLocator.java
new file mode 100644 (file)
index 0000000..0467c60
--- /dev/null
@@ -0,0 +1,34 @@
+package user.jobengine.server;\r
+\r
+import java.io.File;\r
+import java.net.URL;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+public class DynamicClassLocator {\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       private static void addPath(List<URL> result, String property) {\r
+               try {\r
+                       String pathname = System.getProperty(property);\r
+                       if (pathname != null && pathname.length() > 0) {\r
+                               File rootDirectory = new File(pathname);\r
+                               if (rootDirectory.exists())\r
+                                       result.add(rootDirectory.toURI().toURL());\r
+                       }\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+               }\r
+       }\r
+\r
+       public static URL[] makeURLs() {\r
+               List<URL> result = new ArrayList<>();\r
+               addPath(result, JobEngine.STEPSROOT);\r
+               addPath(result, JobEngine.STEPSALTERNATEROOT);\r
+               return result.toArray(new URL[result.size()]);\r
+       }\r
+\r
+}\r
index b99c1743185294b0cda4723ae47a27a11750eaf2..56e161c589d71a974c86dddefd9e56ed0422e764 100644 (file)
@@ -478,8 +478,6 @@ public class JobEngine implements IJobEngine {
                                for (IJobStepExecutor executor : executorList)
                                        addStepExecutor(executor);
                        }
-                       loadUnregisteredExecutors(stepRoot);
-                       loadUnregisteredExecutors(stepsAlternateRoot);
                } catch (Exception e) {
                        logger.error("Error loading executors: " + e);
                } finally {
@@ -566,37 +564,6 @@ public class JobEngine implements IJobEngine {
                        logger.info("Loaded templates: " + sb.toString());
        }
 
-       @SuppressWarnings("unchecked")
-       public void loadUnregisteredExecutors(String path) throws Exception {
-               if (path != null) {
-                       StoreUri store = new StoreUri();
-                       store.setProtocol(RemoteStoreProtocol.LOCAL);
-                       // String uri =
-                       // DirectoryUtils.combine(store.getProtocol().getValue(), path);
-                       store.setUri(path);
-                       // original code
-                       // store.setUri(RemoteStoreProtocol.LOCAL.getValue() + path);
-                       // original code end
-                       store.setFilter("*.class");
-                       List<RemoteFile> files = store.getRemoteFiles();
-                       DynamicClassLoader loader = new DynamicClassLoader(getClass().getClassLoader());
-                       for (RemoteFile file : files) {
-                               String name = file.getName();
-                               if (!name.contains("$")) {
-                                       String className = "user.jobengine.server.steps." + name.replace("." + file.getExtension(), "");
-                                       try {
-                                               Class<IJobStep> clazz = (Class<IJobStep>) loader.loadClass(className);
-                                               IJobStepExecutor executor = new JobStepExecutor(clazz, 1);
-                                               if (executor != null)
-                                                       addStepExecutor(executor);
-                                       } catch (Exception e) {
-                                               logger.error("Dynamic executor loading error: " + e.getMessage());
-                                       }
-                               }
-                       }
-               }
-       }
-
        @Override
        public void processCancelRequest(IJobMessage message) {
                IJobRuntime jobRuntime = getJobById(message.getJobId());
index 82b8fc22bd50479f19c7d6cde7fd6017c6b37b28..c579b22ab426857cd7e67b4d0665d0302ca48919 100644 (file)
@@ -1,5 +1,6 @@
 package user.jobengine.server;
 
+import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
@@ -131,10 +132,14 @@ public class JobStepExecutor implements IJobStepExecutor {
                        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());
-               stepClass = (Class<IJobStep>) loader.loadClass(className);
-               if (stepClass == null)
+               //DynamicClassLoader loader = new DynamicClassLoader(getClass().getClassLoader());
+               try {
+                       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>();
@@ -176,10 +181,11 @@ public class JobStepExecutor implements IJobStepExecutor {
        @SuppressWarnings("unchecked")
        @Override
        public Class<IJobStep> getStepClass() {
-               if (stepClass != null) {
-                       DynamicClassLoader loader = new DynamicClassLoader(getClass().getClassLoader());
-                       stepClass = (Class<IJobStep>) loader.loadClass(stepClass.getCanonicalName());
-               }
+               //TODO miért hozunk létre mindíg újat
+               //              if (stepClass != null) {
+               //                      DynamicClassLoader loader = new DynamicClassLoader(getClass().getClassLoader());
+               //                      stepClass = (Class<IJobStep>) loader.loadClass(stepClass.getCanonicalName());
+               //              }
                return stepClass;
        }