git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Fri, 4 Dec 2020 07:56:43 +0000 (07:56 +0000)
committervasary.daniel <TFS\vasary.daniel>
Fri, 4 Dec 2020 07:56:43 +0000 (07:56 +0000)
42 files changed:
server/-configuration/jetty-test.zip [new file with mode: 0644]
server/-configuration/log4j2.xml
server/-configuration/run-mediacube-server-mv.launch
server/-configuration/run-mediacube-server-user (1).launch
server/-configuration/run-mediacube-server-user (2).launch [new file with mode: 0644]
server/-configuration/scheduledjobs.json
server/-dependencies/jobengine.target
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/PASAPOOLTransferToStep.java
server/user.jobengine.executors/config/config-mv.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/archive-material.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/archive-ondemand.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/batch-retrieve-ondemand.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/cancelable.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/common-copy.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/create-lowres-ondemand.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/delete-materials.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/fake-concurrent.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/fake-noparams.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/fake-spawn.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/fake.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/migrate-hsm.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve-ondemand.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve.xml [new file with mode: 0644]
server/user.jobengine.executors/jobtemplates/mediavivantis/sys-recreate-lowres.xml [new file with mode: 0644]
server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/CancelableStep.java [moved from server/user.jobengine.executors/amc/user/jobengine/server/steps/CancelableStep.java with 86% similarity]
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TestForkCancelableStep.java
server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF
server/user.jobengine.osgi.commons/src/user/commons/nosql/NoSQLUtils.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java
server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMOutputStream.java
server/user.jobengine.osgi.db/src/user/commons/pool/ContextPool.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.services/META-INF/MANIFEST.MF
server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java
server/user.mediacube.gui/pages/searchitems.zul
server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java
server/user.tsm.client/src/user/tsm/client/TSMBufferedClient.java

diff --git a/server/-configuration/jetty-test.zip b/server/-configuration/jetty-test.zip
new file mode 100644 (file)
index 0000000..25d7bc9
Binary files /dev/null and b/server/-configuration/jetty-test.zip differ
index 0d07d26f82b0a0fd85f714a1abce987b878ccf95..c83c67746f73f72cad68db54fb4c68aba3b97113 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <Configuration status="ERROR" monitorInterval="10" packages="user.commons.log4j2.appender,user.commons.log4j2.filter">\r
        <Properties>\r
-               <Property name="fileName">log/mediacube.log</Property>\r
-               <Property name="filePattern">log/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
-               <Property name="fileName.err">log/mediacube-err.log</Property>\r
-               <Property name="filePattern.err">log/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+               <Property name="fileName">/opt/log/mediacube.log</Property>\r
+               <Property name="filePattern">/opt/log/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+               <Property name="fileName.err">/opt/log/mediacube-err.log</Property>\r
+               <Property name="filePattern.err">/opt/log/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
        </Properties>\r
        <Appenders>\r
 <!--           <Console name="Console" target="SYSTEM_OUT"> -->\r
 <!--                   </Filters> -->\r
 <!--                   <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" /> -->\r
 <!--           </Console> -->\r
+\r
+               <File name="MediaProfile" fileName="/opt/log/mediaprofile.log">\r
+                       <Filters>\r
+                               <MarkerFilter marker="MEDIAPROFILE" onMatch="ACCEPT" onMismatch="DENY" />\r
+                       </Filters>\r
+                       <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %msg%n" />\r
+               </File>\r
+\r
                <Console name="Console" target="SYSTEM_OUT">\r
                        <Filters>\r
                                <MarkerFilter marker="MEDIACUBE" onMatch="DENY" onMismatch="NEUTRAL" />\r
@@ -57,6 +65,7 @@
        </Appenders>\r
        <Loggers>\r
                <Root level="INFO">\r
+                       <AppenderRef ref="MediaProfile" />\r
                        <AppenderRef ref="Console" />\r
                        <AppenderRef ref="MarkeredConsole" />\r
 <!--                   <AppenderRef ref="RollingFile" /> -->\r
index 598c1d7115bf4276f8458ed132419a28a8669da7..dd2d677b0bb4b254e8c77f109e02c5a5a5d0531d 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/bin&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.11.1.90: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.11.1.90: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.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.randomize.archives=true&#13;&#10;-Djobengine.jobsteps.config=&quot;${workspace_loc}/user.jobengine.executors/config/config.xml&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps&quot;&#13;&#10;-Dmediacube.simplesearch=true"/>\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/bin&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates/mediavivantis&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc&#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.11.1.90:50000/mc&#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.randomize.archives=true&#13;&#10;-Djobengine.jobsteps.config=&quot;${workspace_loc}/user.jobengine.executors/config/config-mv.xml&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps&quot;&#13;&#10;-Dmediacube.simplesearch=true"/>\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.db2.jcc@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,groovy@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-api@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
index 2099db019550735e90476068003975335ef7ee88..eeebbda60bffb81b3c9ec4957a9cbec2e4cb5aa3 100644 (file)
@@ -22,7 +22,7 @@
 <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/bin&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.212.42:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=blobtest&#13;&#10;-Djobengine.db.password=blobtest&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&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;-Dgui.maestro.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.jobsteps.config=&quot;${workspace_loc}/user.jobengine.executors/config/config.xml&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps&quot;&#13;&#10;-Dgui.jobs.alternate.selector=true&#13;&#10;-Dmediacube.simplesearch=true"/>\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.db2.jcc@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,groovy@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,org.slf4j.api@default:default"/>\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.db2.jcc@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,groovy@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"/>\r
 <booleanAttribute key="tracing" value="false"/>\r
 <booleanAttribute key="useCustomFeatures" value="false"/>\r
 <booleanAttribute key="useDefaultConfigArea" value="true"/>\r
