git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Fri, 5 Feb 2021 12:22:45 +0000 (12:22 +0000)
committervasary.daniel <TFS\vasary.daniel>
Fri, 5 Feb 2021 12:22:45 +0000 (12:22 +0000)
59 files changed:
server/-configuration/build-mediacube-plugins.launch [new file with mode: 0644]
server/-configuration/run-mediacube-server-hirtv.launch
server/-configuration/run-mediacube-server-mv.launch
server/-configuration/run-mediacube-server-test.launch
server/-configuration/run-mediacube-server-user.launch
server/-configuration/run-mediacube-server.launch
server/-dependencies/jobengine.target
server/-dependencies/libs/org.apache.felix.gogo.command_0.10.0.v201209301215.jar [new file with mode: 0644]
server/-dependencies/libs/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar [new file with mode: 0644]
server/-dependencies/pom.xml
server/-modules/plugins/pom.xml [new file with mode: 0644]
server/-modules/pom.xml
server/-product/mediacube.product
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java
server/user.commons.log4j2/pom.xml
server/user.jobengine.executors/amc/user/jobengine/server/steps/ForkDownloadStep.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/PASAPOOLTransferToStep.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/ReportServerStatusStep.java [new file with mode: 0644]
server/user.jobengine.executors/amc/user/jobengine/server/steps/TransferStep.java
server/user.jobengine.executors/config/config-mv.xml
server/user.jobengine.executors/src/user/jobengine/server/steps/CancelableStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CleanupMountedLocationStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.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/pom.xml
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InfoKind.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformParser.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformResult.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/LibMediaInfo.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaArea.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaInfo.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaMetadata.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/Status.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/StreamKind.java [new file with mode: 0644]
server/user.jobengine.osgi.commons/src/user/commons/strings/FileSizeUtils.java [new file with mode: 0644]
server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_demo_nyers.sql [deleted file]
server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_muszter_demo.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/migrations/scripts/029_alter_PASA_storeuri_to_FTP.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/migrations/scripts/030_insert_itemtype_musor_clean.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/pom.xml
server/user.jobengine.osgi.server/pom.xml
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/IJobStep.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/JobStep.java
server/user.jobengine.osgi.server/test/log4j2-test.xml [new file with mode: 0644]
server/user.jobengine.osgi.server/test/user/jobengine/server/JobStepExecutorTest.java
server/user.jobengine.osgi.server/test/user/jobengine/server/JobStepExecutorTest1.java [new file with mode: 0644]
server/user.jobengine.osgi.services/pom.xml
server/user.mediacube.gui/pages/joblist.zul
server/user.mediacube.gui/pom.xml
server/user.mediacube.gui/resources/i3-label_hu.properties
server/user.mediacube.gui/src/user/jobengine/zk/model/FileSizeConverter.java
server/user.mediacube.gui/src/user/jobengine/zk/model/JobListModel.java
server/user.mediacube.metadata/pom.xml
server/user.tsm.client/pom.xml

diff --git a/server/-configuration/build-mediacube-plugins.launch b/server/-configuration/build-mediacube-plugins.launch
new file mode 100644 (file)
index 0000000..544a767
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">\r
+<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>\r
+<stringAttribute key="M2_GOALS" value="clean install"/>\r
+<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>\r
+<booleanAttribute key="M2_OFFLINE" value="false"/>\r
+<stringAttribute key="M2_PROFILES" value=""/>\r
+<listAttribute key="M2_PROPERTIES"/>\r
+<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>\r
+<booleanAttribute key="M2_SKIP_TESTS" value="false"/>\r
+<intAttribute key="M2_THREADS" value="1"/>\r
+<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
+<stringAttribute key="M2_USER_SETTINGS" value=""/>\r
+<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>\r
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">\r
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>\r
+</listAttribute>\r
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/-modules/plugins}"/>\r
+</launchConfiguration>\r
index 689f6fb2acd383bff6ab191b589d7e4825165dab..f92465a36a48cebced80a7d2cc18ce4bba67979d 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;&#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.jobsteps.config=&quot;${workspace_loc}/user.jobengine.executors/config/config.xml&quot;&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.10.1.27: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.10.1.27: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.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;-Dnexio.host=10.10.1.55&#13;&#10;-Djobengine.nexio.name=testnexioclips&#13;&#10;-Dnexio.useMOSGateway=true&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=rundowns&#13;&#10;-Djobengine.octopus.storyfolders.name=storyfolders&#13;&#10;-Djobengine.octopus.stories.name=stories&#13;&#10;-Dmediacube.auth.location=&quot;${workspace_loc}/-configuration/mediacube-auth.properties&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Djobengine.mediacube.service.proxyroot=&quot;/opt&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;${workspace_loc}/user.jobengine.executors/src/user/jobengine/server/steps&quot;&#13;&#10;-Djobengine.randomize.archives=false&#13;&#10;-Dmediacube.simplesearch=false"/>\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,junit@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.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.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="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,com.sun.jna@default:default,groovy@default:default,io.humble.video-arch-x86_64-pc-linux-gnu6@default:default,io.humble.video-arch-x86_64-w64-mingw32@default:default,io.humble.video-noarch@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,junit@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.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.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
index 68ece584b91b8e890cfad0b65ce2bd58f52cba7e..c56d7cffdcc194284b80f8cd6a4bcf0052811c66 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/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,junit@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.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.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="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,com.sun.jna@default:default,groovy@default:default,io.humble.video-arch-x86_64-pc-linux-gnu6@default:default,io.humble.video-arch-x86_64-w64-mingw32@default:default,io.humble.video-noarch@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,junit@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.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.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
index a17e092cae649ee88bff768484e5685abbe8996f..ed4ce4212d7381b16d41859e0bbb90cf782c9435 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.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.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;-Dmediacube.simplesearch=true&#13;&#10;&#13;&#10;-Djobengine.jobscheduling.config=&quot;/opt/steps/scheduledjobs.json&quot;&#13;&#10;-Djobengine.jobsteps.config=&quot;/opt/steps/executors.xml&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;/opt/steps/jobtemplates&quot;&#13;&#10;-Djobengine.jobsteps.groovy.root=&quot;/opt/steps&quot;"/>\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,junit@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.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.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="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,com.sun.jna@default:default,groovy@default:default,io.humble.video-arch-x86_64-pc-linux-gnu6@default:default,io.humble.video-arch-x86_64-w64-mingw32@default:default,io.humble.video-noarch@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,junit@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.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.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
index 3f71cb6eae48f4b1125bba8e613ebb3410d274d2..4b40742da02a9f87d66ab5408d0dbd617a938c77 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&#13;&#10;-Djobengine.db.user=blobtest&#13;&#10;-Djobengine.db.password=blobtest&#13;&#10;-Djobengine.db.loginTimeout=3&#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.212.42:50000/mccache&#13;&#10;-Djobengine.nosql.db.user=blobtest&#13;&#10;-Djobengine.nosql.db.password=blobtest&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.nosql.db.loginTimeout=3&#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,junit@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.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.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="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,com.sun.jna@default:default,groovy@default:default,io.humble.video-arch-x86_64-pc-linux-gnu6@default:default,io.humble.video-arch-x86_64-w64-mingw32@default:default,io.humble.video-noarch@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,junit@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.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.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
index f5ff4bb21d8014c857dd5c710000cb7a5ee37696..eee244c32dd92f59727cd6c6e20077bd2b4f70ef 100644 (file)
@@ -21,7 +21,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/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty&#13;&#10;-Djava.io.tmpdir=c:\temp\jetty&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.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.10.1.45;databaseName=PA_Echo;&#13;&#10;-Djobengine.planair.db.user=MAM&#13;&#10;-Djobengine.planair.db.password=Echotv.hu&#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;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.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.mediafinder.external=false&#13;&#10;-Djobengine.mediafinder.external.url=localhost&#13;&#10;-Dmediacube.auth.location=&quot;${workspace_loc}/-configuration/mediacube-auth.properties&quot;"/>\r
 <stringAttribute key="pde.version" value="3.3"/>\r
 <booleanAttribute key="show_selected_only" value="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.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,junit@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.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.client@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.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<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.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.jna@default:default,io.humble.video-arch-x86_64-pc-linux-gnu6@default:default,io.humble.video-arch-x86_64-w64-mingw32@default:default,io.humble.video-noarch@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,junit@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.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.client@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.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
 <booleanAttribute key="tracing" value="false"/>\r
 <booleanAttribute key="useCustomFeatures" value="false"/>\r
 <booleanAttribute key="useDefaultConfigArea" value="true"/>\r
index 62660c2016164b2762e059b59918fb26b69043e8..ba125a6952a9e716836e653e1d4e54b834420d16 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?pde version="3.8"?><target name="JobEngine" sequenceNumber="442">\r
+<?pde version="3.8"?><target name="JobEngine" sequenceNumber="466">\r
 <locations>\r
 <location path="${workspace_loc}/-dependencies/target/repository/plugins" type="Directory"/>\r
 </locations>\r
 <plugin id="com.ibm.db2.jcc"/>\r
 <plugin id="com.ibm.nosql"/>\r
 <plugin id="com.microsoft.sqlserver.sqljdbc"/>\r
+<plugin id="com.sun.jna"/>\r
 <plugin id="groovy"/>\r
-<plugin id="humble.video.linux"/>\r
-<plugin id="humble.video.noarch"/>\r
-<plugin id="humble.video.windows"/>\r
+<plugin id="io.humble.video-arch-x86_64-pc-linux-gnu6"/>\r
+<plugin id="io.humble.video-arch-x86_64-w64-mingw32"/>\r
+<plugin id="io.humble.video-noarch"/>\r
 <plugin id="javax.annotation-api"/>\r
 <plugin id="javax.mail"/>\r
 <plugin id="javax.servlet-api"/>\r
 <plugin id="org.apache.commons.io" version="2.2.0"/>\r
 <plugin id="org.apache.commons.lang"/>\r
 <plugin id="org.apache.commons.net"/>\r
+<plugin id="org.apache.felix.fileinstall"/>\r
+<plugin id="org.apache.felix.fileinstall.source"/>\r
 <plugin id="org.apache.felix.gogo.command"/>\r
-<plugin id="org.apache.felix.gogo.runtime" version="0.10.0"/>\r
-<plugin id="org.apache.felix.gogo.shell" version="0.10.0"/>\r
+<plugin id="org.apache.felix.gogo.runtime" version="0.10.0.v201209301036"/>\r
+<plugin id="org.apache.felix.gogo.shell" version="0.10.0.v201212101605"/>\r
 <plugin id="org.apache.httpcomponents.httpclient"/>\r
 <plugin id="org.apache.httpcomponents.httpcore"/>\r
 <plugin id="org.apache.logging.log4j.api"/>\r
@@ -47,6 +50,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.launcher"/>\r
 <plugin id="org.eclipse.equinox.util"/>\r
 <plugin id="org.eclipse.jetty.annotations"/>\r
 <plugin id="org.eclipse.jetty.client"/>\r
diff --git a/server/-dependencies/libs/org.apache.felix.gogo.command_0.10.0.v201209301215.jar b/server/-dependencies/libs/org.apache.felix.gogo.command_0.10.0.v201209301215.jar
new file mode 100644 (file)
index 0000000..6c7c9d7
Binary files /dev/null and b/server/-dependencies/libs/org.apache.felix.gogo.command_0.10.0.v201209301215.jar differ
diff --git a/server/-dependencies/libs/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar b/server/-dependencies/libs/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
new file mode 100644 (file)
index 0000000..2aabbf4
Binary files /dev/null and b/server/-dependencies/libs/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar differ
index c3263272ccf1e2fbbbca7700bb1d9e65cbbe793c..c1e79f10b6525a83312c1f2225d56c7041f7b3cc 100644 (file)
                                                        <goal>install-file</goal>\r
                                                </goals>\r
                                                <configuration>\r
-                                                       <file>libs/humble-video-arch-x86_64-pc-linux-gnu6-0.2.1.jar</file>\r
-                                                       <groupId>humble.video</groupId>\r
-                                                       <artifactId>linux</artifactId>\r
-                                                       <version>0.2.1</version>\r
+                                                       <file>libs/sqljdbc42.jar</file>\r
+                                                       <groupId>com.microsoft.sqlserver</groupId>\r
+                                                       <artifactId>sqljdbc</artifactId>\r
+                                                       <version>6.0.8112-100</version>\r
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
                                                        <goal>install-file</goal>\r
                                                </goals>\r
                                                <configuration>\r
-                                                       <file>libs/humble-video-arch-x86_64-w64-mingw32-0.2.1.jar</file>\r
-                                                       <groupId>humble.video</groupId>\r
-                                                       <artifactId>windows</artifactId>\r
-                                                       <version>0.2.1</version>\r
+                                                       <file>libs/org.apache.felix.gogo.command_0.10.0.v201209301215.jar</file>\r
+                                                       <groupId>org.apache.felix</groupId>\r
+                                                       <artifactId>org.apache.felix.gogo.command</artifactId>\r
+                                                       <version>0.10.0.v201209301215</version>\r
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
                                                        <goal>install-file</goal>\r
                                                </goals>\r
                                                <configuration>\r
-                                                       <file>libs/humble-video-noarch-0.2.1.jar</file>\r
-                                                       <groupId>humble.video</groupId>\r
-                                                       <artifactId>noarch</artifactId>\r
-                                                       <version>0.2.1</version>\r
-                                                       <packaging>jar</packaging>\r
-                                               </configuration>\r
-                                       </execution>\r
-                                       <execution>\r
-                                               <id>install5</id>\r
-                                               <phase>package</phase>\r
-                                               <goals>\r
-                                                       <goal>install-file</goal>\r
-                                               </goals>\r
-                                               <configuration>\r
-                                                       <file>libs/sqljdbc42.jar</file>\r
-                                                       <groupId>com.microsoft.sqlserver</groupId>\r
-                                                       <artifactId>sqljdbc</artifactId>\r
-                                                       <version>6.0.8112-100</version>\r
+                                                       <file>libs/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar</file>\r
+                                                       <groupId>org.eclipse.platform</groupId>\r
+                                                       <artifactId>org.eclipse.equinox.launcher</artifactId>\r
+                                                       <version>1.3.200.v20160318-1642</version>\r
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
                                                <id>default-cli</id>\r
                                                <configuration>\r
                                                        <artifacts>\r
