<?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
</Appenders>\r
<Loggers>\r
<Root level="INFO">\r
+ <AppenderRef ref="MediaProfile" />\r
<AppenderRef ref="Console" />\r
<AppenderRef ref="MarkeredConsole" />\r
<!-- <AppenderRef ref="RollingFile" /> -->\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 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/bin" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -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 -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/ -Djobengine.transcoder.template=MP4 -Djobengine.transcoder.version=1 -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.mediafinder.external=false -Djobengine.mediacube.service.proxyroot="/opt" -Djobengine.randomize.archives=true -Djobengine.jobsteps.config="${workspace_loc}/user.jobengine.executors/config/config.xml" -Djobengine.jobsteps.groovy.root="${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps" -Dmediacube.simplesearch=true"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/bin" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates/mediavivantis" -Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -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 -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.11.1.90:50000/mc -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/ -Djobengine.transcoder.template=MP4 -Djobengine.transcoder.version=1 -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.mediafinder.external=false -Djobengine.mediacube.service.proxyroot="/opt" -Djobengine.randomize.archives=true -Djobengine.jobsteps.config="${workspace_loc}/user.jobengine.executors/config/config-mv.xml" -Djobengine.jobsteps.groovy.root="${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps" -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
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/bin" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.212.42:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=blobtest -Djobengine.db.password=blobtest -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djetty.home="${workspace_loc:}/-configuration/jetty" -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 -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/ -Djobengine.transcoder.template=MP4 -Djobengine.transcoder.version=1 -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Dgui.maestro.disable=true -Djobengine.mediafinder.external=false -Djobengine.mediacube.service.proxyroot="/opt" -Djobengine.scheduledexecution.disabled=false -Djobengine.randomize.archives=false -Djobengine.jobsteps.config="${workspace_loc}/user.jobengine.executors/config/config.xml" -Djobengine.jobsteps.groovy.root="${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps" -Dgui.jobs.alternate.selector=true -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
--- /dev/null
+<?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 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/bin" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.212.42:50000/mc -Djobengine.db.user=blobtest -Djobengine.db.password=blobtest -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djetty.home="${workspace_loc:}/-configuration/jetty" -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 -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/ -Djobengine.transcoder.template=MP4 -Djobengine.transcoder.version=1 -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Dgui.maestro.disable=true -Djobengine.mediafinder.external=false -Djobengine.mediacube.service.proxyroot="/opt" -Djobengine.scheduledexecution.disabled=false -Djobengine.randomize.archives=false -Djobengine.jobsteps.config="${workspace_loc}/user.jobengine.executors/config/config.xml" -Djobengine.jobsteps.groovy.root="${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps" -Dgui.jobs.alternate.selector=true -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
"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
<?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
<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
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
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
\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
\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
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
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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+<?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
--- /dev/null
+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
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
\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
\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
// 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
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",
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
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
}\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
private DB db;\r
\r
public OctopusAPI() throws SQLException {\r
- db = NoSQLUtils.getNoSQLDB();\r
+\r
}\r
\r
private void addReferences(List<DBObject> result) {\r
}\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
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
@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
@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
\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
@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
@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
\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
@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
// 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
@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
@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
@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
//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
@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
@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
\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
\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
@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
@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
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
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
@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
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()));
}
}
}
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)) {
}
- @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))
result.addEventListener(statusListener);
submit(result);
} else {
- logger.error("Unknown template: " + template);
+ logger.error("Unknown template {}", template);
+ throw new JobEngineException("Unknown template " + template);
}
return result;
}
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;
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;
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",
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
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
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
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
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
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
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
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
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
}\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
<!-- <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
}\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
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
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