diff --git a/server/-configuration/run-mediacube-server-user (2).launch b/server/-configuration/run-mediacube-server-user (2).launch
new file mode 100644 (file)
index 0000000..b818cae
--- /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 (2)"/>\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/bin&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.212.42:50000/mc&#13;&#10;-Djobengine.db.user=blobtest&#13;&#10;-Djobengine.db.password=blobtest&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&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&#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;-Dgui.maestro.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.jobsteps.config=&quot;${workspace_loc}/user.jobengine.executors/config/config.xml&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps&quot;&#13;&#10;-Dgui.jobs.alternate.selector=true&#13;&#10;-Dmediacube.simplesearch=true"/>\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.db2.jcc@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,groovy@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.commons.zk@default:default,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.gui@default:true,user.mediacube.metadata@default:default,user.tsm.client@default:default"/>\r
+</launchConfiguration>\r
index 8a4caaa79516b3f7ed17188053230b099a012dd8..d429ad3442b7695be059985d01a5580438498adf 100644 (file)
       "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
        },\r
        {\r
+      "template": "cancelable.xml",\r
+      "parameters": [ {"name": "param", "value": 1, "type": "java.lang.Integer"} ]\r
+       },\r
+       {\r
       "active": false,\r
       "executeimmediate": false,\r
       "cronexpression": "0/10 * * * * ? *",\r
index c133865f26efcf977d5c79e3c9618787558bc6cd..5b1064306ab62162b5a41c5b181a27b0baa5502d 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?pde version="3.8"?><target name="JobEngine" sequenceNumber="333">\r
+<?pde version="3.8"?><target name="JobEngine" sequenceNumber="337">\r
 <locations>\r
 <location path="${eclipse_home}" type="Profile"/>\r
 <location path="${workspace_loc}/-dependencies/target/repository/plugins" type="Directory"/>\r
@@ -51,6 +51,7 @@
 <plugin id="org.eclipse.equinox.common"/>\r
 <plugin id="org.eclipse.equinox.console"/>\r
 <plugin id="org.eclipse.equinox.ds"/>\r
+<plugin id="org.eclipse.equinox.p2.reconciler.dropins"/>\r
 <plugin id="org.eclipse.equinox.util"/>\r
 <plugin id="org.eclipse.jetty.annotations"/>\r
 <plugin id="org.eclipse.jetty.client"/>\r
index 1f524f2fb4e56c8ea346eab1acb78010575a7a22..6fb7c300b5c4d010dee1fabcac0e4cff765eca03 100644 (file)
@@ -31,8 +31,6 @@ import java.util.Set;
 import java.util.TreeMap;\r
 import java.util.TreeSet;\r
 \r
-import javax.sql.DataSource;\r
-\r
 import org.apache.commons.io.FilenameUtils;\r
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.ibatis.jdbc.SQL;\r
@@ -41,7 +39,7 @@ import org.junit.Test;
 import com.ibm.nosql.json.api.BasicDBList;\r
 import com.ibm.nosql.json.api.BasicDBObject;\r
 \r
-import user.commons.MediaCubeDataSourceFactory;\r
+import groovy.lang.GroovyClassLoader;\r
 import user.jobengine.db.Media;\r
 import user.jobengine.server.steps.ArchiveItem;\r
 import user.jobengine.server.steps.EscortFiles;\r
@@ -934,8 +932,29 @@ public class SmallTests {
 \r
        @Test\r
        public void test9995() throws Exception {\r
-               MediaCubeDataSourceFactory.create();\r
-               DataSource dataSource = MediaCubeDataSourceFactory.getDataSource();\r
+               String className = "TestStep1";\r
+               String root = "/opt/steps";\r
+               try (GroovyClassLoader cl = new GroovyClassLoader(this.getClass().getClassLoader())) {\r
+                       List<String> lines = Files.readAllLines(Paths.get(root, className + ".java"));\r
+                       String packageName = null;\r
+                       for (String line : lines) {\r
+                               String trimedLine = line.trim();\r
+                               if (trimedLine.startsWith("package")) {\r
+                                       packageName = trimedLine.replace("package", "").replace(";", ".");\r
+                               }\r
+\r
+                               if (packageName != null && trimedLine.startsWith("import") && trimedLine.contains(packageName)) {\r
+                                       System.out.println(trimedLine);\r
+                               }\r
+                       }\r
+\r
+                       //                      Class<?> myClass = cl.parseClass(Paths.get("/opt/steps/TestStep1.java").toFile());\r
+                       //                      System.out.println(myClass.getCanonicalName());\r
+                       //                      Method method = myClass.getMethod("execute");\r
+                       //                      method.invoke(myClass.newInstance());\r
+               } catch (Exception e) {\r
+                       throw e;\r
+               }\r
 \r
        }\r
 }\r
index cd505402eeeeaa78b9df80ea96ff11942fd91b22..f404fcf18e5075e8e24cf3440043b9b3698dc1a9 100644 (file)
@@ -5,6 +5,8 @@ import java.nio.file.Paths;
 \r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+import org.apache.logging.log4j.MarkerManager;\r
 \r
 import user.commons.StoreUri;\r
 import user.commons.mediatool.MediaInfo;\r
@@ -23,42 +25,43 @@ public class PASAPOOLTransferToStep extends TransferStep {
        public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
                this.sourceStoreUri = sourceStoreUri;\r
                this.sourceFileName = sourceFileName;\r
+               logMediaProfile();\r
                return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
        }\r
 \r
-       @Override\r
-       protected StoreUri getTargetStoreUri() {\r
-               StoreUri result = null;\r
-               try {\r
-                       Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
-                       MediaInfo mi = new MediaInfo(filePath);\r
-                       mi.process();\r
-\r
-                       if (isHD(mi)) {\r
-                               result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
-                               return result;\r
-                       }\r
-\r
-                       if (isSD_HIGH_16_9(mi)) {\r
-                               result = getManager().getStoreUri("SELENIOPOOL_16_9", targetStoreUri.getProtocol());\r
-                               return result;\r
-                       }\r
-\r
-                       if (isSD_HIGH_4_3(mi)) {\r
-                               result = getManager().getStoreUri("SELENIOPOOL_4_3", targetStoreUri.getProtocol());\r
-                               return result;\r
-                       }\r
-\r
-                       if (isSD_MAIN_422(mi)) {\r
-                               result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
-                               return result;\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.error(getSessionMarker(), e.getMessage());\r
-                       result = targetStoreUri;\r
-               }\r
-               return result;\r
-       }\r
+       //      @Override\r
+       //      protected StoreUri getTargetStoreUri() {\r
+       //              StoreUri result = null;\r
+       //              try {\r
+       //                      Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
+       //                      MediaInfo mi = new MediaInfo(filePath);\r
+       //                      mi.process();\r
+       //\r
+       //                      if (isHD(mi)) {\r
+       //                              result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
+       //                              return result;\r
+       //                      }\r
+       //\r
+       //                      if (isSD_HIGH_16_9(mi)) {\r
+       //                              result = getManager().getStoreUri("SELENIOPOOL_16_9", targetStoreUri.getProtocol());\r
+       //                              return result;\r
+       //                      }\r
+       //\r
+       //                      if (isSD_HIGH_4_3(mi)) {\r
+       //                              result = getManager().getStoreUri("SELENIOPOOL_4_3", targetStoreUri.getProtocol());\r
+       //                              return result;\r
+       //                      }\r
+       //\r
+       //                      if (isSD_MAIN_422(mi)) {\r
+       //                              result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
+       //                              return result;\r
+       //                      }\r
+       //              } catch (Exception e) {\r
+       //                      logger.error(getSessionMarker(), e.getMessage());\r
+       //                      result = targetStoreUri;\r
+       //              }\r
+       //              return result;\r
+       //      }\r
 \r
        //      HD\r
        //      height = 1080\r
@@ -93,4 +96,35 @@ public class PASAPOOLTransferToStep extends TransferStep {
                return mi.getHeight() < 650 && (CODEC_PROFILE_HIGH.equals(mi.getCodecProfileName()) || CODEC_PROFILE_422.equals(mi.getCodecProfileName()));\r
        }\r
 \r
+       protected void logMediaProfile() {\r
+               Marker marker = MarkerManager.getMarker("MEDIAPROFILE");\r
+               try {\r
+                       Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
+                       MediaInfo mi = new MediaInfo(filePath);\r
+                       mi.process();\r
+\r
+                       if (isHD(mi)) {\r
+                               logger.info(marker, "%s is HD", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_HIGH_16_9(mi)) {\r
+                               logger.info(marker, "%s is SD_HIGH_16_9", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_HIGH_4_3(mi)) {\r
+                               logger.info(marker, "%s is SD_HIGH_4_3", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_MAIN_422(mi)) {\r
+                               logger.info(marker, "%s is SD_MAIN_422", sourceFileName);\r
+                               return;\r
+                       }\r
+               } catch (Exception e) {\r
+                       logger.error(marker, e.getMessage());\r
+               }\r
+       }\r
+\r
 }\r
diff --git a/server/user.jobengine.executors/config/config-mv.xml b/server/user.jobengine.executors/config/config-mv.xml
new file mode 100644 (file)
index 0000000..8599ec6
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<executors>\r
+       <executor className="CancelableStep.java" maxConcurrent="1" isRemote="true" />\r
+       <executor className="TestForkCancelableStep.java" maxConcurrent="10" isRemote="false" />\r
+</executors>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml
new file mode 100644 (file)
index 0000000..8353b0c
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Felhasználói archiválás" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String" />\r
+                       <parameter name="killDateDays" type="java.lang.Integer" />\r
+                       <parameter name="limit" type="java.lang.Integer" />\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="archiveList" type="java.util.LinkedList" />\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="step1" type="user.jobengine.server.steps.ArchiveListBuilderStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="limit" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="archiveList" />\r
+                               </output>\r
+                       </outputs>\r
+               </calljobstep>\r
+\r
+               <calljobstep id="step2" type="user.jobengine.server.steps.ArchiveMaterialSubmitStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveList" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-material.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-material.xml
new file mode 100644 (file)
index 0000000..d2fe5e9
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyag archiválása"  multiInstance="true"  useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="archiveItem" type="user.jobengine.server.steps.ArchiveItem" />\r
+                       <parameter name="killDateDays" type="java.lang.Integer"/>\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.MetadataTransformStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="archiveItem" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </output>\r
+                       </outputs>\r
+               </calljobstep>\r
+               <calljobstep id="id2" type="user.jobengine.server.steps.TSMBackupStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>          \r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-ondemand.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-ondemand.xml
new file mode 100644 (file)
index 0000000..9ef3299
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Felhasználói archiválás"  useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String" />\r
+                       <parameter name="killDateDays" type="java.lang.Integer" />\r
+                       <parameter name="limit" type="java.lang.Integer" />\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="archiveList" type="java.util.LinkedList" />\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="step1" type="user.jobengine.server.steps.ArchiveListBuilderStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="limit" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="archiveList" />\r
+                               </output>\r
+                       </outputs>\r
+               </calljobstep>\r
+\r
+               <calljobstep id="step2" type="user.jobengine.server.steps.ArchiveMaterialSubmitStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveList" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/batch-retrieve-ondemand.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/batch-retrieve-ondemand.xml
new file mode 100644 (file)
index 0000000..c1170b0
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true"  useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="basket" type="java.util.ArrayList" />\r
+                       <parameter name="houseId" type="java.lang.String" />\r
+                       <parameter name="recipient" type="java.lang.String" />\r
+                       <parameter name="targetPathType" type="java.lang.String" />\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep type="user.jobengine.server.steps.BatchRetrieveForkStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="basket" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="houseId" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="recipient" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetPathType" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/cancelable.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/cancelable.xml
new file mode 100644 (file)
index 0000000..2be289b
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="true">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="param" type="java.lang.Integer" />\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep remote="true" type="CancelableStep.java" weight="1" >\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="param" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/common-copy.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/common-copy.xml
new file mode 100644 (file)
index 0000000..52c5b3f
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Általános file másolás" multiInstance="true" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourceProtocol" type="java.lang.String"/>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="sourceFileName" type="java.lang.String"/>\r
+                       <parameter name="targetProtocol" type="java.lang.String"/>\r
+                       <parameter name="targetPath" type="java.lang.String"/>\r
+                       <parameter name="targetFileName" type="java.lang.String"/>\r
+                       <parameter name="killDateDays" type="java.lang.Integer" />\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.FileCopyStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourceProtocol" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="sourceFileName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetProtocol" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetFileName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/create-lowres-ondemand.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/create-lowres-ondemand.xml
new file mode 100644 (file)
index 0000000..db6e88f
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Hiányzó PROXY videók pótlása" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
+                       <parameter name="deleteSource" type="java.lang.Boolean"/>\r
+                       <parameter name="killDateDays" type="java.lang.Integer"/>\r
+                       <parameter name="successRecipient" type="java.lang.String" />\r
+                       <parameter name="localHiresPath" type="java.lang.String" />\r
+                       <parameter name="globalHiresPath" type="java.lang.String" />\r
+                       <parameter name="localLowresPath" type="java.lang.String" />\r
+                       <parameter name="transcoderAddress" type="java.lang.String" />\r
+                       <parameter name="transcoderTemplateName" type="java.lang.String" />\r
+                       <parameter name="localRetrievePath" type="java.lang.String" />\r
+                       <parameter name="globalRetrievePath" type="java.lang.String" />\r
+                       <parameter name="targetNamePattern" type="java.lang.String" />\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="archiveItem" type="user.jobengine.server.steps.ArchiveItem" />\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep type="user.jobengine.server.steps.CreateArchiveItemStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localHiresPath" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="archiveItem" />\r
+                               </output>\r
+                       </outputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.TSMRestoreStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localHiresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetNamePattern" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="successRecipient" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localRetrievePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="globalRetrievePath" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="mediaCubeMedia" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.TranscodeFFAStranStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="transcoderAddress" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="transcoderTemplateName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="globalHiresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localLowresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="deleteSource" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.UpdateGhostMediaData" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="mediaCubeMedia" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/delete-materials.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/delete-materials.xml
new file mode 100644 (file)
index 0000000..29a18e0
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.CleanupMountedLocationStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-concurrent.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-concurrent.xml
new file mode 100644 (file)
index 0000000..88995ff
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+<declarations>\r
+       <parameters>\r
+               <parameter name="itemID" type="java.lang.Long"/>\r
+       </parameters>\r
+</declarations>\r
+<commands>\r
+       <calljobstep id="step3" type="user.jobengine.server.steps.FakeStep" weight="1">\r
+               <inputs>\r
+                       <input>\r
+                               <parameter name="itemID" />\r
+                       </input>\r
+               </inputs>\r
+               <commands>\r
+                       <calljobstep id="step2" type="user.jobengine.server.steps.FakeStep" weight="1">\r
+                               <inputs>\r
+                                       <input>\r
+                                               <parameter name="itemID" />\r
+                                       </input>\r
+                               </inputs>\r
+                       </calljobstep>\r
+               </commands>\r
+       </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-noparams.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-noparams.xml
new file mode 100644 (file)
index 0000000..a118f43
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+<commands>\r
+       <calljobstep type="FakeNoParamsStep.java" weight="1" />\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-spawn.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/fake-spawn.xml
new file mode 100644 (file)
index 0000000..4a7fb85
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" name="Fake" useSessionLog="false">\r
+<declarations>\r
+       <parameters>\r
+               <parameter name="itemID" type="java.lang.Long"/>\r
+       </parameters>\r
+       <parameters>\r
+               <parameter name="iter" type="java.lang.Iterable"/>\r
+       </parameters>\r
+       <variables>\r
+               <variable name="resultID" type="java.lang.Long"/>\r
+               <variable name="resultID1" type="java.lang.Long"/>\r
+       </variables>\r
+</declarations>\r
+<commands>\r
+       <calljobstep type="FakeStep.java" weight="5" forEach="iter">\r
+               <inputs>\r
+                       <input>\r
+                               <parameter name="itemID" />\r
+                       </input>\r
+                       <input>\r
+                               <parameter name="iter" />\r
+                       </input>\r
+               </inputs>\r
+               <outputs>\r
+                       <output>\r
+                               <variable name="resultID" />\r
+                       </output>\r
+                       <output>\r
+                               <variable name="resultID1" />\r
+                       </output>\r
+               </outputs>\r
+       </calljobstep>\r
+       <calljobstep type="MergeStep.java" weight="1">\r
+               <inputs>\r
+                       <input>\r
+                               <variable name="resultID" />\r
+                       </input>\r
+                       <input>\r
+                               <variable name="resultID1" />\r
+                       </input>\r
+               </inputs>\r
+       </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/fake.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/fake.xml
new file mode 100644 (file)
index 0000000..1eb2ea4
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" name="Fake" useSessionLog="false">\r
+<declarations>\r
+       <parameters>\r
+               <parameter name="itemID" type="java.lang.Long"/>\r
+       </parameters>\r
+       <variables>\r
+               <variable name="resultID" type="java.lang.Long"/>\r
+               <variable name="resultID1" type="java.lang.Long"/>\r
+       </variables>\r
+</declarations>\r
+<commands>\r
+       <calljobstep type="FakeStep.java" weight="1">\r
+               <inputs>\r
+                       <input>\r
+                               <parameter name="itemID" />\r
+                       </input>\r
+               </inputs>\r
+               <outputs>\r
+                       <output>\r
+                               <variable name="resultID" />\r
+                       </output>\r
+                       <output>\r
+                               <variable name="resultID1" />\r
+                       </output>\r
+               </outputs>\r
+       </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/migrate-hsm.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/migrate-hsm.xml
new file mode 100644 (file)
index 0000000..650f125
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="HSM migráció" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourceLocation" type="java.lang.String" />\r
+                       <parameter name="targetLocation" type="java.lang.String" />\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="step1" type="user.jobengine.server.steps.HSMMigrateStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourceLocation" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetLocation" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve-ondemand.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve-ondemand.xml
new file mode 100644 (file)
index 0000000..f42cde9
--- /dev/null
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="localRetrievePath" type="java.lang.String" />\r
+                       <parameter name="globalRetrievePath" type="java.lang.String" />\r
+                       <parameter name="materialOutputFolder" type="java.lang.String" />\r
+                       <parameter name="promoOutputFolder" type="java.lang.String" />\r
+                       <parameter name="advertisementOutputFolder" type="java.lang.String" />\r
+                       <parameter name="octopusOutputFolder" type="java.lang.String" />\r
+                       <parameter name="genericOutputFolder" type="java.lang.String" />\r
+                       <parameter name="onlineOutputFolder" type="java.lang.String" />\r
+                       <parameter name="archivedMedia" type="user.jobengine.db.ArchivedMedia" />\r
+                       <parameter name="houseId" type="java.lang.String" />\r
+                       <parameter name="successRecipient" type="java.lang.String" />\r
+                       <parameter name="targetPathType" type="java.lang.String" />\r
+                       <parameter name="killDateDays" type="java.lang.Integer"/>\r
+                       <parameter name="nexioAgency" type="java.lang.String"/>\r
+                       <parameter name="nexioPort" type="java.lang.Integer"/>\r
+                       <parameter name="nexioUserName" type="java.lang.String"/>\r
+                       <parameter name="nexioPassword" type="java.lang.String"/>\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="targetPath" type="java.lang.String" />\r
+                       <variable name="targetNamePattern" type="java.lang.String" />\r
+                       <variable name="useNexioTarget" type="java.lang.Boolean" />\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep type="user.jobengine.server.steps.OutputPathAndNameSelectorStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="localRetrievePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="materialOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="promoOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="advertisementOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="octopusOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="genericOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="onlineOutputFolder" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="houseId" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="targetPathType" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="archivedMedia" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="targetPath" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="targetNamePattern" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="useNexioTarget" />\r
+                               </output>\r
+                       </outputs>                      \r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.TSMExtendedRetrieveStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="archivedMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="targetPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="targetNamePattern" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="successRecipient" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localRetrievePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="globalRetrievePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="useNexioTarget" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioAgency" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioPort" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioUserName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioPassword" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.MXFCutterStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="archivedMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="targetPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="successRecipient" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="houseId" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="useNexioTarget" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioAgency" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioPort" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioUserName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="nexioPassword" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/retrieve.xml
new file mode 100644 (file)
index 0000000..d8ffd62
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="mediaId" type="java.lang.Long" />\r
+                       <parameter name="targetPath" type="java.lang.String" />\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep type="TSMSimpleRestoreStep.java" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="mediaId" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="targetPath" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/sys-recreate-lowres.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/sys-recreate-lowres.xml
new file mode 100644 (file)
index 0000000..92c9008
--- /dev/null
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Hiányzó PROXY videók pótlása" useSessionLog="false">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="localHiresPath" type="java.lang.String" />\r
+                       <parameter name="globalHiresPath" type="java.lang.String" />\r
+                       <parameter name="localLowresPath" type="java.lang.String" />\r
+                       <parameter name="transcoderAddress" type="java.lang.String" />\r
+                       <parameter name="transcoderTemplateName" type="java.lang.String" />\r
+                       <parameter name="localRetrievePath" type="java.lang.String" />\r
+                       <parameter name="globalRetrievePath" type="java.lang.String" />\r
+               </parameters>\r
+               <variables>\r
+                       <variable name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
+                       <variable name="targetNamePattern" type="java.lang.String" />\r
+                       <variable name="archiveItem" type="user.jobengine.server.steps.ArchiveItem" />\r
+                       <variable name="killDateDays" type="java.lang.Integer"/>\r
+                       <variable name="successRecipient" type="java.lang.String" />\r
+                       <variable name="deleteSource" type="java.lang.Boolean"/>\r
+               </variables>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep type="user.jobengine.server.steps.CreateMissingLowresStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="localHiresPath" />\r
+                               </input>\r
+                       </inputs>\r
+                       <outputs>\r
+                               <output>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="archiveItem" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="targetNamePattern" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="successRecipient" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="killDateDays" />\r
+                               </output>\r
+                               <output>\r
+                                       <variable name="deleteSource" />\r
+                               </output>\r
+                       </outputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.TSMRestoreStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localHiresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="targetNamePattern" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="successRecipient" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="killDateDays" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localRetrievePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="globalRetrievePath" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.TranscodeFFAStranStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="archiveItem" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="transcoderAddress" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="transcoderTemplateName" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="globalHiresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="localLowresPath" />\r
+                               </input>\r
+                               <input>\r
+                                       <variable name="deleteSource" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+               <calljobstep type="user.jobengine.server.steps.UpdateGhostMediaData" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <variable name="mediaCubeMedia" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java
new file mode 100644 (file)
index 0000000..f8c2eeb
--- /dev/null
@@ -0,0 +1,54 @@
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Files;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.IProgressEventListener;\r
+import user.commons.remotestore.IStatusEventListener;\r
+import user.commons.remotestore.ProgressEvent;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.commons.remotestore.StatusEvent;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.Store;\r
+\r
+public class TSMSimpleRestoreStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       @StepEntry\r
+       public Object[] execute(long mediaId, String targetPath) throws Exception {\r
+               String fileName = null;\r
+               try {\r
+                       Media media = getManager().getMedia(mediaId);\r
+                       MediaFile mediaFile = getManager().getSystemMediaFile(media);\r
+                       fileName = mediaFile.getRelativePath();\r
+                       getJobRuntime().setDescription(String.format("%s (%d frames)", fileName, media.getLength()));\r
+                       Store tsmStore = getManager().getSystemStore(false);\r
+                       StoreUri sourceStoreUri = getManager().getStoreUri(tsmStore.getName(), RemoteStoreProtocol.TSM);\r
+                       sourceStoreUri.addProgressListener(new IProgressEventListener() {\r
+                               @Override\r
+                               public void progressChanged(ProgressEvent evt) {\r
+                                       setProgress(evt.getProgress());\r
+                               }\r
+                       });\r
+                       sourceStoreUri.addStatusListener(new IStatusEventListener() {\r
+                               @Override\r
+                               public void statusChanged(StatusEvent evt) {\r
+                                       evt.setCancel(!canContinue());\r
+                               }\r
+                       });\r
+                       StoreUri targetStoreUri = getManager().createStoreUri(RemoteStoreProtocol.LOCAL, targetPath);\r
+                       sourceStoreUri.transferFrom(targetStoreUri, fileName, fileName + ".part");\r
+                       Files.move(Paths.get(targetPath, fileName + ".part"), Paths.get(targetPath, fileName));\r
+               } catch (Exception e) {\r
+                       logger.error("Az '{}' állomány visszatöltése sikertelen. A rendszer üzenete: {}", fileName, e.getMessage());\r
+                       throw e;\r
+               }\r
+\r
+               return null;\r
+       }\r
+}\r
similarity index 86%
rename from server/user.jobengine.executors/amc/user/jobengine/server/steps/CancelableStep.java
rename to server/user.jobengine.executors/src/user/jobengine/server/steps/CancelableStep.java
index 6648866f234535e6dcc3a613a862ebb627d37c9e..bcf29f2c1f38a4d4722e11cd203b8f53b119169b 100644 (file)
@@ -3,6 +3,8 @@ package user.jobengine.server.steps;
 import org.apache.commons.net.ftp.FTPClient;\r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+import org.apache.logging.log4j.MarkerManager;\r
 \r
 import user.commons.StoreUri;\r
 import user.commons.remotestore.FtpDirectoryLister;\r
@@ -19,14 +21,15 @@ public class CancelableStep extends JobStep {
 \r
                        //                      ftpTest();\r
 \r
+                       Marker marker = MarkerManager.getMarker("MEDIAPROFILE");\r
+\r
                        for (int i = 0; i < count; i++) {\r
                                if (getJobRuntime().isWaitingCancel())\r
                                        break;\r
                                Thread.sleep(500);\r
                                int progress = (i + 1) * 100 / count;\r
                                setProgress(progress);\r
-                               if (i == 1)\r
-                                       throw new Exception("xxx");\r
+                               logger.info(marker, "{}", i);\r
                        }\r
                } catch (Exception e) {\r
                        e.printStackTrace();\r
index 832b4df8c35e7354a83ed5a258b1cbcdd18601a1..0128e099291150d5f434fe1dafe4dbc473b8f6ae 100644 (file)
@@ -58,7 +58,7 @@ public class CreateMissingLowresStep extends JobStep {
 \r
        private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {\r
                Media[] result = { null };\r
-               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE LCASE(HOUSEID) LIKE '%.mxf' OR LCASE(HOUSEID) LIKE '%.mov' ORDER BY modified DESC FETCH FIRST ROW ONLY";\r
+               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC FETCH FIRST ROW ONLY";\r
                manager.executeQuery(query, rs -> {\r
                        try {\r
                                long mediaId = rs.getLong(1);\r
index 39e3927032213ca91798d1ab48d2e8d7b55257e2..91d00a8d693cc980a306e8b56add78ead35e5923 100644 (file)
@@ -14,7 +14,7 @@ public class TestForkCancelableStep extends JobStep {
        //      private static final String CHILD_TEMPLATE = "fake-concurrent.xml";\r
        private static final String CHILD_TEMPLATE = "cancelable.xml";\r
        private static final Logger logger = LogManager.getLogger();\r
-       int count = 20;\r
+       int count = 5;\r
 \r
        @StepEntry\r
        public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
index 2c39e4bfd3415a2acf53d4546b57d9d6677e050d..fb7783e402dc496cbb42f63b11ba4532d6c39ea6 100644 (file)
@@ -55,7 +55,6 @@ Require-Bundle: org.apache.commons.lang;bundle-version="2.4.0",
  joda-time;bundle-version="2.2.0",
  javax.ws.rs-api;bundle-version="2.0.1",
  com.microsoft.sqlserver.sqljdbc;bundle-version="6.0.8112",
- javax.annotation-api;bundle-version="1.2.0",
  org.apache.httpcomponents.httpclient;bundle-version="4.2.6",
  org.apache.httpcomponents.httpcore;bundle-version="4.2.5",
  org.apache.commons.logging;bundle-version="1.1.1",
index bbcd9d8653c754b51cb714c88b77d59b126f8f9b..95f05ce865c8c9df2326566bf8adb0c7a09f4ff4 100644 (file)
@@ -1,9 +1,12 @@
 package user.commons.nosql;\r
 \r
+import java.sql.Connection;\r
 import java.util.ArrayList;\r
 import java.util.Arrays;\r
 import java.util.List;\r
 \r
+import javax.sql.DataSource;\r
+\r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
@@ -15,15 +18,10 @@ import com.ibm.nosql.json.api.DBCursor;
 import com.ibm.nosql.json.api.DBObject;\r
 import com.ibm.nosql.json.api.NoSQLClient;\r
 \r
+import user.commons.MediaCubeDataSourceFactory;\r
+\r
 public class NoSQLUtils {\r
        private static final Logger logger = LogManager.getLogger();\r
-       public static final String Url, User, Pass;\r
-       public static DB noSQLClient = null;\r
-       static {\r
-               Url = System.getProperty("jobengine.nosql.db.url");\r
-               User = System.getProperty("jobengine.nosql.db.user");\r
-               Pass = System.getProperty("jobengine.nosql.db.password");\r
-       }\r
 \r
        public static void addLong(BasicDBObject obj, String name, long value) {\r
                long current = asLong(obj, name);\r
@@ -139,14 +137,15 @@ public class NoSQLUtils {
        }\r
 \r
        public static DB getNoSQLDB() {\r
-               //              try {\r
-               //                      //                      if (noSQLClient == null)\r
-               //                      noSQLClient = NoSQLClient.getDB(NoSQLUtils.Url, NoSQLUtils.User, NoSQLUtils.Pass);\r
-               //              } catch (Exception e) {\r
-               //                      logger.catching(e);\r
-               //              }\r
-               //              return noSQLClient;\r
-\r
-               return NoSQLClient.getDB(NoSQLUtils.Url, NoSQLUtils.User, NoSQLUtils.Pass);\r
+               DB result = null;\r
+               try {\r
+                       DataSource dataSource = MediaCubeDataSourceFactory.getNoSQLDatasource();\r
+                       Connection connection = dataSource.getConnection();\r
+                       result = NoSQLClient.getDB(connection);\r
+               } catch (Exception e) {\r
+                       logger.error(e);\r
+               }\r
+\r
+               return result;\r
        }\r
 }\r
index cefb24836a8ae77dc3859fc782d6967bd192e034..9183daa587fbe3ea1e10371dbd13215303c808b5 100644 (file)
@@ -23,7 +23,7 @@ public class OctopusAPI implements IOctopusAPI {
        private DB db;\r
 \r
        public OctopusAPI() throws SQLException {\r
-               db = NoSQLUtils.getNoSQLDB();\r
+\r
        }\r
 \r
        private void addReferences(List<DBObject> result) {\r
@@ -42,6 +42,11 @@ public class OctopusAPI implements IOctopusAPI {
                }\r
        }\r
 \r
+       private void ensureDB() {\r
+               if (db == null)\r
+                       db = NoSQLUtils.getNoSQLDB();\r
+       }\r
+\r
        private List<DBObject> getReferencedObjects(List<DBObject> stories, String referenceCollectionName, String referenceField) {\r
                List<Long> ids = null;\r
                for (DBObject story : stories) {\r
@@ -62,6 +67,7 @@ public class OctopusAPI implements IOctopusAPI {
                if (ids == null)\r
                        return null;\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection rundownCollection = db.getCollection(referenceCollectionName);\r
                BasicDBObject query = (BasicDBObject) QueryBuilder.start().put(ID).in(ids).get();\r
                DBCursor findParents = rundownCollection.find(query);\r
@@ -74,6 +80,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public DBObject getRundown(Date scheduledDate) {\r
                DBObject result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(RUNDOWN_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(SCHEDULED_START, scheduledDate));\r
                if (find.hasNext())\r
@@ -84,6 +91,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public DBObject getRundownByID(long rundownID) {\r
                DBObject result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(RUNDOWN_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(ID, rundownID));\r
                if (find.hasNext())\r
@@ -126,8 +134,13 @@ public class OctopusAPI implements IOctopusAPI {
 \r
        @Override\r
        public String getRundownContent(long id) {\r
-               BasicDBObject fields = new BasicDBObject(ID, 1).append(PARENT_STORY_ID, 1).append(NAME, 1).append(MODIFIED, 1).append(REF_RUNDOWN, 1).append(FORMAT, 1)\r
-                               .append(MOS_OBJECTS, 1).append(SCRIPT_CONTENT, 1);\r
+               BasicDBObject fields = new BasicDBObject(ID, 1).append(PARENT_STORY_ID, 1)\r
+                               .append(NAME, 1)\r
+                               .append(MODIFIED, 1)\r
+                               .append(REF_RUNDOWN, 1)\r
+                               .append(FORMAT, 1)\r
+                               .append(MOS_OBJECTS, 1)\r
+                               .append(SCRIPT_CONTENT, 1);\r
                List<DBObject> stories = getRundownStories(id, fields);\r
                return getRundownContent(stories);\r
        }\r
@@ -135,6 +148,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getRundownFullStories(long id) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(REF_RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))))\r
                                .sort(new BasicDBObject("name", 1));\r
@@ -161,6 +175,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getRundowns(Date scheduledDate) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(RUNDOWN_COLLECTION);\r
                Calendar calStart = CalendarUtils.createZeroCalendar(scheduledDate);\r
                Calendar calStop = CalendarUtils.createZeroCalendar(scheduledDate);\r
@@ -184,6 +199,7 @@ public class OctopusAPI implements IOctopusAPI {
 \r
        @Override\r
        public List<DBObject> getRundownsByParentStoryID(String id) {\r
+               ensureDB();\r
                DBCollection storyCollection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = storyCollection.find(new BasicDBObject(PARENT_STORY_ID, id), new BasicDBObject(REF_RUNDOWN, 1));\r
                if (!find.hasNext())\r
@@ -194,6 +210,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getRundownsByPlaceHolderID(String id) {\r
                //db.testStoryCollection.find({"mosObjects": {$elemMatch: {"globalId": "OCTOPUS-ECHOTV-2429902"}}})\r
+               ensureDB();\r
                DBCollection storyCollection = db.getCollection(STORY_COLLECTION);\r
                BasicDBObject criteria = new BasicDBObject(MOS_OBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(OBJ_ID, id)));\r
                DBCursor find = storyCollection.find(criteria, new BasicDBObject(REF_RUNDOWN, 1));\r
@@ -212,10 +229,16 @@ public class OctopusAPI implements IOctopusAPI {
                // db.stories.find({ rundown: { $elemMatch: { id: 92950867 } }})\r
                // { rundown: { $elemMatch: { id: 44622396 } }}\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection\r
-                               .find(new BasicDBObject(REF_RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))), new BasicDBObject(ID, 1)\r
-                                               .append(PARENT_STORY_ID, 1).append(NAME, 1).append(MODIFIED, 1).append(REF_RUNDOWN, 1).append(FORMAT, 1).append(MOS_OBJECTS, 1))\r
+                               .find(new BasicDBObject(REF_RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))),\r
+                                               new BasicDBObject(ID, 1).append(PARENT_STORY_ID, 1)\r
+                                                               .append(NAME, 1)\r
+                                                               .append(MODIFIED, 1)\r
+                                                               .append(REF_RUNDOWN, 1)\r
+                                                               .append(FORMAT, 1)\r
+                                                               .append(MOS_OBJECTS, 1))\r
                                .sort(new BasicDBObject("name", 1));\r
                if (find.hasNext())\r
                        result = find.toArray();\r
@@ -226,6 +249,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getRundownStories(long id, BasicDBObject fields) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(REF_RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))))\r
                                .sort(new BasicDBObject("name", 1));\r
@@ -259,6 +283,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStories() {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(), new BasicDBObject("mosObjects", 1).append("_id", 0)).limit(1000);\r
                if (find.hasNext())\r
@@ -269,6 +294,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStoriesByID(String id) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(ID, id));\r
                if (find.hasNext()) {\r
@@ -283,6 +309,7 @@ public class OctopusAPI implements IOctopusAPI {
                //Pattern regex = Pattern.compile(id, Pattern.CASE_INSENSITIVE);\r
                //BasicDBObject query = new BasicDBObject("id", Pattern.compile(id));\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(PARENT_STORY_ID, id));\r
                if (find.hasNext()) {\r
@@ -295,6 +322,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStoriesByPlaceHolderID(String id) {\r
                List<DBObject> result = new ArrayList<>();\r
+               ensureDB();\r
                DBCollection storyCollection = db.getCollection(STORY_COLLECTION);\r
                BasicDBObject criteria = new BasicDBObject(MOS_OBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(OBJ_ID, id)));\r
                DBCursor find = storyCollection.find(criteria);\r
@@ -308,6 +336,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStoryFolders() {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(FOLDER_COLLECTION);\r
                DBCursor find = collection.find();\r
                if (find.hasNext())\r
@@ -317,6 +346,7 @@ public class OctopusAPI implements IOctopusAPI {
 \r
        @Override\r
        public List<DBObject> getStoryFoldersByParentStoryID(String id) {\r
+               ensureDB();\r
                DBCollection storyCollection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = storyCollection.find(new BasicDBObject(PARENT_STORY_ID, id), new BasicDBObject(REF_STORYFOLDER, 1));\r
                if (!find.hasNext())\r
@@ -326,6 +356,7 @@ public class OctopusAPI implements IOctopusAPI {
 \r
        @Override\r
        public List<DBObject> getStoryFoldersByPlaceHolderID(String id) {\r
+               ensureDB();\r
                DBCollection storyCollection = db.getCollection(STORY_COLLECTION);\r
                BasicDBObject criteria = new BasicDBObject(MOS_OBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(OBJ_ID, id)));\r
                DBCursor find = storyCollection.find(criteria, new BasicDBObject(REF_STORYFOLDER, 1));\r
@@ -337,10 +368,16 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStoryFolderStories(long storyFolderId) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection\r
-                               .find(new BasicDBObject(REF_STORYFOLDER, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, storyFolderId))), new BasicDBObject(ID, 1)\r
-                                               .append(PARENT_STORY_ID, 1).append(NAME, 1).append(MODIFIED, 1).append(REF_STORYFOLDER, 1).append(FORMAT, 1).append(MOS_OBJECTS, 1))\r
+                               .find(new BasicDBObject(REF_STORYFOLDER, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, storyFolderId))),\r
+                                               new BasicDBObject(ID, 1).append(PARENT_STORY_ID, 1)\r
+                                                               .append(NAME, 1)\r
+                                                               .append(MODIFIED, 1)\r
+                                                               .append(REF_STORYFOLDER, 1)\r
+                                                               .append(FORMAT, 1)\r
+                                                               .append(MOS_OBJECTS, 1))\r
                                .sort(new BasicDBObject(NAME, 1));\r
                if (find.hasNext())\r
                        result = find.toArray();\r
@@ -350,6 +387,7 @@ public class OctopusAPI implements IOctopusAPI {
        @Override\r
        public List<DBObject> getStoryFolderStories(long storyFolderId, BasicDBObject fields) {\r
                List<DBObject> result = null;\r
+               ensureDB();\r
                DBCollection collection = db.getCollection(STORY_COLLECTION);\r
                DBCursor find = collection.find(new BasicDBObject(REF_STORYFOLDER, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, storyFolderId))), fields)\r
                                .sort(new BasicDBObject(NAME, 1));\r
index 469dd2fc4d776a482edca6f288f72c85e37ee7a8..046ad35dd3024eb597946c116fce06d1b9d2c3c9 100644 (file)
@@ -38,9 +38,11 @@ public class TSMOutputStream extends OutputStream {
                logger.info("Closing stream");\r
                try {\r
                        //ha nem sikerult az iras, mar volt abort\r
-                       if (success)\r
+                       if (success) {\r
                                client.commit();\r
-                       logger.info("Commit at close completed");\r
+                               logger.info("Commit at close completed");\r
+                       } else\r
+                               logger.info("Skipping commit at close, session probaly terminated");\r
                } catch (Exception e) {\r
                        throw new IOException(e);\r
                } finally {\r
index ef6ac7a538cc4ddd2716d47dd5f9bd24d0dccdbc..e270456dbff19cb615508827f58abb6786ac2388 100644 (file)
@@ -3,8 +3,7 @@ package user.commons.pool;
 import java.lang.reflect.InvocationTargetException;\r
 import java.sql.Connection;\r
 import java.sql.DriverManager;\r
-import java.sql.ResultSet;\r
-import java.sql.Statement;\r
+import java.sql.SQLException;\r
 import java.util.Properties;\r
 \r
 import org.apache.logging.log4j.LogManager;\r
@@ -33,33 +32,40 @@ public class ContextPool extends ResourcePool {
        @Override\r
        protected boolean checkObject(Object resourceObject) {\r
                DefaultContext context = (DefaultContext) resourceObject;\r
-               boolean result = false;\r
-               String sql = "SELECT 1 FROM SYSIBM.SYSDUMMY1";\r
-               Statement stmt = null;\r
-               ResultSet rs = null;\r
-               try {\r
-                       stmt = context.getConnection().createStatement();\r
-                       rs = stmt.executeQuery(sql);\r
-                       while (rs.next())\r
-                               rs.getInt(1);\r
 \r
-                       result = true;\r
-               } catch (Exception e1) {\r
-                       logger.catching(e1);\r
-                       if (rs != null)\r
-                               try {\r
-                                       rs.close();\r
-                               } catch (Exception e) {\r
-                                       logger.catching(e);\r
-                               }\r
-                       if (stmt != null)\r
-                               try {\r
-                                       stmt.close();\r
-                               } catch (Exception e) {\r
-                                       logger.catching(e);\r
-                               }\r
+               boolean result = false;\r
 \r
+               try {\r
+                       result = !context.getConnection().isClosed();\r
+               } catch (SQLException e) {\r
                }\r
+               logger.info("Context check {}", result);\r
+               //              String sql = "SELECT 1 FROM SYSIBM.SYSDUMMY1";\r
+               //              Statement stmt = null;\r
+               //              ResultSet rs = null;\r
+               //              try {\r
+               //                      stmt = context.getConnection().createStatement();\r
+               //                      rs = stmt.executeQuery(sql);\r
+               //                      while (rs.next())\r
+               //                              rs.getInt(1);\r
+               //\r
+               //                      result = true;\r
+               //              } catch (Exception e1) {\r
+               //                      logger.catching(e1);\r
+               //                      if (rs != null)\r
+               //                              try {\r
+               //                                      rs.close();\r
+               //                              } catch (Exception e) {\r
+               //                                      logger.catching(e);\r
+               //                              }\r
+               //                      if (stmt != null)\r
+               //                              try {\r
+               //                                      stmt.close();\r
+               //                              } catch (Exception e) {\r
+               //                                      logger.catching(e);\r
+               //                              }\r
+               //\r
+               //              }\r
                return result;\r
        }\r
 \r
index fdb4033564adf0e0b38855e6c05f4e76d2b97dfb..4578e9408339fa29adeb2a6f82d91c559e2e3f3c 100644 (file)
@@ -584,8 +584,8 @@ public class JobEngine implements IJobEngine {
                        for (Job job : runningJobs) {
                                Job runningJob = getJob(job.getId());
                                if (runningJob != null && runningJob.getStatus() != JobStatus.SUSPENDED)
-                                       throw new JobEngineException(
-                                                       String.format("Can not submit job. Job with %s.%s already running", template.getFileName(), template.getName()));
+                                       throw new JobEngineException(String.format("Can not submit job. Job with %s.%s already running", template.getFileName(),
+                                                       template.getName()));
                        }
                }
        }
@@ -849,6 +849,18 @@ public class JobEngine implements IJobEngine {
                runQueue.remove(jobRuntime);
        }
 
+       @Override
+       public void removeGarbage() {
+               List<Long> removeId = new ArrayList<>();
+               for (Long id : submittedJobs.keySet()) {
+                       IJobRuntime runtime = submittedJobs.get(id);
+                       if (runtime != null && (JobStatus.SUSPENDED.equals(runtime.getStatus()) || JobStatus.CANCELED.equals(runtime.getStatus())))
+                               removeId.add(id);
+               }
+               for (Long id : removeId)
+                       submittedJobs.remove(id);
+       }
+
        @Override
        public void removeJob(long id) {
                if (submittedJobs.containsKey(id)) {
@@ -877,18 +889,6 @@ public class JobEngine implements IJobEngine {
 
        }
 
-       @Override
-       public void removeGarbage() {
-               List<Long> removeId = new ArrayList<>();
-               for (Long id : submittedJobs.keySet()) {
-                       IJobRuntime runtime = submittedJobs.get(id);
-                       if (runtime != null && (JobStatus.SUSPENDED.equals(runtime.getStatus()) || JobStatus.CANCELED.equals(runtime.getStatus())))
-                               removeId.add(id);
-               }
-               for (Long id : removeId)
-                       submittedJobs.remove(id);
-       }
-
        @Override
        public ClusteredJob requestJob(String className) throws Exception {
                if (!executors.containsKey(className))
@@ -1053,7 +1053,8 @@ public class JobEngine implements IJobEngine {
                                result.addEventListener(statusListener);
                        submit(result);
                } else {
-                       logger.error("Unknown template: " + template);
+                       logger.error("Unknown template {}", template);
+                       throw new JobEngineException("Unknown template " + template);
                }
                return result;
        }
index 8f32f175148a9a2d75fec5640bf09600927c84ed..23e19ad5d08abcf03fa8146301fe5f8aca68711c 100644 (file)
@@ -1,7 +1,6 @@
 package user.jobengine.server;
 
 import java.net.URLClassLoader;
-import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
@@ -229,11 +228,23 @@ public class JobStepExecutor implements IJobStepExecutor {
                IJobStep result = null;
 
                if (isGroovyStep()) {
-                       GroovyClassLoader gcl = new GroovyClassLoader(parentLoader);
-                       Path stepRoot = Paths.get(System.getProperty("jobengine.jobsteps.groovy.root", ""));
-                       gcl.addClasspath(stepRoot.toString());
-                       Class myClass = gcl.parseClass(Paths.get(stepRoot.toString(), stepUnitName).toFile());
-                       result = (IJobStep) myClass.newInstance();
+                       try (GroovyClassLoader gcl = new GroovyClassLoader(parentLoader)) {
+                               String stepsDir = System.getProperty("jobengine.jobsteps.groovy.root", "");
+                               for (String executorName : jobEngine.getExecutors().keySet()) {
+                                       if (!executorName.endsWith(".java"))
+                                               continue;
+
+                                       Class<?> myClass = gcl.parseClass(Paths.get(stepsDir, executorName).toFile());
+                                       if (stepUnitName.equals(executorName)) {
+                                               result = (IJobStep) myClass.newInstance();
+                                               break;
+                                       }
+                               }
+                       } catch (Exception e) {
+                               logger.error(e.getMessage());
+                               throw e;
+                       }
+
                } else
                        result = stepClass.newInstance();
                return result;
index 09fcc754b50c5cba40fa1e982b97b82a13356ad3..0f81ddb95d6ca5621fd955b84e59b86b63e6a4a6 100644 (file)
@@ -17,6 +17,7 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
  com.ibm.nosql.bson,
  com.ibm.nosql.json,
  com.ibm.nosql.json.api,
+ com.ibm.nosql.json.util,
  javax.annotation;version="1.2.0",
  javax.servlet;version="3.1.0",
  javax.servlet.http;version="3.1.0",
index 83d41f00506e4be99335a58ce5933a7c3b1b1d5c..92c8a3ea5f516ba0bf5a54252fffa276e7432797 100644 (file)
@@ -1,13 +1,16 @@
 package user.jobengine.osgi.mediacube;\r
 \r
 import java.util.Set;\r
+import java.util.stream.Collectors;\r
 \r
+import javax.servlet.http.HttpServletRequest;\r
 import javax.ws.rs.Consumes;\r
 import javax.ws.rs.GET;\r
 import javax.ws.rs.POST;\r
 import javax.ws.rs.Path;\r
 import javax.ws.rs.Produces;\r
 import javax.ws.rs.QueryParam;\r
+import javax.ws.rs.core.Context;\r
 import javax.ws.rs.core.MediaType;\r
 import javax.ws.rs.core.Response;\r
 \r
@@ -15,6 +18,9 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.eclipse.core.runtime.adaptor.EclipseStarter;\r
 \r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+import com.ibm.nosql.json.util.JSON;\r
+\r
 import user.commons.MediaCubeMarker;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.IResultSetConsumer;\r
@@ -24,13 +30,13 @@ import user.jobengine.db.JSONBase;
 import user.jobengine.db.Media;\r
 import user.jobengine.osgi.rest.ComponentBinder;\r
 import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
 \r
 @Path("/jobengine")\r
 @SuppressWarnings("restriction")\r
 public class MediaCubeService {\r
 \r
        private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager itemManager = ComponentBinder.getItemManager();\r
 \r
        public MediaCubeService() {\r
                logger.info("Created");\r
@@ -50,6 +56,51 @@ public class MediaCubeService {
                return result;\r
        }\r
 \r
+       @GET\r
+       @Path("/checkmediafile")\r
+       @Consumes({ MediaType.APPLICATION_JSON })\r
+       @Produces({ MediaType.APPLICATION_JSON })\r
+       public Response checkMediaFile(@QueryParam("mediaFileHouseId") String mediaFileHouseId, @QueryParam("store") String store) {\r
+               Response result = null;\r
+               try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
+                       if (itemManager == null)\r
+                               throw new Exception("No ItemManager found");\r
+                       if (mediaFileHouseId == null || mediaFileHouseId.trim().length() == 0)\r
+                               throw new Exception("The 'mediaFileHouseId' parameter is not provided!");\r
+                       if (store == null || store.trim().length() == 0)\r
+                               throw new Exception("The 'store' parameter is not provided!");\r
+                       BasicDBObject id[] = { new BasicDBObject() };\r
+                       String sql = String.format(\r
+                                       "select mf.mediaid, mf.houseId, mf.relativepath  from MEDIAFILE mf, STORE s where mf.storeid = s.id and s.name='%s' and houseid LIKE '%s.%%'",\r
+                                       store, mediaFileHouseId);\r
+                       IResultSetConsumer consumer = rs -> {\r
+                               String origName = rs.getString("houseId");\r
+                               String tsmName = rs.getString("relativePath");\r
+                               long mediaId = rs.getLong("mediaId");\r
+                               if (origName.toUpperCase().endsWith(".MXF")) {\r
+\r
+                                       id[0].put("origName", origName);\r
+                                       id[0].put("tsmName", tsmName);\r
+                                       id[0].put("mediaId", mediaId);\r
+                                       return false;\r
+                               }\r
+\r
+                               if (origName.toUpperCase().endsWith(".MOV")) {\r
+                                       id[0].put("origName", origName);\r
+                                       id[0].put("tsmName", tsmName);\r
+                                       id[0].put("mediaId", mediaId);\r
+                               }\r
+                               return true;\r
+                       };\r
+                       itemManager.executeQuery(sql, consumer, null);\r
+                       result = Response.ok(id[0]).build();\r
+               } catch (Exception e) {\r
+                       result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();\r
+               }\r
+               return result;\r
+       }\r
+\r
        @POST\r
        @Path("/create")\r
        @Consumes({ MediaType.APPLICATION_JSON })\r
@@ -57,6 +108,7 @@ public class MediaCubeService {
        public Response create(JSONBase entity) {\r
                Response result = null;\r
                try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
                        if (itemManager == null)\r
                                throw new Exception("No ItemManager found");\r
                        itemManager.add(entity);\r
@@ -74,6 +126,7 @@ public class MediaCubeService {
        public Response getItem() {\r
                Response result = null;\r
                try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
                        if (itemManager == null)\r
                                throw new Exception("No ItemManager found");\r
                        Item item = itemManager.createItem("xxx", "yyyy", "111");\r
@@ -91,6 +144,7 @@ public class MediaCubeService {
        public Response getMedia(@QueryParam("mediaHouseId") String mediaHouseId) {\r
                Response result = null;\r
                try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
                        if (itemManager == null)\r
                                throw new Exception("No ItemManager found");\r
 \r
@@ -137,6 +191,7 @@ public class MediaCubeService {
        public Response getTags() {\r
                Response result = null;\r
                try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
                        if (itemManager == null)\r
                                throw new Exception("No ItemManager found");\r
                        Set<String> tags = itemManager.getAllTags().keySet();\r
@@ -175,6 +230,32 @@ public class MediaCubeService {
                return result;\r
        }\r
 \r
+       @GET\r
+       @Path("/jobstatus")\r
+       @Consumes({ MediaType.APPLICATION_JSON })\r
+       @Produces({ MediaType.APPLICATION_JSON })\r
+       public Response jobStatus(@QueryParam("jobId") long jobId) {\r
+               Response result = null;\r
+               try {\r
+                       IItemManager itemManager = ComponentBinder.getItemManager();\r
+                       if (itemManager == null)\r
+                               throw new Exception("No ItemManager found");\r
+                       if (jobId == 0)\r
+                               throw new Exception("The 'jobId' parameter is not provided!");\r
+                       String status[] = { null };\r
+                       String sql = String.format("select status from JOB where id=%d", jobId);\r
+                       IResultSetConsumer consumer = rs -> {\r
+                               status[0] = rs.getString("status");\r
+                               return false;\r
+                       };\r
+                       itemManager.executeQuery(sql, consumer, null);\r
+                       result = Response.ok(status[0]).build();\r
+               } catch (Exception e) {\r
+                       result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();\r
+               }\r
+               return result;\r
+       }\r
+\r
        @GET\r
        @Path("/notify")\r
        @Consumes({ MediaType.APPLICATION_JSON })\r
@@ -206,4 +287,34 @@ public class MediaCubeService {
                }\r
                return result;\r
        }\r
+\r
+       @POST\r
+       @Path("/startjob")\r
+       @Consumes({ MediaType.APPLICATION_JSON })\r
+       @Produces({ MediaType.APPLICATION_JSON })\r
+       public Response startJob(@QueryParam("template") String template, @QueryParam("name") String name, @Context HttpServletRequest request) {\r
+\r
+               Response result = null;\r
+               try {\r
+                       Object jsStr = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));\r
+                       BasicDBObject jobParameters = (BasicDBObject) JSON.parse(String.valueOf(jsStr));\r
+\r
+                       IJobEngine jobEngine = ComponentBinder.getJobengine();\r
+                       if (jobEngine == null)\r
+                               throw new Exception("No JobEngine found");\r
+                       if (template == null || template.trim().length() == 0)\r
+                               throw new Exception("The 'template' parameter is not provided!");\r
+                       if (name == null || name.trim().length() == 0)\r
+                               throw new Exception("The 'name' parameter is not provided!");\r
+\r
+                       IJobRuntime jobRuntime = jobEngine.submit(template, name, jobParameters);\r
+                       if (jobRuntime == null)\r
+                               throw new NullPointerException("Job submit error!");\r
+                       result = Response.ok(jobRuntime.getId()).build();\r
+               } catch (Exception e) {\r
+                       result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();\r
+               }\r
+               return result;\r
+       }\r
+\r
 }\r
index 19a5b21545b6d0c33ecbabdbb9e5d276d840f517..4be9d5651ae06cec42d374a0b2797f323e7d8bfe 100644 (file)
@@ -35,7 +35,7 @@
        <!--    <custom-attributes org.zkoss.zul.listbox.preloadSize="50" /> -->\r
 \r
        <div id="scdiv" width="100%" height="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.SearchModel')">\r
-               <timer id="timer" delay="1000" repeats="false" onTimer="@command('uiTick')" />\r
+               <timer id="timer" delay="500" repeats="false" onTimer="@command('uiTick')" />\r
                <div id="tagListener" onChange="@command('onTagChanged')" />\r
 \r
                <borderlayout width="100%" height="100%">\r
index 1a8e6c4333295b4ffbd17ac3ddca3a09a7772959..e610c70aef3d755ee52152779b418c8d3353d0b7 100644 (file)
@@ -543,7 +543,10 @@ public class SearchModel extends AsyncBaseModel {
        }\r
 \r
        private void handleSearchError(Exception e) {\r
-               Clients.showNotification(e.getMessage(), "error", search, "start_center", 3000);\r
+               if (e instanceof NullPointerException)\r
+                       Clients.showNotification("Database query error!", "error", search, "start_center", 3000);\r
+               else\r
+                       Clients.showNotification(e.getMessage(), "error", search, "start_center", 3000);\r
                logger.error(e);\r
        }\r
 \r
index aaaffac8600f8e1252e52865a5922409ef2e4211..88754909b6812fa54fba9133eebc65d2384a88bf 100644 (file)
@@ -159,14 +159,17 @@ public class TSMBufferedClient extends TSMClient {
                        object.bytesWorked(byteCount);\r
 \r
                } catch (Exception e) {\r
-                       logger.error("Catched error in send. System messahe is: {}", e.getMessage());\r
-                       vote(TSMAPIConstants.DSM_VOTE_ABORT);\r
+                       logger.error("Catched error in send. System message is: {}", e.getMessage());\r
+                       try {\r
+                               vote(TSMAPIConstants.DSM_VOTE_ABORT);\r
+                       } catch (Exception e2) {\r
+                       }\r
                        throw e;\r
                }\r
        }\r
 \r
        private short vote(byte vote) throws TSMException {\r
-               logger.info("Vote");\r
+               logger.info("Vote {}", vote);\r
 \r
                short result = TSMAPIConstants.DSM_RC_OK;\r
                DsmEndTxnExIn endTxnExIn = new DsmEndTxnExIn();\r
@@ -179,15 +182,15 @@ public class TSMBufferedClient extends TSMClient {
                        logger.catching(e);\r
                }\r
 \r
-               //              if (result == TSMAPIConstants.DSM_RC_CHECK_REASON_CODE) {\r
-               //                      logger.error("dsmEndTxnEx error, reason code {}", endTxnExOut.getReason());\r
-               //              } else {\r
-               //                      if (result != TSMAPIConstants.DSM_RC_OK)\r
-               //                              throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
-               //              }\r
-\r
-               if (result != TSMAPIConstants.DSM_RC_OK)\r
-                       throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
+               if (vote != TSMAPIConstants.DSM_VOTE_ABORT) {\r
+                       if (result == TSMAPIConstants.DSM_RC_CHECK_REASON_CODE)\r
+                               logger.warn("DSM_VOTE_ABORT warning, reason code {}", endTxnExOut.getReason());\r
+               } else {\r
+                       if (result != TSMAPIConstants.DSM_RC_OK) {\r
+                               logger.warn("DSM_VOTE_COMMIT error");\r
+                               throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
+                       }\r
+               }\r
 \r
                logger.info("Vote completed");\r
                return result;\r