+                                                               <artifact>\r
+                                                                       <id>org.eclipse.platform:org.eclipse.equinox.launcher:1.3.200.v20160318-1642</id>\r
+                                                               </artifact>\r
+                                                               <artifact>\r
+                                                                       <id>org.apache.felix:org.apache.felix.fileinstall:3.6.8</id>\r
+                                                                       <source>true</source>\r
+                                                               </artifact>\r
+                                                               <artifact>\r
+                                                                       <id>net.java.dev.jna:jna:4.2.0</id>\r
+                                                               </artifact>\r
+                                                               <artifact>\r
+                                                                       <id>io.humble:humble-video-all:0.2.1</id>\r
+                                                               </artifact>\r
+                                                               <artifact>\r
+                                                                       <id>io.humble:humble-video-arch-x86_64-pc-linux-gnu6:0.2.1</id>\r
+                                                               </artifact>\r
+                                                               <artifact>\r
+                                                                       <id>io.humble:humble-video-arch-x86_64-w64-mingw32:0.2.1</id>\r
+                                                               </artifact>\r
                                                                <artifact>\r
                                                                        <id>org.ow2.asm:asm:5.0.1</id>\r
                                                                </artifact>\r
                                                                        <id>org.apache.felix:org.apache.felix.gogo.shell:0.10.0</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
-                                                                       <id>org.apache.felix:org.apache.felix.gogo.command:0.10.0</id>\r
+                                                                       <id>org.apache.felix:org.apache.felix.gogo.runtime:0.10.0</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
-                                                                       <id>org.apache.felix:org.apache.felix.gogo.runtime:0.10.0</id>\r
+                                                                       <id>org.apache.felix:org.apache.felix.gogo.command:0.10.0.v201209301215</id>\r
                                                                </artifact>\r
+                                                               \r
                                                                <artifact>\r
                                                                        <id>commons-io:commons-io:2.2</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
                                                                        <id>org.mybatis:mybatis:3.5.2</id>\r
                                                                </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>humble.video:linux:0.2.1</id>\r
-                                                               </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>humble.video:windows:0.2.1</id>\r
-                                                               </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>humble.video:noarch:0.2.1</id>\r
-                                                               </artifact>\r
                                                                <artifact>\r
                                                                        <id>com.fasterxml.jackson.core:jackson-core:${fasterxml-jackson-core}</id>\r
                                                                </artifact>\r
diff --git a/server/-modules/plugins/pom.xml b/server/-modules/plugins/pom.xml
new file mode 100644 (file)
index 0000000..30cf7f0
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
+       <modelVersion>4.0.0</modelVersion>\r
+       <groupId>user.jobengine</groupId>\r
+       <artifactId>MediaCube-plugins</artifactId>\r
+       <version>1.0.0</version>\r
+       <packaging>pom</packaging>\r
+       <modules>\r
+               <module>../../user.mediacube.gui</module>\r
+               <module>../../user.mediacube.metadata</module>\r
+               <module>../../user.jobengine.osgi.commons</module>\r
+               <module>../../user.jobengine.osgi.db</module>\r
+               <module>../../user.jobengine.osgi.server</module>\r
+               <module>../../user.jobengine.osgi.services</module>\r
+               <module>../../user.commons.log4j2</module>\r
+               <module>../../user.commons.zk</module>\r
+               <module>../../user.tsm.client</module>\r
+       </modules>\r
+\r
+       <properties>\r
+               <project.version>1.0.0</project.version>\r
+               <tycho.version>1.0.0</tycho.version>\r
+               <maven.compiler.source>1.8</maven.compiler.source>\r
+               <maven.compiler.target>1.8</maven.compiler.target>\r
+               <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\r
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
+       </properties>\r
+\r
+       <repositories>\r
+               <repository>\r
+                       <id>dependencies</id>\r
+                       <layout>p2</layout>\r
+                       <url>file:${project.basedir}/../-dependencies/target/repository/</url>\r
+               </repository>\r
+       </repositories>\r
+\r
+       <build>\r
+               <plugins>\r
+                       <plugin>\r
+                               <groupId>org.eclipse.tycho</groupId>\r
+                               <artifactId>tycho-packaging-plugin</artifactId>\r
+                               <version>${tycho.version}</version>\r
+                               <configuration>\r
+                                       <finalName>${project.artifactId}_${project.version}</finalName>\r
+                               </configuration>\r
+                       </plugin>\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-deploy-plugin</artifactId>\r
+                               <version>2.8.2</version>\r
+                               <configuration>\r
+                                       <skip>true</skip>\r
+                               </configuration>\r
+                       </plugin>\r
+                       <plugin>\r
+                               <groupId>org.eclipse.tycho</groupId>\r
+                               <artifactId>tycho-maven-plugin</artifactId>\r
+                               <version>${tycho.version}</version>\r
+                               <extensions>true</extensions>\r
+                       </plugin>\r
+               </plugins>\r
+               <pluginManagement>\r
+                       <plugins>\r
+                               <plugin>\r
+                                       <groupId>org.eclipse.tycho</groupId>\r
+                                       <artifactId>target-platform-configuration</artifactId>\r
+                                       <version>${tycho.version}</version>\r
+                               </plugin>\r
+                               <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->\r
+                               <plugin>\r
+                                       <groupId>org.eclipse.m2e</groupId>\r
+                                       <artifactId>lifecycle-mapping</artifactId>\r
+                                       <version>1.0.0</version>\r
+                                       <configuration>\r
+                                               <lifecycleMappingMetadata>\r
+                                                       <pluginExecutions>\r
+                                                               <pluginExecution>\r
+                                                                       <pluginExecutionFilter>\r
+                                                                               <groupId>\r
+                                                                                       org.eclipse.tycho\r
+                                                                               </groupId>\r
+                                                                               <artifactId>\r
+                                                                                       tycho-packaging-plugin\r
+                                                                               </artifactId>\r
+                                                                               <versionRange>\r
+                                                                                       [1.0.0,)\r
+                                                                               </versionRange>\r
+                                                                               <goals>\r
+                                                                                       <goal>validate-id</goal>\r
+                                                                                       <goal>\r
+                                                                                               validate-version\r
+                                                                                       </goal>\r
+                                                                                       <goal>build-qualifier</goal>\r
+                                                                                       <goal>\r
+                                                                                               build-qualifier-aggregator\r
+                                                                                       </goal>\r
+                                                                               </goals>\r
+                                                                       </pluginExecutionFilter>\r
+                                                                       <action>\r
+                                                                               <ignore></ignore>\r
+                                                                       </action>\r
+                                                               </pluginExecution>\r
+                                                               <pluginExecution>\r
+                                                                       <pluginExecutionFilter>\r
+                                                                               <groupId>\r
+                                                                                       org.apache.maven.plugins\r
+                                                                               </groupId>\r
+                                                                               <artifactId>\r
+                                                                                       maven-clean-plugin\r
+                                                                               </artifactId>\r
+                                                                               <versionRange>\r
+                                                                                       [2.5,)\r
+                                                                               </versionRange>\r
+                                                                               <goals>\r
+                                                                                       <goal>clean</goal>\r
+                                                                               </goals>\r
+                                                                       </pluginExecutionFilter>\r
+                                                                       <action>\r
+                                                                               <ignore></ignore>\r
+                                                                       </action>\r
+                                                               </pluginExecution>\r
+                                                       </pluginExecutions>\r
+                                               </lifecycleMappingMetadata>\r
+                                       </configuration>\r
+                               </plugin>\r
+                       </plugins>\r
+               </pluginManagement>\r
+       </build>\r
+</project>\r
index 668b8789e213ca9ab1eb765be8c4e2e9b4581fd1..6fe687f7aa9f7fdd2edd22f05e5f063926b2b422 100644 (file)
@@ -35,7 +35,6 @@
                <repository>\r
                        <id>eclipse-neon</id>\r
                        <url>http://download.eclipse.org/releases/neon</url>\r
-                       <!-- <url>http://download.eclipse.org/eclipse/updates/4.6/</url> -->\r
                        <layout>p2</layout>\r
                </repository>\r
 \r
index 3f116596f99a07dd12e5d3d8cea88ade0b531ab4..314bd6eb4f44efe447eb98c20527b2ab73c8597e 100644 (file)
       <plugin id="com.ibm.db2.jcc"/>\r
       <plugin id="com.ibm.nosql"/>\r
       <plugin id="com.microsoft.sqlserver.sqljdbc"/>\r
+      <plugin id="com.sun.jna"/>\r
       <plugin id="groovy"/>\r
-      <plugin id="humble.video.linux"/>\r
-      <plugin id="humble.video.noarch"/>\r
-      <plugin id="humble.video.windows"/>\r
+      <plugin id="io.humble.video-arch-x86_64-pc-linux-gnu6"/>\r
+      <plugin id="io.humble.video-arch-x86_64-w64-mingw32"/>\r
+      <plugin id="io.humble.video-noarch"/>\r
       <plugin id="javax.annotation-api"/>\r
       <plugin id="javax.mail"/>\r
       <plugin id="javax.servlet-api"/>\r
       <plugin id="org.apache.commons.io"/>\r
       <plugin id="org.apache.commons.lang"/>\r
       <plugin id="org.apache.commons.net"/>\r
-      <plugin id="org.apache.felix.gogo.command"/>\r
-      <plugin id="org.apache.felix.gogo.runtime"/>\r
-      <plugin id="org.apache.felix.gogo.shell"/>\r
+      <plugin id="org.apache.felix.fileinstall"/>\r
+      <plugin id="org.apache.felix.fileinstall.source"/>\r
+      <plugin id="org.apache.felix.gogo.command" version="0.10.0.v201209301215"/>\r
+      <plugin id="org.apache.felix.gogo.runtime" version="0.10.0.v201209301036"/>\r
+      <plugin id="org.apache.felix.gogo.shell" version="0.10.0.v201212101605"/>\r
       <plugin id="org.apache.httpcomponents.httpclient"/>\r
       <plugin id="org.apache.httpcomponents.httpcore"/>\r
       <plugin id="org.apache.logging.log4j.api"/>\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.launcher"/>\r
+      <plugin id="org.eclipse.equinox.launcher.source"/>\r
       <plugin id="org.eclipse.equinox.util"/>\r
       <plugin id="org.eclipse.jetty.client"/>\r
       <plugin id="org.eclipse.jetty.deploy"/>\r
       <plugin id="org.eclipse.jetty.websocket.servlet"/>\r
       <plugin id="org.eclipse.jetty.xml"/>\r
       <plugin id="org.eclipse.osgi"/>\r
-      <plugin id="org.eclipse.osgi.services"/>\r
+      <plugin id="org.eclipse.osgi.services" version="3.2.100.v20100503"/>\r
       <plugin id="org.hamcrest.core"/>\r
       <plugin id="org.jboss.resteasy.client"/>\r
       <plugin id="org.jboss.resteasy.jaxb-provider"/>\r
index f6f0feb41934ede12ff718d4aef36acd2f7606a6..cccf6a206c8f825129a78160fb99be45923ef206 100644 (file)
@@ -6,6 +6,9 @@ import static org.junit.Assert.assertTrue;
 \r
 import java.io.File;\r
 import java.io.IOException;\r
+import java.lang.management.ManagementFactory;\r
+import java.lang.management.ThreadInfo;\r
+import java.lang.management.ThreadMXBean;\r
 import java.lang.reflect.Method;\r
 import java.nio.file.DirectoryStream;\r
 import java.nio.file.FileStore;\r
@@ -14,6 +17,7 @@ import java.nio.file.Path;
 import java.nio.file.Paths;\r
 import java.sql.Timestamp;\r
 import java.text.DecimalFormat;\r
+import java.text.Normalizer;\r
 import java.text.NumberFormat;\r
 import java.text.SimpleDateFormat;\r
 import java.time.Duration;\r
@@ -36,6 +40,7 @@ import java.util.Map;
 import java.util.Set;\r
 import java.util.TreeMap;\r
 import java.util.TreeSet;\r
+import java.util.regex.Pattern;\r
 \r
 import org.apache.commons.io.FileUtils;\r
 import org.apache.commons.io.FilenameUtils;\r
@@ -49,6 +54,7 @@ import com.ibm.nosql.json.api.BasicDBObject;
 import groovy.lang.GroovyClassLoader;\r
 import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
+import user.commons.mediaarea.StreamKind;\r
 import user.commons.mediatool.Timecode;\r
 import user.commons.mediatool.Timecode.Type;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
@@ -70,6 +76,8 @@ public class SmallTests {
        class PojoRoot {\r
        }\r
 \r
+       private static final String DOT = ".";\r
+\r
        public static String readableFileSize(long size) {\r
                if (size <= 0)\r
                        return "0";\r
@@ -268,7 +276,7 @@ public class SmallTests {
                        System.out.println(value);\r
                }\r
                String name = "valammi.mxf";\r
-               System.out.println(name.substring(0, name.lastIndexOf(".")));\r
+               System.out.println(name.substring(0, name.lastIndexOf(DOT)));\r
 \r
                boolean create = false;\r
                create |= false;\r
@@ -568,7 +576,7 @@ public class SmallTests {
                System.out.println("Start");\r
                for (String fileName : missing) {\r
                        String onlyId = fileName.trim();\r
-                       onlyId = onlyId.substring(0, onlyId.lastIndexOf("."));\r
+                       onlyId = onlyId.substring(0, onlyId.lastIndexOf(DOT));\r
 \r
                        boolean tsmContains = tsm.contains(fileName);\r
 \r
@@ -642,7 +650,7 @@ public class SmallTests {
                        omCount++;\r
 \r
                        String fileName = omFilePath.trim().substring(omFilePath.lastIndexOf("/") + 1);\r
-                       String fileId = fileName.substring(0, fileName.lastIndexOf("."));\r
+                       String fileId = fileName.substring(0, fileName.lastIndexOf(DOT));\r
 \r
                        boolean excludeContains = exclude.contains(fileId);\r
                        if (excludeContains) {\r
@@ -903,8 +911,8 @@ public class SmallTests {
                        String[] tokens = t.split("\t");\r
 \r
                        String id = tokens[0].replace(".part", "");\r
-                       if (id.contains("."))\r
-                               id = id.substring(0, id.lastIndexOf("."));\r
+                       if (id.contains(DOT))\r
+                               id = id.substring(0, id.lastIndexOf(DOT));\r
                        if (tsmmap.containsKey(id)) {\r
                                String tsmtime = tsmmap.get(id);\r
                                if (tsmtime.compareTo(tokens[1]) > 0) {\r
@@ -1138,4 +1146,72 @@ public class SmallTests {
 \r
                System.out.println(FileUtils.byteCountToDisplaySize(size / diff) + "/sec");\r
        }\r
-}
\ No newline at end of file
+\r
+       @Test\r
+       public void test99995() throws Exception {\r
+               Pattern DIACRITICS_AND_FRIENDS = Pattern.compile("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");\r
+               String name = "kedves_kiskacsa_furdik_a_toban_anyjahoz_keszul_lengyelorszagba.mxf";\r
+               String type = "Muszter DEMO";\r
+               int limit = 20;\r
+               String extension = "";\r
+               if (name.contains(DOT)) {\r
+                       extension = DOT + name.substring(name.lastIndexOf(DOT) + 1);\r
+                       name = name.substring(0, name.lastIndexOf(DOT));\r
+               }\r
+               String typeName = Normalizer.normalize(type, Normalizer.Form.NFD);\r
+               typeName = DIACRITICS_AND_FRIENDS.matcher(typeName).replaceAll("");\r
+               typeName = typeName.replace(" ", "_");\r
+               int allowedSize = limit - typeName.length() - 1 - extension.length();\r
+               if (name.length() > allowedSize)\r
+                       name = name.substring(0, allowedSize);\r
+               String formatatted = String.format("%s_%s%s", name, typeName, extension);\r
+               System.out.println(formatatted + " " + formatatted.length());\r
+       }\r
+\r
+       @Test\r
+       public void test99996() throws Exception {\r
+               System.out.println(System.getProperty("user.home"));\r
+               System.setProperty("java.library.path", "/users/elgekko");\r
+               Path filePath = Paths.get("/opt/AMC/2021/ISSUES/#203/IFL000000071_43.mxf");\r
+               user.commons.mediatool.MediaInfo mi = new user.commons.mediatool.MediaInfo(filePath);\r
+               mi.process();\r
+               System.out.println(String.format("%s %d %s", mi.getCodecProfileName(), mi.getHeight(), mi.getDisplayAspect()));\r
+       }\r
+\r
+       @Test\r
+       public void test99997() throws Exception {\r
+\r
+               System.setProperty("jna.library.path", "/users/elgekko");\r
+               List<String> files = Arrays.asList("c:\\opt\\AMC\\2021\\ISSUES\\#203\\IFL000000071_43.mxf", "c:\\opt\\AMC\\2021\\ISSUES\\#203\\MX_12290041.mxf",\r
+                               "c:\\opt\\AMC\\2021\\ISSUES\\#203\\DK_20344100_02_high_16_9.mxf", "c:\\opt\\AMC\\2021\\ISSUES\\#203\\IPR000011027_169.mxf");\r
+               for (String file : files) {\r
+                       try (user.commons.mediaarea.MediaInfo mi = new user.commons.mediaarea.MediaInfo(file)) {\r
+                               //Display aspect ratio\r
+                               //Format profile\r
+                               //String inform = mi.inform();\r
+                               System.out.println("---------------------------------------");\r
+                               System.out.println(file);\r
+                               System.out.println(mi.get(StreamKind.Video, 0, "Width"));\r
+                               System.out.println(mi.get(StreamKind.Video, 0, "Height"));\r
+                               System.out.println(mi.get(StreamKind.Video, 0, "DisplayAspectRatio/String"));\r
+                               System.out.println(mi.get(StreamKind.Video, 0, "Format_Profile"));\r
+                       } catch (Exception ex) {\r
+                               throw new RuntimeException(ex);\r
+                       }\r
+               }\r
+\r
+       }\r
+\r
+       @Test\r
+       public void test99998() throws Exception {\r
+               ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();\r
+\r
+               for (Long threadID : threadMXBean.getAllThreadIds()) {\r
+                       ThreadInfo info = threadMXBean.getThreadInfo(threadID);\r
+                       System.out.println("Thread name: " + info.getThreadName());\r
+                       System.out.println("Thread State: " + info.getThreadState());\r
+                       long cpuTime = threadMXBean.getThreadCpuTime(threadID);\r
+                       System.out.println(String.format("CPU time: %.2f %%", cpuTime == 0 ? cpuTime : cpuTime * 100 / 1000000000d));\r
+               }\r
+       }\r
+}\r
index daf78393862f2e8466de99bbc657c3cf7de18856..e401fb542f1362f0bc4f0ae0c24abd614e43c87b 100644 (file)
        <artifactId>user.commons.log4j2</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.0.0</version>\r
+       \r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+       \r
 </project>
\ No newline at end of file
index 8b72db9d80667862d00fb198cb46a4353cc2a0f7..cc386f64949a9f44f63a880478e852c38268a88a 100644 (file)
@@ -9,14 +9,12 @@ import java.util.ArrayList;
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
-import java.util.Set;\r
 \r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
 import user.commons.DownloadableMedia;\r
 import user.commons.JobStatus;\r
-import user.commons.MediaCubeMarker;\r
 import user.commons.StoreUri;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.Store;\r
@@ -28,9 +26,6 @@ public class ForkDownloadStep extends JobStep {
 \r
        @StepEntry\r
        public Object[] execute(String tempStoreName, String template, String expectedColorSpace, int limit) throws Exception {\r
-\r
-               sendStatusReport();\r
-               //return null;\r
                DirectoryStream<Path> directoryStream = null;\r
                int count = limit;\r
                int allCount = 0;\r
@@ -164,25 +159,6 @@ public class ForkDownloadStep extends JobStep {
                return true;\r
        }\r
 \r
-       private void sendStatusReport() {\r
-               IJobEngine engine = getEngine();\r
-               int jobCount = 0;\r
-               StringBuilder sb = new StringBuilder();\r
-               Map<Long, IJobRuntime> jobs = engine.getJobs();\r
-               if (jobs != null) {\r
-                       Set<Long> keys = jobs.keySet();\r
-                       jobCount = keys.size();\r
-                       for (Long key : keys) {\r
-                               IJobRuntime runtime = jobs.get(key);\r
-                               if (JobStatus.SUSPENDED.equals(runtime.getStatus()))\r
-                                       sb.append(runtime.getRelated() + " SUSPENDED: " + runtime.getDescription() + "</br>");\r
-                       }\r
-               }\r
-               MediaCubeMarker marker = new MediaCubeMarker();\r
-               marker.setSubject("AMC MediaCube feldolgozási sor  " + jobCount);\r
-               logger.info(marker, sb.toString());\r
-       }\r
-\r
        private boolean targetExists(StoreUri storeUri, String fileName) {\r
                try {\r
                        Path targetFile = Paths.get(storeUri.toString(true), fileName);\r
index 52c90280413178250af2739f6b9c35d301d35ba5..b5106b6efcb4a4e0b729c1da366bc99675584ff9 100644 (file)
@@ -3,7 +3,6 @@ package user.jobengine.server.steps;
 import java.nio.file.Path;\r
 import java.nio.file.Paths;\r
 \r
-import org.apache.commons.io.FileUtils;\r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 import org.apache.logging.log4j.Marker;\r
@@ -11,7 +10,8 @@ import org.apache.logging.log4j.MarkerManager;
 \r
 import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
+import user.commons.strings.FileSizeUtils;\r
 \r
 public class PASAPOOLTransferToStep extends TransferStep {\r
        private static final Logger logger = LogManager.getLogger();\r
@@ -32,11 +32,13 @@ public class PASAPOOLTransferToStep extends TransferStep {
                long start = System.currentTimeMillis();\r
                Object[] result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
                RemoteFile remoteFile = sourceStoreUri.getRemoteFile(targetFileName);\r
-               if (remoteFile != null) {\r
+               if (remoteFile != null && remoteFile.getSize() > 0) {\r
                        long diff = (System.currentTimeMillis() - start) / 1000;\r
-                       long bytesSpeed = remoteFile.getSize() / diff;\r
-                       String speed = FileUtils.byteCountToDisplaySize(bytesSpeed);\r
-                       logger.info(getMarker(), "{} size is {}, upload speed was {}/sec", targetFileName, FileUtils.byteCountToDisplaySize(remoteFile.getSize()), speed);\r
+                       if (diff > 0) {\r
+                               long bytesSpeed = remoteFile.getSize() / diff;\r
+                               String speed = FileSizeUtils.sizeAsString(bytesSpeed);\r
+                               logger.info(getMarker(), "{} size is {}, upload speed was {}/sec", targetFileName, FileSizeUtils.sizeAsString(remoteFile.getSize()), speed);\r
+                       }\r
                }\r
                return result;\r
        }\r
@@ -44,7 +46,7 @@ public class PASAPOOLTransferToStep extends TransferStep {
        //      HD\r
        //      height = 1080\r
        //      >PEABLEBEACH | \\10.170.100.21\media\BeachPool\r
-       private boolean isHD(MediaInfo mi) {\r
+       private boolean isHD(MediaArea mi) {\r
                return mi.getHeight() == 1080;\r
        }\r
 \r
@@ -87,8 +89,9 @@ public class PASAPOOLTransferToStep extends TransferStep {
        //      profile=High\r
        //      aspect=16:9\r
        //      >SELENIOPOOL_16_9 | \\10.170.100.21\media\SelenioPool\16_9\r
-       private boolean isSD_HIGH_16_9(MediaInfo mi) {\r
-               return mi.getHeight() < 650 && CODEC_PROFILE_HIGH.equals(mi.getCodecProfileName()) && DISPLAY_ASPECT_16_9.equals(mi.getDisplayAspect());\r
+       private boolean isSD_HIGH_16_9(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && formatProfileName.contains(CODEC_PROFILE_HIGH) && DISPLAY_ASPECT_16_9.equals(mi.getDisplayAspect());\r
        }\r
 \r
        //      SD - HIGH@HIGH / 4:3\r
@@ -96,29 +99,25 @@ public class PASAPOOLTransferToStep extends TransferStep {
        //      profile=High\r
        //      aspect=4:3\r
        //      >SELENIOPOOL_4_3 | \\10.170.100.21\media\SelenioPool\4_3\r
-       private boolean isSD_HIGH_4_3(MediaInfo mi) {\r
-               String codecProfileName = mi.getCodecProfileName();\r
-               if (codecProfileName != null)\r
-                       codecProfileName = codecProfileName.toUpperCase();\r
-               return mi.getHeight() < 650 && CODEC_PROFILE_HIGH.equals(codecProfileName) && DISPLAY_ASPECT_4_3.equals(mi.getDisplayAspect());\r
+       private boolean isSD_HIGH_4_3(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && formatProfileName.contains(CODEC_PROFILE_HIGH) && DISPLAY_ASPECT_4_3.equals(mi.getDisplayAspect());\r
        }\r
 \r
        //      SD - MAIN/422@HIGH\r
        //      height < 650\r
        //      profile=Main || profile=4:2:2\r
        //      >PEABLEBEACH | \\10.170.100.21\media\BeachPool\r
-       private boolean isSD_MAIN_422(MediaInfo mi) {\r
-               String codecProfileName = mi.getCodecProfileName();\r
-               if (codecProfileName != null)\r
-                       codecProfileName = codecProfileName.toUpperCase();\r
-               return mi.getHeight() < 650 && (CODEC_PROFILE_MAIN.equals(codecProfileName) || CODEC_PROFILE_422.equals(mi.getCodecProfileName()));\r
+       private boolean isSD_MAIN_422(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && (formatProfileName.contains(CODEC_PROFILE_MAIN) || formatProfileName.contains(CODEC_PROFILE_422));\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
+                       MediaArea mi = new MediaArea(filePath);\r
                        mi.process();\r
 \r
                        if (isHD(mi)) {\r
diff --git a/server/user.jobengine.executors/amc/user/jobengine/server/steps/ReportServerStatusStep.java b/server/user.jobengine.executors/amc/user/jobengine/server/steps/ReportServerStatusStep.java
new file mode 100644 (file)
index 0000000..3c0026b
--- /dev/null
@@ -0,0 +1,64 @@
+package user.jobengine.server.steps;\r
+\r
+import java.lang.management.ManagementFactory;\r
+import java.lang.management.ThreadInfo;\r
+import java.lang.management.ThreadMXBean;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Date;\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.JobStatus;\r
+import user.commons.MediaCubeMarker;\r
+import user.commons.strings.FileSizeUtils;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class ReportServerStatusStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+       private static SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd hh:mm");\r
+\r
+       @StepEntry\r
+       public Object[] execute() throws Exception {\r
+               MediaCubeMarker marker = new MediaCubeMarker();\r
+\r
+               int jobCount = 0;\r
+               StringBuilder sb = new StringBuilder("Állapotjelentés:</br>");\r
+               Map<Long, IJobRuntime> jobs = getEngine().getJobs();\r
+               Set<Long> keys = jobs.keySet();\r
+               jobCount = keys.size() - 1;\r
+               marker.setSubject(String.format("%s [%d futó folyamat] AMC MediaCube report", df.format(new Date()), jobCount));\r
+               for (Long key : keys) {\r
+                       IJobRuntime runtime = jobs.get(key);\r
+                       if (JobStatus.SUSPENDED.equals(runtime.getStatus()))\r
+                               sb.append(String.format("Felfüggesztve: %s %s %s %s %s </br>", df.format(runtime.getSubmitted()), df.format(runtime.getFinished()),\r
+                                               runtime.getStatus(), runtime.getRelated(), runtime.getDescription()));\r
+               }\r
+\r
+               // sb.append("</br>");\r
+               //              float cpuTime = getCPUTime();\r
+               //              sb.append(String.format("Processzor használat: %.2f %%</br>", cpuTime == 0 ? cpuTime : cpuTime * 100 / 1000000000d));\r
+               sb.append("</br>");\r
+               sb.append(String.format("Szabad JVM memória: %s</br>", FileSizeUtils.sizeAsString(Runtime.getRuntime().freeMemory())));\r
+               sb.append(String.format("Használt JVM memória: %s</br>",\r
+                               FileSizeUtils.sizeAsString(Runtime.getRuntime().maxMemory() - Runtime.getRuntime().freeMemory())));\r
+               sb.append(String.format("Maximum JVM memória: %s</br>", FileSizeUtils.sizeAsString(Runtime.getRuntime().maxMemory())));\r
+               logger.info(marker, sb.toString());\r
+\r
+               return null;\r
+       }\r
+\r
+       private long getCPUTime() {\r
+               ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();\r
+               long result = 0;\r
+               for (Long threadID : threadMXBean.getAllThreadIds()) {\r
+                       ThreadInfo info = threadMXBean.getThreadInfo(threadID);\r
+                       System.out.println("Thread name: " + info.getThreadName());\r
+                       System.out.println("Thread State: " + info.getThreadState());\r
+                       result += threadMXBean.getThreadCpuTime(threadID);\r
+               }\r
+               return result;\r
+       }\r
+}\r
index 39c338c33e2d8bc3cac1214e0a43c74b56481cc2..d285f70d148bd1d1a896e7557d0758b9ae0bc927 100644 (file)
@@ -3,10 +3,12 @@ package user.jobengine.server.steps;
 import java.nio.file.Path;\r
 import java.nio.file.Paths;\r
 \r
+import org.apache.commons.net.ftp.FTPClient;\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.FtpDirectoryLister;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.Store;\r
 \r
@@ -77,18 +79,46 @@ public class TransferStep extends JobStep {
                String currentTargetFileName = targetFileName;\r
 \r
                boolean renameAfterCopy = false;\r
-               if (getTmpExtension() != null && RemoteStoreProtocol.LOCAL.equals(targetStoreUri.getProtocol())) {\r
-                       currentTargetFileName += getTmpExtension();\r
-                       renameAfterCopy = true;\r
+               boolean renameAfterFTP = false;\r
+               if (getTmpExtension() != null) {\r
+                       if (RemoteStoreProtocol.LOCAL.equals(targetStoreUri.getProtocol())) {\r
+                               currentTargetFileName += getTmpExtension();\r
+                               renameAfterCopy = true;\r
+                       }\r
+                       Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+\r
+                       if (RemoteStoreProtocol.FTP.equals(targetStoreUri.getProtocol()) && !"NEXIO1".equals(targetStore.getName())\r
+                                       && !"NEXIO2".equals(targetStore.getName())) {\r
+                               currentTargetFileName += getTmpExtension();\r
+                               renameAfterFTP = true;\r
+                       }\r
                }\r
 \r
                sourceStoreUri.transferFrom(targetStoreUri, sourceFileName, currentTargetFileName);\r
-               logger.info(getMarker(), "Transfer of {} completed from {} to {}", sourceFileName, sourceStoreUri, targetStoreUri);\r
+\r
+               logger.info(getMarker(), "Transfer of {} completed from {} to {}", sourceFileName, sourceStoreUri, currentTargetFileName);\r
 \r
                if (renameAfterCopy) {\r
                        Path tmpTargetFile = Paths.get(targetStoreUri.toString(true), currentTargetFileName);\r
                        Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
-                       tmpTargetFile.toFile().renameTo(targetFile.toFile());\r
+                       try {\r
+                               logger.info(getMarker(), "Renaming LOCAL file from {} to {} on {}", currentTargetFileName, targetFileName, sourceStoreUri);\r
+                               tmpTargetFile.toFile().renameTo(targetFile.toFile());\r
+                       } catch (Exception e) {\r
+                               logger.error(getMarker(), e.getMessage());\r
+                       }\r
+               }\r
+               if (renameAfterFTP) {\r
+                       try {\r
+                               FtpDirectoryLister lister = (FtpDirectoryLister) targetStoreUri.getLister();\r
+                               FTPClient client = lister.connect();\r
+                               logger.info(getMarker(), "Renaming FTP file from {} to {} on {}", currentTargetFileName, targetFileName, sourceStoreUri);\r
+                               client.rename(currentTargetFileName, targetFileName);\r
+                       } catch (Exception e) {\r
+                               logger.error(getMarker(), e.getMessage());\r
+                       } finally {\r
+                               targetStoreUri.cleanUp();\r
+                       }\r
                }\r
        }\r
 }\r
index e0f67e2ebb5d92aa1129c387d526f9326dd4dccf..18c392dd3b7dccb4701ba8175a99a4caff86c805 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <executors>\r
-       <executor className="CancelableStep.java" maxConcurrent="5" isRemote="true" />\r
-       <executor className="TestForkCancelableStep.java" maxConcurrent="10" isRemote="false" />\r
+       <executor className="CancelableStep.java" maxConcurrent="10" isRemote="true" />\r
+       <executor className="TestForkCancelableStep.java" maxConcurrent="1" isRemote="false" />\r
 </executors>
\ No newline at end of file
index b01bf0a26ad445d1d95e085207bb7f76d29577f6..9979d22ea4098f039c4e87fb4f0a981a6f9acc0f 100644 (file)
@@ -21,17 +21,17 @@ public class CancelableStep extends JobStep {
 \r
                        //                      ftpTest();\r
 \r
-                       if (param == 0)\r
-                               Thread.sleep(5000);\r
-                       if (param == 1)\r
-                               throw new Exception("Error teszt");\r
+                       //                      if (param == 0)\r
+                       //                              Thread.sleep(5000);\r
+                       //                      if (param == 1)\r
+                       //                              throw new Exception("Error teszt");\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
+                               Thread.sleep(200);\r
                                int progress = (i + 1) * 100 / count;\r
                                setProgress(progress);\r
                                logger.info(marker, "{}", i);\r
index 4e6f10d13ded11e555a20ff7080cc0dd5e16cfed..0cd2e36437952401e23deed1cb806813661a1233 100644 (file)
@@ -246,9 +246,11 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
                if (killDate == null)\r
                        return;\r
 \r
-               if (!isArchived(filePath)) {\r
-                       logger.error(marker, "A(z) {} anyag törlésre van kijelölve, de nem található az archívumban.", filePath);\r
-                       return;\r
+               if (filePath.toFile().length() > 0) {\r
+                       if (!isArchived(filePath)) {\r
+                               logger.error(marker, "A(z) {} anyag törlésre van kijelölve, de nem található az archívumban.", filePath);\r
+                               return;\r
+                       }\r
                }\r
 \r
                if (removeFiles(filePath, killDateFiles))\r
index 5b4100550ee4f4a8896aed2991e8011220c1a3ea..6b40e3b74c5ac2130db10e97415223e4ba20665a 100644 (file)
@@ -2,7 +2,9 @@ package user.jobengine.server.steps;
 \r
 import java.io.IOException;\r
 import java.nio.file.Paths;\r
+import java.text.Normalizer;\r
 import java.util.List;\r
+import java.util.regex.Pattern;\r
 \r
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.logging.log4j.LogManager;\r
@@ -28,6 +30,8 @@ import user.jobengine.server.IJobEngine;
 import user.jobengine.server.IJobRuntime;\r
 \r
 public class TSMRestoreStep extends JobStep {\r
+       private static final String DOT = ".";\r
+       public static final Pattern DIACRITICS_AND_FRIENDS = Pattern.compile("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");\r
        private static final Logger logger = LogManager.getLogger();\r
        private IItemManager manager;\r
        private StoreUri targetUri;\r
@@ -60,6 +64,9 @@ public class TSMRestoreStep extends JobStep {
                marker = jobRuntime.getSessionMarker();\r
                setAndCheck(mediaCubeMedia, targetPath, targetNamePattern, localRetrievePath, globalRetrievePath, jobEngine);\r
                String targetFileName = String.format(targetNamePattern, sourceFileName);\r
+               //20210129\r
+               //targetFileName = getMaximizedFileName(mediaCubeMedia, targetFileName, 120);\r
+\r
                Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL);\r
                try {\r
                        String details = String.format("%s (%s)", sourceFileName, timecode.toString());\r
@@ -99,6 +106,24 @@ public class TSMRestoreStep extends JobStep {
                return null;\r
        }\r
 \r
+       private String getMaximizedFileName(Media mediaCubeMedia, String targetFileName, int limit) {\r
+               String name = targetFileName;\r
+               String extension = "";\r
+               if (name.contains(DOT)) {\r
+                       extension = DOT + name.substring(name.lastIndexOf(DOT) + 1);\r
+                       name = name.substring(0, name.lastIndexOf(DOT));\r
+               }\r
+               String typeName = Normalizer.normalize(mediaCubeMedia.getItemType().getName(), Normalizer.Form.NFD);\r
+               typeName = DIACRITICS_AND_FRIENDS.matcher(typeName).replaceAll("");\r
+               typeName = typeName.replace(" ", "_");\r
+\r
+               int allowedSize = limit - typeName.length() - 1 - extension.length();\r
+               if (name.length() > allowedSize)\r
+                       name = name.substring(0, allowedSize);\r
+\r
+               return String.format("%s_%s%s", name, typeName, extension);\r
+       }\r
+\r
        private String getSourceFileName(Media mediaCubeMedia, Store store) {\r
                List<MediaFile> mediaFiles = mediaCubeMedia.getMediaFiles();\r
                if (mediaFiles == null)\r
index e622b54367553332bb6e3a6a88698993c6f274b0..28e66d3f45289d646806977137f0024439f5be5d 100644 (file)
@@ -12,7 +12,7 @@ import user.jobengine.server.IJobRuntime;
 public class TestForkCancelableStep extends JobStep {\r
        private static final String CHILD_TEMPLATE = "cancelable.xml";\r
        private static final Logger logger = LogManager.getLogger();\r
-       int count = 10;\r
+       int count = 5;\r
 \r
        @StepEntry\r
        public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
index 3ef3e4ac0514ad40ce35a33660c494ad6406a472..f59caf2aea18417385402d74701bd81fba1be0fd 100644 (file)
@@ -9,6 +9,7 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
  com.fasterxml.jackson.databind.util;version="2.4.5",
  com.fasterxml.jackson.datatype.joda;version="2.4.5",
  com.fasterxml.jackson.jaxrs.json;version="2.4.5",
+ com.sun.jna,
  io.humble.video,
  io.humble.video.awt,
  junit.framework,
@@ -29,6 +30,7 @@ Export-Package: user.commons,
  user.commons.ftp,
  user.commons.harris,
  user.commons.logging,
+ user.commons.mediaarea,
  user.commons.mediatool,
  user.commons.morpheus,
  user.commons.nexio,
index c02e675fd0b43853352c2de9df95eb6994f603e8..04d98e2d57840598603ee39428f25d32b7f06683 100644 (file)
        <artifactId>user.jobengine.osgi.commons</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.0.0</version>\r
+       \r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+       \r
 </project>
\ No newline at end of file
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InfoKind.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InfoKind.java
new file mode 100644 (file)
index 0000000..f9d8273
--- /dev/null
@@ -0,0 +1,39 @@
+package user.commons.mediaarea;\r
+\r
+/**\r
+ *\r
+ */\r
+public enum InfoKind {\r
+       /**\r
+        * Unique name of parameter.\r
+        */\r
+       Name,\r
+       /**\r
+        * Value of parameter.\r
+        */\r
+       Text,\r
+       /**\r
+        * Unique name of measure unit of parameter.\r
+        */\r
+       Measure, Options,\r
+       /**\r
+        * Translated name of parameter.\r
+        */\r
+       Name_Text,\r
+       /**\r
+        * Translated name of measure unit.\r
+        */\r
+       Measure_Text,\r
+       /**\r
+        * More information about the parameter.\r
+        */\r
+       Info,\r
+       /**\r
+        * How this parameter is supported, could be N (No), B (Beta), R (Read only), W (Read/Write).\r
+        */\r
+       HowTo,\r
+       /**\r
+        * Domain of this piece of information.\r
+        */\r
+       Domain;\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformParser.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformParser.java
new file mode 100644 (file)
index 0000000..725c1ed
--- /dev/null
@@ -0,0 +1,88 @@
+package user.commons.mediaarea;\r
+\r
+import java.io.BufferedReader;\r
+import java.io.IOException;\r
+import java.io.StringReader;\r
+import java.util.LinkedHashMap;\r
+import java.util.Map;\r
+\r
+/**\r
+ * Simple parser to adapt inform response to meta objects. The default MediaInfo inform call returns data in the form<br>\r
+ * \r
+ * <pre>\r
+ * General\r
+Complete name                            : /path/to/input/file.ext\r
+Format                                   : Windows Media\r
+...\r
+\r
+Video\r
+ID                                       : 1\r
+Format                                   : FMT\r
+Codec ID                                 : CODECID\r
+...\r
+\r
+Audio\r
+ID                                       : 2\r
+Format                                   : MP3\r
+...\r
+ * \r
+ * </pre>\r
+ */\r
+public class InformParser {\r
+\r
+       static final String DELIM = ":";\r
+\r
+       static MediaMetadata createMM(String type, BufferedReader r, Map<String, String> pairs) throws IOException {\r
+               pairs.clear();\r
+               String meta;\r
+               while ((meta = r.readLine()) != null && !meta.isEmpty()) {\r
+                       int idx = meta.indexOf(DELIM);\r
+                       if (idx == -1) {\r
+                               throw new IllegalStateException("Parser received unexpected data, should contain ':'. Type=" + type + " line=" + meta);\r
+                       }\r
+                       String key = meta.substring(0, idx).trim();\r
+                       String value = meta.substring(++idx).trim();\r
+                       pairs.put(key, value);\r
+               }\r
+               return new MediaMetadata(type, pairs);\r
+       }\r
+\r
+       public static void main(String[] args) throws Exception {\r
+               if (args.length == 0) {\r
+                       System.out.println("Usage: java -jar .jar [FILE]...");\r
+                       System.exit(1);\r
+               }\r
+               for (String arg : args) {\r
+                       try (MediaInfo mi = new MediaInfo(arg)) {\r
+                               Map<String, MediaMetadata> results = InformParser.parse(mi.inform());\r
+                               System.out.println("Inform " + arg + "\n" + results + "\n");\r
+                       }\r
+               }\r
+\r
+       }\r
+\r
+       /**\r
+        * \r
+        * @param inform\r
+        *            A MediaInfo formatted inform string\r
+        * @return Map containing parsed meta data.\r
+        */\r
+       public static Map<String, MediaMetadata> parse(String inform) {\r
+               LinkedHashMap<String, MediaMetadata> results = new LinkedHashMap<>();\r
+               try {\r
+                       BufferedReader reader = new BufferedReader(new StringReader(inform));\r
+                       String line;\r
+                       Map<String, String> pairs = new LinkedHashMap<>();\r
+                       // first read should always be the type\r
+                       while ((line = reader.readLine()) != null) {\r
+                               if (!line.isEmpty()) {\r
+                                       results.put(line, createMM(line, reader, pairs));\r
+                               }\r
+                       }\r
+               } catch (IOException ex) {\r
+                       // shouldn't happen since we're reading from a String\r
+                       // TODO add logging?\r
+               }\r
+               return results;\r
+       }\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformResult.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/InformResult.java
new file mode 100644 (file)
index 0000000..103b6c9
--- /dev/null
@@ -0,0 +1,56 @@
+package user.commons.mediaarea;\r
+\r
+import java.io.File;\r
+import java.util.LinkedHashMap;\r
+import java.util.Map;\r
+\r
+import javax.xml.bind.JAXBContext;\r
+import javax.xml.bind.JAXBException;\r
+import javax.xml.bind.Marshaller;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+\r
+/**\r
+ * Wrapper to perform JAXB Serialization\r
+ */\r
+@XmlRootElement\r
+public class InformResult {\r
+       @XmlTransient\r
+       private static final JAXBContext CTX;\r
+\r
+       static {\r
+               JAXBContext ctx;\r
+               try {\r
+                       ctx = JAXBContext.newInstance(InformResult.class);\r
+               } catch (JAXBException ex) {\r
+                       // should never happen\r
+                       ctx = null;\r
+               }\r
+               CTX = ctx;\r
+       }\r
+\r
+       public static InformResult getResult(String file) throws JAXBException {\r
+               return (InformResult) CTX.createUnmarshaller().unmarshal(new File(file));\r
+       }\r
+\r
+       public static void saveResult(InformResult ir, String filename) throws JAXBException {\r
+               Marshaller m = CTX.createMarshaller();\r
+               m.marshal(ir, new File(filename));\r
+       }\r
+\r
+       @XmlElement\r
+       LinkedHashMap<String, MediaMetadata> results = new LinkedHashMap<>();\r
+\r
+       public InformResult() {\r
+       }\r
+\r
+       public InformResult(Map<String, MediaMetadata> map) {\r
+               results.putAll(map);\r
+       }\r
+\r
+       public LinkedHashMap<String, MediaMetadata> getResults() {\r
+               return results;\r
+       }\r
+\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/LibMediaInfo.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/LibMediaInfo.java
new file mode 100644 (file)
index 0000000..f3c220e
--- /dev/null
@@ -0,0 +1,57 @@
+package user.commons.mediaarea;\r
+\r
+import static java.util.Collections.singletonMap;\r
+\r
+import java.lang.reflect.Method;\r
+\r
+import com.sun.jna.FunctionMapper;\r
+import com.sun.jna.Library;\r
+import com.sun.jna.Native;\r
+import com.sun.jna.NativeLibrary;\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+\r
+/**\r
+ * JNA Wrapper for MediaInfo.\r
+ */\r
+public interface LibMediaInfo extends Library {\r
+\r
+       static final String LIB_NAME = "mediainfo";\r
+\r
+       final LibMediaInfo INSTANCE = (LibMediaInfo) Native.loadLibrary(LIB_NAME, LibMediaInfo.class,\r
+                       singletonMap(OPTION_FUNCTION_MAPPER, (FunctionMapper) (NativeLibrary lib, Method method) -> "MediaInfo_" + method.getName()));\r
+\r
+       /* Closes the file upon completion */\r
+       void Close(Pointer Handle);\r
+\r
+       int Count_Get(Pointer Handle, int StreamKind, int StreamNumber);\r
+\r
+       /* Deconstructor */\r
+       void Delete(Pointer Handle);\r
+\r
+       WString Get(Pointer Handle, int StreamKind, int StreamNumber, WString parameter, int infoKind, int searchKind);\r
+\r
+       WString GetI(Pointer Handle, int StreamKind, int StreamNumber, int parameterIndex, int infoKind);\r
+\r
+       /* return information in various ways */\r
+       WString Inform(Pointer Handle, int Reserved);\r
+\r
+       /* Constructor */\r
+       Pointer New();\r
+\r
+       /* Opens a file for inspection */\r
+       int Open(Pointer Handle, WString file);\r
+\r
+       int Open_Buffer_Continue(Pointer handle, byte[] buffer, int size);\r
+\r
+       long Open_Buffer_Continue_GoTo_Get(Pointer handle);\r
+\r
+       /* release buffer resources (close) */\r
+       int Open_Buffer_Finalize(Pointer handle);\r
+\r
+       /* Opens a buffered read for the specified length beginning at offset */\r
+       int Open_Buffer_Init(Pointer handle, long length, long offset);\r
+\r
+       /* Set options */\r
+       WString Option(Pointer Handle, WString option, WString value);\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaArea.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaArea.java
new file mode 100644 (file)
index 0000000..1c8bdd9
--- /dev/null
@@ -0,0 +1,41 @@
+package user.commons.mediaarea;\r
+\r
+import java.nio.file.Path;\r
+\r
+public class MediaArea {\r
+\r
+       private Path filePath;\r
+       private int height;\r
+       private String displayAspect;\r
+       private String formatProfile = "";\r
+\r
+       public MediaArea(Path filePath) {\r
+               this.filePath = filePath;\r
+\r
+       }\r
+\r
+       public String getDisplayAspect() {\r
+               return displayAspect;\r
+       }\r
+\r
+       public String getFormatProfileName() {\r
+               return formatProfile;\r
+       }\r
+\r
+       public int getHeight() {\r
+               return height;\r
+       }\r
+\r
+       public void process() {\r
+               //auto closable\r
+               try (MediaInfo mi = new MediaInfo(filePath.toAbsolutePath().toString())) {\r
+                       height = Integer.parseInt(mi.get(StreamKind.Video, 0, "Height"));\r
+                       displayAspect = mi.get(StreamKind.Video, 0, "DisplayAspectRatio/String");\r
+                       formatProfile = mi.get(StreamKind.Video, 0, "Format_Profile").toUpperCase();\r
+               } catch (Exception ex) {\r
+                       throw new RuntimeException(ex);\r
+               }\r
+\r
+       }\r
+\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaInfo.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaInfo.java
new file mode 100644 (file)
index 0000000..e08e977
--- /dev/null
@@ -0,0 +1,222 @@
+package user.commons.mediaarea;\r
+\r
+import java.io.IOException;\r
+import java.nio.ByteBuffer;\r
+import java.nio.channels.SeekableByteChannel;\r
+\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+\r
+/**\r
+ * Class to wrap calls to LibMediaInfo via JNA. This class takes either a file path or a SeekableByteChannel and calls to LibMediaInfo to generate meta info.\r
+ * This class <b>must be closed</b> to properly release Native resources. It implements <code>AutoCloseable</code> to allow use try with resources.\r
+ */\r
+public class MediaInfo implements AutoCloseable {\r
+\r
+       public static void setXMLOutput(MediaInfo m) {\r
+               m.option("Inform", "XML");\r
+       }\r
+\r
+       private Pointer pointer;\r
+\r
+       private MediaInfo() {\r
+               pointer = LibMediaInfo.INSTANCE.New();\r
+       }\r
+\r
+       public MediaInfo(SeekableByteChannel channel) throws IOException {\r
+               this();\r
+               // open, read and finalize the data in the buffer\r
+               long len = channel.size();\r
+               final byte[] buff = new byte[64 * 1024];\r
+               final ByteBuffer dst = ByteBuffer.wrap(buff);\r
+               int read;\r
+               LibMediaInfo.INSTANCE.Open_Buffer_Init(pointer, len, 0L);\r
+               while ((read = channel.read(dst)) != -1) {\r
+                       int status = LibMediaInfo.INSTANCE.Open_Buffer_Continue(pointer, buff, read);\r
+                       if ((status & Status.Finalized.val) == Status.Finalized.val) {\r
+                               break;\r
+                       }\r
+                       long seekPos = LibMediaInfo.INSTANCE.Open_Buffer_Continue_GoTo_Get(pointer);\r
+                       if (seekPos != -1) {\r
+                               channel.position(seekPos);\r
+                               LibMediaInfo.INSTANCE.Open_Buffer_Init(pointer, len, seekPos);\r
+                       }\r
+                       dst.clear();\r
+               }\r
+               LibMediaInfo.INSTANCE.Open_Buffer_Finalize(pointer);\r
+       }\r
+\r
+       public MediaInfo(String fileName) throws IOException {\r
+               this();\r
+               int opened = LibMediaInfo.INSTANCE.Open(pointer, new WString(fileName));\r
+               if (opened == 0) {\r
+                       throw new IOException("Unable to open file with libmediainfo: " + fileName);\r
+               }\r
+       }\r
+\r
+       /**\r
+        * Closes the underlying file handle, and releases the native instance.\r
+        *\r
+        * @throws Exception\r
+        */\r
+       @Override\r
+       public void close() throws Exception {\r
+               if (pointer != null) {\r
+                       LibMediaInfo.INSTANCE.Close(pointer);\r
+                       LibMediaInfo.INSTANCE.Delete(pointer);\r
+                       pointer = null;\r
+               }\r
+       }\r
+\r
+       /**\r
+        * Get a piece of information about a file (parameter is an integer).\r
+        *\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in Kind of Stream (first, second...)\r
+        * @param parameterIndex\r
+        *            Parameter you are looking for in the Stream (Codec, width, bitrate...), in integer format (first parameter, second parameter...)\r
+        * @return information requested, empty string if not found\r
+        */\r
+       public String get(StreamKind streamKind, int streamNumber, int parameterIndex) {\r
+               return get(streamKind, streamNumber, parameterIndex, InfoKind.Text);\r
+       }\r
+\r
+       /**\r
+        * Get a piece of information about a file (parameter is an integer).\r
+        *\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in Kind of Stream (first, second...)\r
+        * @param parameterIndex\r
+        *            Parameter you are looking for in the Stream (Codec, width, bitrate...), in integer format (first parameter, second parameter...)\r
+        * @param infoKind\r
+        *            Kind of information you want about the parameter (the text, the measure, the help...)\r
+        * @return a string about information you search, an empty string if there is a problem\r
+        */\r
+       public String get(StreamKind streamKind, int streamNumber, int parameterIndex, InfoKind infoKind) {\r
+               return LibMediaInfo.INSTANCE.GetI(pointer, streamKind.ordinal(), streamNumber, parameterIndex, infoKind.ordinal()).toString();\r
+       }\r
+\r
+       /**\r
+        * Get a piece of information about a file (parameter is a string).\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in Kind of Stream (first, second...)\r
+        * @param parameter\r
+        *            Parameter you are looking for in the Stream (Codec, width, bitrate...), in string format ("Codec", "Width"...)\r
+        * @return a string about information you search, an empty string if there is a problem\r
+        */\r
+       public String get(StreamKind streamKind, int streamNumber, String parameter) {\r
+               return get(streamKind, streamNumber, parameter, InfoKind.Text, InfoKind.Name);\r
+       }\r
+\r
+       /**\r
+        * Get a piece of information about a file (parameter is a string).\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in Kind of Stream (first, second...)\r
+        * @param parameter\r
+        *            Parameter you are looking for in the Stream (Codec, width, bitrate...), in string format ("Codec", "Width"...)\r
+        * @param infoKind\r
+        *            Kind of information you want about the parameter (the text, the measure, the help...)\r
+        * @return information requested, empty string if not found\r
+        */\r
+       public String get(StreamKind streamKind, int streamNumber, String parameter, InfoKind infoKind) {\r
+               return get(streamKind, streamNumber, parameter, infoKind, InfoKind.Name);\r
+       }\r
+\r
+       /**\r
+        * Get a piece of information about a file (parameter is a string).\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in Kind of Stream (first, second...)\r
+        * @param parameter\r
+        *            Parameter you are looking for in the Stream (Codec, width, bitrate...), in string format ("Codec", "Width"...)\r
+        * @param infoKind\r
+        *            Kind of information you want about the parameter (the text, the measure, the help...)\r
+        * @param searchKind\r
+        *            Where to look for the parameter\r
+        * @return a string about information you search, an empty string if there is a problem\r
+        */\r
+       public String get(StreamKind streamKind, int streamNumber, String parameter, InfoKind infoKind, InfoKind searchKind) {\r
+               return LibMediaInfo.INSTANCE.Get(pointer, streamKind.ordinal(), streamNumber, new WString(parameter), infoKind.ordinal(), searchKind.ordinal())\r
+                               .toString();\r
+       }\r
+\r
+       /**\r
+        * Count of Streams of a Stream kind (StreamNumber not filled), or count of piece of information in this Stream.\r
+        *\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @return number of Streams of the given Stream kind\r
+        */\r
+       public int getCount(StreamKind streamKind) {\r
+               //We should use NativeLong for -1, but it fails on 64-bit\r
+               //int Count_Get(Pointer Handle, int StreamKind, NativeLong StreamNumber);\r
+               //return MediaInfoDLL_Internal.INSTANCE.Count_Get(Handle, StreamKind.ordinal(), -1);\r
+               //so we use slower Get() with a character string\r
+               String streamCount = get(streamKind, 0, "StreamCount");\r
+               if (streamCount == null || streamCount.length() == 0) {\r
+                       return 0;\r
+               }\r
+               return Integer.parseInt(streamCount);\r
+       }\r
+\r
+       /**\r
+        * Count of Streams of a Stream kind in the Stream Number.\r
+        *\r
+        * @param streamKind\r
+        *            Kind of Stream (general, video, audio...)\r
+        * @param streamNumber\r
+        *            Stream number in this kind of Stream (first, second...)\r
+        * @return number of Streams of the given Stream kind\r
+        */\r
+       public int getCount(StreamKind streamKind, int streamNumber) {\r
+               return LibMediaInfo.INSTANCE.Count_Get(pointer, streamKind.ordinal(), streamNumber);\r
+       }\r
+\r
+       /**\r
+        * Get all details about a file.\r
+        *\r
+        * @return All details about a file in one string\r
+        */\r
+       public String inform() {\r
+               return LibMediaInfo.INSTANCE.Inform(pointer, 0).toString();\r
+       }\r
+\r
+       /**\r
+        * Configure or get information about MediaInfo.\r
+        *\r
+        * @param option\r
+        *            The name of option\r
+        * @return Depends on the option: by default "" (nothing) means No, other means Yes\r
+        */\r
+       public String option(String option) {\r
+               return option(option, "");\r
+       }\r
+\r
+       /**\r
+        * Configure or get information about MediaInfo.\r
+        *\r
+        * @param option\r
+        *            The name of option\r
+        * @param value\r
+        *            The value of option\r
+        * @return Depends on the option: by default "" (nothing) means No, other means Yes\r
+        */\r
+       public String option(String option, String value) {\r
+               return LibMediaInfo.INSTANCE.Option(pointer, new WString(option), new WString(value)).toString();\r
+       }\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaMetadata.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaMetadata.java
new file mode 100644 (file)
index 0000000..fae0580
--- /dev/null
@@ -0,0 +1,64 @@
+package user.commons.mediaarea;\r
+\r
+import java.util.Collections;\r
+import java.util.LinkedHashMap;\r
+import java.util.Map;\r
+\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+/**\r
+ * Simple data object to hold MediaInfo inform results.\r
+ */\r
+@XmlType\r
+public final class MediaMetadata {\r
+       @XmlElement\r
+       String type;\r
+\r
+       @XmlElement\r
+       Map<String, String> metaData;\r
+\r
+       /* JAXB */\r
+       MediaMetadata() {\r
+       }\r
+\r
+       public MediaMetadata(String type, Map<String, String> metaData) {\r
+               this.type = type;\r
+               this.metaData = Collections.unmodifiableMap(new LinkedHashMap<>(metaData));\r
+       }\r
+\r
+       /**\r
+        * The meta data information for this type. The underlying implementation is an ordered map, but order may not be maintained if the object is constructed\r
+        * with an unordered Map.\r
+        * \r
+        * @return Unmodifiable meta map\r
+        */\r
+       public Map<String, String> getMetaData() {\r
+               return metaData;\r
+       }\r
+\r
+       /**\r
+        * The meta info type (General, Video, Audio, etc)\r
+        * \r
+        * @return\r
+        */\r
+       public String getType() {\r
+               return type;\r
+       }\r
+\r
+       /**\r
+        * Returns a single meta data value from the meta map.\r
+        * \r
+        * @param key\r
+        * @return value if present or null\r
+        */\r
+       public String getValue(final String key) {\r
+               return metaData.get(key);\r
+       }\r
+\r
+       @Override\r
+       public String toString() {\r
+               return "MediaMetadata{" + "type=" + type + ", metaData=" + metaData + '}';\r
+       }\r
+\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/Status.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/Status.java
new file mode 100644 (file)
index 0000000..077b074
--- /dev/null
@@ -0,0 +1,14 @@
+package user.commons.mediaarea;\r
+\r
+/**\r
+ * Status codes when reading from a buffer.\r
+ */\r
+public enum Status {\r
+       None(0x00), Accepted(0x01), Filled(0x02), Updated(0x04), Finalized(0x08);\r
+\r
+       public final int val;\r
+\r
+       Status(int val) {\r
+               this.val = val;\r
+       }\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/StreamKind.java b/server/user.jobengine.osgi.commons/src/user/commons/mediaarea/StreamKind.java
new file mode 100644 (file)
index 0000000..4bd1895
--- /dev/null
@@ -0,0 +1,8 @@
+package user.commons.mediaarea;\r
+\r
+/**\r
+ * Enumeration of the StreamKind.\r
+ */\r
+public enum StreamKind {\r
+       General, Video, Audio, Text, Other, Image, Menu;\r
+}\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/strings/FileSizeUtils.java b/server/user.jobengine.osgi.commons/src/user/commons/strings/FileSizeUtils.java
new file mode 100644 (file)
index 0000000..f37435f
--- /dev/null
@@ -0,0 +1,31 @@
+package user.commons.strings;\r
+\r
+import java.text.DecimalFormat;\r
+\r
+public class FileSizeUtils {\r
+       private static final long K = 1024;\r
+       private static final long M = K * K;\r
+       private static final long G = M * K;\r
+       private static final long T = G * K;\r
+\r
+       private static String format(final long value, final long divider, final String unit) {\r
+               final double result = divider > 1 ? (double) value / (double) divider : (double) value;\r
+               return new DecimalFormat("#,##0.#").format(result) + " " + unit;\r
+       }\r
+\r
+       public static String sizeAsString(final long value) {\r
+               final long[] dividers = new long[] { T, G, M, K, 1 };\r
+               final String[] units = new String[] { "TB", "GB", "MB", "KB", "B" };\r
+               if (value < 1)\r
+                       throw new IllegalArgumentException("Invalid file size: " + value);\r
+               String result = null;\r
+               for (int i = 0; i < dividers.length; i++) {\r
+                       final long divider = dividers[i];\r
+                       if (value >= divider) {\r
+                               result = format(value, divider, units[i]);\r
+                               break;\r
+                       }\r
+               }\r
+               return result;\r
+       }\r
+}\r
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_demo_nyers.sql b/server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_demo_nyers.sql
deleted file mode 100644 (file)
index 6685886..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
--- // Insert DEMO nyers itemtype
--- Migration SQL that makes the change goes here.
-
-INSERT INTO ITEMTYPE (NAME) VALUES ('DEMO nyers')
-@
-
--- //@UNDO
--- SQL to undo the change goes here.
-
-DELETE FROM ITEMTYPE WHERE NAME='DEMO nyers'
-@
\ No newline at end of file
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_muszter_demo.sql b/server/user.jobengine.osgi.db/migrations/scripts/026_insert_itemtype_muszter_demo.sql
new file mode 100644 (file)
index 0000000..3dbe459
--- /dev/null
@@ -0,0 +1,11 @@
+-- // Insert Muszetr DEMO itemtype
+-- Migration SQL that makes the change goes here.
+
+INSERT INTO ITEMTYPE (NAME, DESCRIPTION, ISSTATIC) VALUES ('Muszter DEMO', 'Muszter DEMO', 'N')
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+DELETE FROM ITEMTYPE WHERE NAME='Muszter DEMO'
+@
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/029_alter_PASA_storeuri_to_FTP.sql b/server/user.jobengine.osgi.db/migrations/scripts/029_alter_PASA_storeuri_to_FTP.sql
new file mode 100644 (file)
index 0000000..6d51e9c
--- /dev/null
@@ -0,0 +1,52 @@
+--
+--    Copyright 2010-2016 the original author or authors.
+--
+--    Licensed under the Apache License, Version 2.0 (the "License");
+--    you may not use this file except in compliance with the License.
+--    You may obtain a copy of the License at
+--
+--       http://www.apache.org/licenses/LICENSE-2.0
+--
+--    Unless required by applicable law or agreed to in writing, software
+--    distributed under the License is distributed on an "AS IS" BASIS,
+--    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--    See the License for the specific language governing permissions and
+--    limitations under the License.
+--
+
+-- // Alter PASA STOREURI change to FTP protocol
+-- Migration SQL that makes the change goes here.
+
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/PasaPool' where storeid in (select id from store where name = 'PASAPOOL');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/BeachPool' where storeid in (select id from store where name = 'PEABLEBEACH');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool' where storeid in (select id from store where name = 'SELENIOPOOL');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/16_9' where storeid in (select id from store where name = 'SELENIOPOOL_16_9');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/16_9/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_16_9_PROCESSING');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/4_3' where storeid in (select id from store where name = 'SELENIOPOOL_4_3');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/4_3/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_4_3_PROCESSING');
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/PASAPOOL', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'PASAPOOL');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/BEACHPOOL',username=null, password=null, rootpath=null where storeid in (select id from store where name = 'PEABLEBEACH');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/SELENIOPOOL', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'SELENIOPOOL');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/SELENIOPOOL/16_9', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'SELENIOPOOL_16_9');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/SELENIOPOOL/16_9/PROCESSING', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'SELENIOPOOL_16_9_PROCESSING');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/SELENIOPOOL/4_3', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'SELENIOPOOL_4_3');
+@
+update storeuri set protocol='LOCAL', URI='/mnt/PEABLEBEACH/SELENIOPOOL/4_3/PROCESSING', username=null, password=null, rootpath=null where storeid in (select id from store where name = 'SELENIOPOOL_4_3_PROCESSING');
+@
+
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/030_insert_itemtype_musor_clean.sql b/server/user.jobengine.osgi.db/migrations/scripts/030_insert_itemtype_musor_clean.sql
new file mode 100644 (file)
index 0000000..4ddc872
--- /dev/null
@@ -0,0 +1,11 @@
+-- // Insert Musor CLEAN itemtype
+-- Migration SQL that makes the change goes here.
+
+INSERT INTO ITEMTYPE (NAME, DESCRIPTION, ISSTATIC) VALUES ('Műsor CLEAN', 'Műsor CLEAN', 'N')
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+DELETE FROM ITEMTYPE WHERE NAME='Műsor CLEAN'
+@
\ No newline at end of file
index d59dcf0e1b6af15bf8546cff13159f2cd81c09e7..ea2ba4e752ebf5c0d6befcaf8e62fc73fc09da75 100644 (file)
        <artifactId>user.jobengine.osgi.db</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.0.0</version>\r
+       \r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+       \r
 </project>
\ No newline at end of file
index 77c5d8368b30a60bb8a4e0b5aff34aaabd905c14..edfb0de3bd39c5259436e0145b2122978a8a1e75 100644 (file)
        <!-- <local.location>${project.build.directory}</local.location> -->\r
        <!-- <remote.location>/opt/mediacube/plugins</remote.location> -->\r
        <!-- </properties> -->\r
+       \r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+       \r
 </project>
\ No newline at end of file
index 3f775fabe6ff2248b56cd94952c747b7719665bc..d6bb6057cd3019e5315468f09c1558aeb342814f 100644 (file)
@@ -112,6 +112,8 @@ public interface IJobEngine {
 
        void putOutputsToStack(IJobRuntime jobRuntime, Object[] outputs);
 
+       void reloadGracefully() throws Exception;
+
        void removeFromExecutorQueue(IJobRuntime jobRuntime);
 
        void removeFromRunQueue(IJobRuntime jobRuntime);
index 7ad2abb1771427e63201b0ef2c984b9d37d8bec4..02dc8dd9359e4657aab46d383f5237b61070ca94 100644 (file)
@@ -36,6 +36,10 @@ public interface IJobStepExecutor {
 
        void revoke(IJobRuntime jobRuntime);
 
+       void setJobEngine(IJobEngine jobEngine);
+
+       void setMaxConcurrent(int maxConcurrent);
+
        /**
         * V�grehajt� le�ll�t�sa. Minden sz�l le�ll�t�sra ker�l.
         */
@@ -44,7 +48,7 @@ public interface IJobStepExecutor {
        /**
         * A v�grehajt� elind�t�sa.
         */
-       void startup(IJobEngine jobEngine);
+       void startup();
 
        ClusteredJob steelJob() throws InterruptedException;
 
index 0a05285e72e46a8a31fddf34176ebf94c0a1e4d4..0a46bbf62ed2d41570c85802ef2972110112f872 100644 (file)
@@ -283,12 +283,21 @@ public class JobEngine implements IJobEngine {
        @Override
        public void addStepExecutor(IJobStepExecutor executor) {
                //Class<IJobStep> stepClass = executor.getStepClass();
+               executor.setJobEngine(this);
                String unitName = executor.getStepUnitName();
                if (!executors.containsKey(unitName)) {
-                       logger.info("Executor registered {}", unitName);
+                       logger.info("Executor now registered for {}", unitName);
                        executors.put(unitName, executor);
-               } else
-                       logger.debug("Executor already registered {}", unitName);
+               } else {
+                       logger.info("Executor already registered for {}", unitName);
+                       IJobStepExecutor stepExecutor = executors.get(unitName);
+                       int currentMaxConcurrent = stepExecutor.getMaxConcurrent();
+                       int newMaxConcurrent = executor.getMaxConcurrent();
+                       if (currentMaxConcurrent != newMaxConcurrent) {
+                               stepExecutor.setMaxConcurrent(newMaxConcurrent);
+                               logger.info("Executor maxConcurrent changed from {} to {}", currentMaxConcurrent, newMaxConcurrent);
+                       }
+               }
 
        }
 
@@ -667,7 +676,7 @@ public class JobEngine implements IJobEngine {
        public void loadExecutors() {
                // TODO
                // shutdownExecutors();
-               executors.clear();
+               //executors.clear();
                InputStream stream = null;
                try {
                        String stepRoot = DirectoryUtils.normalize(System.getProperty(STEPSROOT), File.separator);
@@ -884,6 +893,22 @@ public class JobEngine implements IJobEngine {
                }
        }
 
+       @Override
+       public void reloadGracefully() throws Exception {
+               if (schedulerService != null)
+                       schedulerService.shutdown();
+
+               loadPrograms();
+               loadExecutors();
+
+               //startupExecutors();
+
+               schedulerService = new SchedulerService(this);
+               schedulerService.startup();
+               logger.info("JobEngine gracefully reloaded");
+               isRunning = true;
+       }
+
        @Override
        public void removeFromExecutorQueue(IJobRuntime jobRuntime) {
                for (IJobStepExecutor executor : executors.values())
@@ -1107,7 +1132,7 @@ public class JobEngine implements IJobEngine {
 
        private void startupExecutors() {
                for (IJobStepExecutor executor : executors.values())
-                       executor.startup(this);
+                       executor.startup();
        }
 
        @Override
index a6be04f5dd156931e3be8b0117af0d18cb2c86c3..d2dd3a50490d848fe85afaf6dfeec36e69e3df75 100644 (file)
@@ -6,6 +6,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.PriorityBlockingQueue;
@@ -41,6 +42,9 @@ public class JobStepExecutor implements IJobStepExecutor {
                                try {
                                        Thread.sleep(IJobEngine.QUEUE_POLL_INTERVAL_MS);
 
+                                       if (jobEngine == null)
+                                               logger.info("JobEngine is null");
+
                                        if (jobEngine.isWorker() && isRemote) {
                                                //a worker is csak azokat akarja vegrehajtani
                                                ClusteredJob job = jobEngine.getRemoteEngine().getRemoteJob(getStepUnitName());
@@ -76,12 +80,11 @@ public class JobStepExecutor implements IJobStepExecutor {
                                        }
 
                                        if (jobRuntime != null) {
-                                               long submitted = jobRuntime.getSubmitted().getTime();
-                                               long current = System.currentTimeMillis();
-                                               boolean timeout = current - submitted > WAIT_FOR_REMOTE;
-
                                                //ha remote, de nem jelentkezik senki, akkor helyi vegrehajtas
                                                if (isRemote) {
+                                                       long submitted = jobRuntime.getSubmitted().getTime();
+                                                       long current = System.currentTimeMillis();
+                                                       boolean timeout = current - submitted > WAIT_FOR_REMOTE;
                                                        if (timeout) {
                                                                logger.info("Remote JobStep timed out, processing locally.");
                                                        } else {
@@ -95,7 +98,11 @@ public class JobStepExecutor implements IJobStepExecutor {
                                                logger.info("Executing locally {}", jobRuntime.getId());
                                                //jobRuntime.setDescription(PROCESSING_LOCALLY);
                                                Object[] inputs = jobEngine.getInputsFromStack(jobRuntime);
-                                               runStepObject(jobRuntime, inputs);
+                                               IJobStep stepObject = runStepObject(jobRuntime, inputs);
+                                               if (stepObject.isTest()) {
+                                                       logger.trace("Finishing test worker");
+                                                       break;
+                                               }
                                        }
 
                                        if (shutdown) {
@@ -117,15 +124,22 @@ public class JobStepExecutor implements IJobStepExecutor {
                                                jobRuntime = null;
                                                step = null;
                                        }
+                                       if (retireUnusedWorker(this)) {
+                                               break;
+
+                                       }
+
                                }
                        }
                }
 
-               private void runStepObject(IJobRuntime jobRuntime, Object[] inputs) throws Throwable {
+               private IJobStep runStepObject(IJobRuntime jobRuntime, Object[] inputs) throws Throwable {
+                       IJobStep step = null;
+
                        jobRuntime.setStatus(JobStatus.EXECUTING);
                        jobRuntime.NotifyUpdate();
 
-                       IJobStep step = createStepObject();
+                       step = createStepObject();
                        if (step == null)
                                throw new Exception("Step object is null");
                        logger.debug("{} executing", jobRuntime);
@@ -139,6 +153,7 @@ public class JobStepExecutor implements IJobStepExecutor {
                        //                      jobEngine.sendMessage(new JobStepCompletedMessage(jobRuntime.getId(), outputs));
                        //                      }
                        jobEngine.sendMessage(new JobStepCompletedMessage(jobRuntime.getId(), outputs));
+                       return step;
                }
 
                public void shutdown() {
@@ -156,7 +171,7 @@ public class JobStepExecutor implements IJobStepExecutor {
 
        private Logger logger;
        private PriorityBlockingQueue<IJobRuntime> queue;
-       private List<Worker> workers;
+       private List<Worker> workers = Collections.synchronizedList(new ArrayList<Worker>());
        protected IJobEngine jobEngine;
        private CountDownLatch barrier;
        private Class<IJobStep> stepClass;
@@ -180,6 +195,21 @@ public class JobStepExecutor implements IJobStepExecutor {
                create(className, maxConcurrent, false);
        }
 
+       private void addWorkers(int count) {
+               barrier = new CountDownLatch(count);
+
+               for (int index = 0; index < count; index++) {
+                       Worker worker = new Worker();
+                       worker.start();
+                       workers.add(worker);
+               }
+
+               try {
+                       barrier.await();
+               } catch (Exception e) {
+               }
+       }
+
        @Override
        public void changePriority(IJobRuntime runtime) {
                if (queue != null && runtime != null) {
@@ -220,12 +250,6 @@ public class JobStepExecutor implements IJobStepExecutor {
 
                queue = new PriorityBlockingQueue<IJobRuntime>();
                this.maxConcurrent = maxConcurrent;
-               if (maxConcurrent > 0) {
-                       barrier = new CountDownLatch(maxConcurrent);
-                       workers = new ArrayList<Worker>();
-                       for (int index = 0; index < maxConcurrent; index++)
-                               workers.add(new Worker());
-               }
        }
 
        protected IJobStep createStepObject() throws Exception {
@@ -259,7 +283,7 @@ public class JobStepExecutor implements IJobStepExecutor {
        }
 
        @Override
-       public int getMaxConcurrent() {
+       public synchronized int getMaxConcurrent() {
                return maxConcurrent;
        }
 
@@ -312,31 +336,55 @@ public class JobStepExecutor implements IJobStepExecutor {
                return result;
        }
 
+       protected synchronized boolean retireUnusedWorker(Worker worker) {
+               boolean result = false;
+               if (getMaxConcurrent() < workers.size()) {
+                       workers.remove(worker);
+                       logger.info("Worker {} is retired, max {} current {}", getStepUnitName(), getMaxConcurrent(), workers.size());
+                       result = true;
+               }
+
+               return result;
+       }
+
        @Override
        public void revoke(IJobRuntime jobRuntime) {
                queue.remove(jobRuntime);
        }
 
        @Override
-       public void shutdown() {
-               for (Worker w : workers)
-                       w.shutdown();
+       public void setJobEngine(IJobEngine jobEngine) {
+               this.jobEngine = jobEngine;
        }
 
        @Override
-       public void startup(IJobEngine jobEngine) {
-               this.jobEngine = jobEngine;
-               if (workers != null) {
-                       for (Worker w : workers)
-                               w.start();
-               }
-               if (barrier != null) {
-                       try {
-                               barrier.await();
-                       } catch (Exception e) {
-                       }
-                       //barrier.reset();
+       public synchronized void setMaxConcurrent(int maxConcurrent) {
+               if (this.maxConcurrent == maxConcurrent)
+                       return;
+
+               if (this.maxConcurrent < maxConcurrent) {
+                       int diff = maxConcurrent - this.maxConcurrent;
+                       addWorkers(diff);
                }
+
+               this.maxConcurrent = maxConcurrent;
+       }
+
+       @Override
+       public void shutdown() {
+               if (workers == null)
+                       return;
+
+               workers.forEach(worker -> worker.shutdown());
+               workers.clear();
+       }
+
+       @Override
+       public void startup() {
+               if (maxConcurrent == 0)
+                       return;
+
+               addWorkers(maxConcurrent);
        }
 
        @Override
@@ -368,7 +416,6 @@ public class JobStepExecutor implements IJobStepExecutor {
 
        @Override
        public void waitShutdown() {
-               for (Worker w : workers)
-                       w.waitShutdown();
+               workers.forEach(worker -> worker.waitShutdown());
        }
 }
index e84eb5de42518688d0a277c1d70dfee7de2a1aad..f3c8fde33ec02c5c644c4d3904ebd61c007fad55 100644 (file)
@@ -9,6 +9,7 @@ public interface IJobStep {
 \r
        void cleanup();\r
 \r
-       Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Throwable;\r
+       boolean isTest();\r
 \r
+       Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Throwable;\r
 }\r
index 42de2048f82c5b4f7170eca026e59ab0e92eeb92..79f19de75d727d02d84d7a5b0d3c3fd95ee6390a 100644 (file)
@@ -143,6 +143,11 @@ public class JobStep implements IJobStep {
                return (MediaCubeMarker) jobRuntime.getSessionMarker();\r
        }\r
 \r
+       @Override\r
+       public boolean isTest() {\r
+               return false;\r
+       }\r
+\r
        @Override\r
        public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Throwable {\r
                this.jobEngine = jobEngine;\r
diff --git a/server/user.jobengine.osgi.server/test/log4j2-test.xml b/server/user.jobengine.osgi.server/test/log4j2-test.xml
new file mode 100644 (file)
index 0000000..ad428dc
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<Configuration status="INFO">\r
+    <Appenders>\r
+        <Console name="LogToConsole" target="SYSTEM_OUT">\r
+            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>\r
+        </Console>\r
+    </Appenders>\r
+    <Loggers>\r
+        <Root level="INFO">\r
+            <AppenderRef ref="LogToConsole"/>\r
+        </Root>\r
+    </Loggers>\r
+</Configuration>
\ No newline at end of file
index 19efc467acc66c49f4cf9fe3de0c5dcd9d5787df..6f3441e8f87968b66e42818f1a650a55ed4fece0 100644 (file)
@@ -37,20 +37,25 @@ public class JobStepExecutorTest {
                };
                jobStep = new IJobStep() {
                        @Override
-                       public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Exception {
-                               called[0] = true;
-                               if (threadCounter != null)
-                                       threadCounter.increment();
-                               return null;
+                       public boolean canContinue() {
+                               return false;
                        }
 
                        @Override
-                       public boolean canContinue() {
+                       public void cleanup() {
+                       }
+
+                       @Override
+                       public boolean isTest() {
                                return false;
                        }
 
                        @Override
-                       public void cleanup() {
+                       public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Exception {
+                               called[0] = true;
+                               if (threadCounter != null)
+                                       threadCounter.increment();
+                               return null;
                        }
 
                };
@@ -62,7 +67,7 @@ public class JobStepExecutorTest {
                        }
 
                };
-               sut.startup(jobEngine);
+               sut.startup();
 
                jobRuntime1 = new JobRuntime(jobEngine, new Program());
                jobRuntime1.pushToStack("var1");
@@ -81,40 +86,15 @@ public class JobStepExecutorTest {
        }
 
        @Test
-       public void testSendJobCompletedMessage() {
+       public void testConstructor_Dynamic_ExistingClass() throws Exception {
                // Fixture
-               messageCounter = new ThreadCounter(2);
+               System.setProperty("jobengine.jobsteps.root", "c:\\$Work\\USER\\JobEngine\\plugins");
 
                // Exercise
-               sut.submit(jobRuntime1);
-               sut.submit(jobRuntime2);
+               sut = new JobStepExecutor("user.jobengine.server.steps.JobStepDyn", 1);
 
                // Verify
-               messageCounter.waitFinish();
-               assertEquals(2, messages.size());
-               assertEquals(JobStepCompletedMessage.class, messages.get(0).getClass());
-               assertEquals(1, messages.get(0).getJobId());
-               assertEquals(JobStepCompletedMessage.class, messages.get(1).getClass());
-               assertEquals(2, messages.get(1).getJobId());
-       }
-
-       @Test
-       public void testRunStep() {
-               // Fixture
-               threadCounter = new ThreadCounter(1);
-
-               // Exercise
-               sut.submit(jobRuntime1);
-
-               // Validate
-               threadCounter.waitFinish();
-               assertTrue(called[0]);
-       }
-
-       @Test(expected = NullPointerException.class)
-       public void testSubmit_NullParameter() {
-               // Exercise
-               sut.submit(null);
+               assertTrue(sut.getStepClass() != null);
        }
 
        @Test(expected = RuntimeException.class)
@@ -122,18 +102,6 @@ public class JobStepExecutorTest {
                new JobStepExecutor("user.jobengine.server.steps.JobStepDyn", 1);
        }
 
-       @Test
-       public void testConstructor_Dynamic_ExistingClass() throws Exception {
-               // Fixture
-               System.setProperty("jobengine.jobsteps.root", "c:\\$Work\\USER\\JobEngine\\plugins");
-
-               // Exercise
-               sut = new JobStepExecutor("user.jobengine.server.steps.JobStepDyn", 1);
-
-               // Verify
-               assertTrue(sut.getStepClass() != null);
-       }
-
        @Test
        public void testDynamicExecutor() throws Exception {
                // Fixture
@@ -145,7 +113,7 @@ public class JobStepExecutorTest {
                jobRuntime1.pushToStack(2);
                System.setProperty("jobengine.jobsteps.root", "c:\\$Work\\USER\\JobEngine\\plugins");
                sut = new JobStepExecutor("user.jobengine.server.steps.JobStepDyn", 1);
-               sut.startup(jobEngine);
+               sut.startup();
                messageCounter = new ThreadCounter(1);
 
                // Exercise
@@ -159,4 +127,41 @@ public class JobStepExecutorTest {
                //check stack
        }
 
+       @Test
+       public void testRunStep() {
+               // Fixture
+               threadCounter = new ThreadCounter(1);
+
+               // Exercise
+               sut.submit(jobRuntime1);
+
+               // Validate
+               threadCounter.waitFinish();
+               assertTrue(called[0]);
+       }
+
+       @Test
+       public void testSendJobCompletedMessage() {
+               // Fixture
+               messageCounter = new ThreadCounter(2);
+
+               // Exercise
+               sut.submit(jobRuntime1);
+               sut.submit(jobRuntime2);
+
+               // Verify
+               messageCounter.waitFinish();
+               assertEquals(2, messages.size());
+               assertEquals(JobStepCompletedMessage.class, messages.get(0).getClass());
+               assertEquals(1, messages.get(0).getJobId());
+               assertEquals(JobStepCompletedMessage.class, messages.get(1).getClass());
+               assertEquals(2, messages.get(1).getJobId());
+       }
+
+       @Test(expected = NullPointerException.class)
+       public void testSubmit_NullParameter() {
+               // Exercise
+               sut.submit(null);
+       }
+
 }
diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/JobStepExecutorTest1.java b/server/user.jobengine.osgi.server/test/user/jobengine/server/JobStepExecutorTest1.java
new file mode 100644 (file)
index 0000000..b5aea6d
--- /dev/null
@@ -0,0 +1,142 @@
+package user.jobengine.server;
+
+import static org.junit.Assert.assertEquals;
+
+import java.sql.Timestamp;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import user.jobengine.server.steps.IJobStep;
+
+public class JobStepExecutorTest1 {
+       @BeforeClass
+       public static void beforeClass() {
+               //System.setProperty("org.apache.logging.log4j.simplelog.StatusLogger.level", "TRACE");
+       }
+
+       @Before
+       public void setup() throws Exception {
+       }
+
+       @After
+       public void tearDown() throws Exception {
+       }
+
+       @Test
+       public void testTicketBase() throws Exception {
+               // Fixture
+               int expectedJobCount = 3;
+               IJobEngine jobEngine = new JobEngine();
+               final AtomicInteger stepCallCount = new AtomicInteger();
+               final CountDownLatch stepStartBarrier = new CountDownLatch(expectedJobCount);
+
+               final IJobStep jobStep = new IJobStep() {
+                       @Override
+                       public boolean canContinue() {
+                               return true;
+                       }
+
+                       @Override
+                       public void cleanup() {
+                       }
+
+                       @Override
+                       public boolean isTest() {
+                               return true;
+                       }
+
+                       @Override
+                       public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Exception {
+                               stepCallCount.getAndIncrement();
+                               stepStartBarrier.countDown();
+                               return null;
+                       }
+               };
+
+               final IJobStepExecutor sut = new JobStepExecutor(IJobStep.class, expectedJobCount) {
+                       @Override
+                       protected IJobStep createStepObject() throws InstantiationException, IllegalAccessException {
+                               return jobStep;
+                       }
+
+               };
+               sut.setJobEngine(jobEngine);
+               sut.startup();
+
+               // Exercise
+               for (int i = 0; i < expectedJobCount; i++) {
+                       JobRuntime jobRuntime = new JobRuntime(jobEngine, new Program());
+                       jobRuntime.setSubmitted(new Timestamp(System.currentTimeMillis()));
+                       jobRuntime.pushToStack(0);
+                       jobRuntime.saveStack();
+                       sut.submit(jobRuntime);
+               }
+               stepStartBarrier.await();
+               // Verify
+               assertEquals(expectedJobCount, stepCallCount.get());
+       }
+
+       @Test
+       public void testTicketIncrement() throws Exception {
+               // Fixture
+               int expectedJobCount = 3;
+               IJobEngine jobEngine = new JobEngine();
+               final int[] stepCallCount = { 0 };
+               final CountDownLatch stepStartBarrier = new CountDownLatch(expectedJobCount);
+               final IJobStep jobStep = new IJobStep() {
+                       @Override
+                       public boolean canContinue() {
+                               return true;
+                       }
+
+                       @Override
+                       public void cleanup() {
+                       }
+
+                       @Override
+                       public boolean isTest() {
+                               return true;
+                       }
+
+                       @Override
+                       public Object[] run(IJobEngine jobEngine, IJobRuntime jobRuntime, Object[] inputs) throws Exception {
+
+                               stepCallCount[0]++;
+                               stepStartBarrier.countDown();
+
+                               return null;
+                       }
+
+               };
+
+               final IJobStepExecutor sut = new JobStepExecutor(IJobStep.class, 1) {
+                       @Override
+                       protected IJobStep createStepObject() throws InstantiationException, IllegalAccessException {
+                               return jobStep;
+                       }
+
+               };
+               sut.startup();
+
+               // Exercise
+
+               sut.setMaxConcurrent(sut.getMaxConcurrent() + 1);
+
+               for (int i = 0; i < expectedJobCount; i++) {
+                       JobRuntime jobRuntime = new JobRuntime(jobEngine, new Program());
+                       jobRuntime.setSubmitted(new Timestamp(System.currentTimeMillis()));
+                       jobRuntime.pushToStack(0);
+                       sut.submit(jobRuntime);
+               }
+               stepStartBarrier.await();
+
+               // Verify
+               assertEquals(expectedJobCount, stepCallCount[0]);
+       }
+
+}
index 787546d85dbc9fe427d39fab393550d59826a8ed..d0b367b5f640a62c5012819ec27cc333c8612a84 100644 (file)
                </profile>\r
        </profiles>\r
 \r
+<!--   <build> -->\r
+<!--           <plugins> -->\r
+<!--                   <plugin> -->\r
+<!--                           <groupId>org.codehaus.mojo</groupId> -->\r
+<!--                           <artifactId>exec-maven-plugin</artifactId> -->\r
+<!--                           <version>1.5.0</version> -->\r
+<!--                           <executions> -->\r
+<!--                                   <execution> -->\r
+<!--                                           <id>install</id> -->\r
+<!--                                           <phase>install</phase> -->\r
+<!--                                           <goals> -->\r
+<!--                                                   <goal>exec</goal> -->\r
+<!--                                           </goals> -->\r
+<!--                                           <configuration> -->\r
+<!--                                                   <executable>echo</executable> -->\r
+<!--                                                   <arguments> -->\r
+<!--                                                           <argument>yyy</argument> -->\r
+<!--                                                   </arguments> -->\r
+<!--                                           </configuration> -->\r
+<!--                                   </execution> -->\r
+<!--                           </executions> -->\r
+<!--                   </plugin> -->\r
+\r
+<!--           </plugins> -->\r
+<!--   </build> -->\r
+\r
        <build>\r
                <plugins>\r
+\r
                        <plugin>\r
-                               <groupId>org.codehaus.mojo</groupId>\r
-                               <artifactId>exec-maven-plugin</artifactId>\r
-                               <version>1.5.0</version>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
                                <executions>\r
                                        <execution>\r
-                                               <id>install</id>\r
+                                               <id>copy-jar</id>\r
                                                <phase>install</phase>\r
                                                <goals>\r
-                                                       <goal>exec</goal>\r
+                                                       <goal>copy-resources</goal>\r
                                                </goals>\r
                                                <configuration>\r
-                                                       <executable>echo</executable>\r
-                                                       <arguments>\r
-                                                               <argument>yyy</argument>\r
-                                                       </arguments>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
                                                </configuration>\r
                                        </execution>\r
                                </executions>\r
                        </plugin>\r
-\r
                </plugins>\r
        </build>\r
 \r
index 480bbcb418260a6b6ab3dd02064b713bc1be7a2b..900880a49d1c228250b8ef233e6fa55ad81622e0 100644 (file)
@@ -30,6 +30,7 @@
                        <separator orient="vertical"/>\r
                        <toolbarbutton label="Leállítás" iconSclass="z-icon-level-down" onClick="@command('shutdown')" disabled="@load(jlm.shutdownDisabled)" autodisable="self"/>\r
                        <toolbarbutton label="Elindítás" iconSclass="z-icon-level-up" onClick="@command('startup')" disabled="@load(jlm.startupDisabled)" autodisable="self"/>\r
+                       <toolbarbutton label="Újratöltés" iconSclass="z-icon-dot-circle-o" onClick="@command('reload')" autodisable="self"/>\r
                        <separator orient="vertical"/>\r
                        <toolbarbutton label="Takarítás" iconSclass="z-icon-eraser" onClick="@command('cleanupSuspended')" autodisable="self"/>\r
                        <separator orient="vertical"/>\r
index 73ceef6c826698a56b8039ed40e91823274fc280..4cef5f7d4cad0038d2ceb9ef826933dcb764edc9 100644 (file)
        <artifactId>user.mediacube.gui</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.0.0</version>\r
-</project>
\ No newline at end of file
+\r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+</project>\r
+\r
+                       
\ No newline at end of file
index b0e183c6e80105f112d52620e12f96864248e6ab..e54983be72ea0960bac0ab36cdbd909e77370cb1 100644 (file)
@@ -1,4 +1,4 @@
-version=2.7.0\r
+version=2.7.1\r
 footer=2016-2020 © Copyright User Rendszerház Kft.\r
 \r
 login_info=Információ\r
index 09183ca20a5cd6c1ceb3697b2bccd4ea961c1f33..97685bfd6eb02f4ab04b98d65ffbdda1d4bd7fd7 100644 (file)
@@ -1,20 +1,21 @@
 package user.jobengine.zk.model;\r
 \r
-import org.apache.commons.io.FileUtils;\r
 import org.zkoss.bind.BindContext;\r
 import org.zkoss.bind.Converter;\r
 import org.zkoss.zul.Label;\r
 \r
-public class FileSizeConverter implements Converter<String, Long, Label> {\r
+import user.commons.strings.FileSizeUtils;\r
 \r
-       @Override\r
-       public String coerceToUi(Long fileSize, Label paramC, BindContext context) {\r
-               return  FileUtils.byteCountToDisplaySize(fileSize);\r
-       }\r
+public class FileSizeConverter implements Converter<String, Long, Label> {\r
 \r
        @Override\r
        public Long coerceToBean(String paramU, Label paramC, BindContext paramBindContext) {\r
                // TODO Auto-generated method stub\r
                return null;\r
        }\r
+\r
+       @Override\r
+       public String coerceToUi(Long fileSize, Label paramC, BindContext context) {\r
+               return FileSizeUtils.sizeAsString(fileSize);\r
+       }\r
 }\r
index d45e5ccf7a8115a3756b7241783cdcce92e50fab..ef49696f23beb2db2376c5997e1b846ec253f76c 100644 (file)
@@ -333,6 +333,15 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
                t.start();\r
        }\r
 \r
+       @Command\r
+       public void reload() {\r
+               try {\r
+                       jobEngine.reloadGracefully();\r
+               } catch (Exception e) {\r
+                       Messagebox.show(e.getMessage(), "Hiba!", Messagebox.OK, Messagebox.ERROR);\r
+               }\r
+       }\r
+\r
        @Command\r
        @NotifyChange("searchStatus")\r
        public void resetSearchRelated() {\r
index e8c132cf40ac2bae7ad97bd65e1e5050decb610d..bf09ee71acab5aa8015c28880780ea78ca426a4a 100644 (file)
        <artifactId>user.mediacube.metadata</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.0.0</version>\r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
 \r
 </project>
\ No newline at end of file
index e81dac195000700d00ffaca90d825619bc6fe733..e228ea6dc4ee36171e5c45dcfba5a9c80516c016 100644 (file)
        <artifactId>user.tsm.client</artifactId>\r
        <packaging>eclipse-plugin</packaging>\r
        <version>1.2.0</version>\r
+       <build>\r
+               <plugins>\r
+\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-resources-plugin</artifactId>\r
+                               <version>2.7</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>copy-jar</id>\r
+                                               <phase>install</phase>\r
+                                               <goals>\r
+                                                       <goal>copy-resources</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <outputDirectory>${project.basedir}}/../-product/target/deploy</outputDirectory>\r
+                                                       <resources>\r
+                                                               <resource>\r
+                                                                       <directory>target</directory>\r
+                                                                       <includes>\r
+                                                                               <include>${project.artifactId}_${project.version}.jar</include>\r
+                                                                       </includes>\r
+                                                               </resource>\r
+                                                       </resources>\r
+                                               </configuration>\r
+                                       </execution>\r
+                               </executions>\r
+                       </plugin>\r
+               </plugins>\r
+       </build>\r
+       \r
 </project>
\ No newline at end of file