git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 29 May 2020 09:05:16 +0000 (09:05 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 29 May 2020 09:05:16 +0000 (09:05 +0000)
59 files changed:
server/-configuration/mediacube.json
server/-configuration/run-mediacube-server-mv.launch
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/Support.java
server/user.jobengine.executors/config/config-worker.xml
server/user.jobengine.executors/config/config.xml
server/user.jobengine.executors/jobtemplates/cancelable.xml
server/user.jobengine.executors/jobtemplates/copy-from-nexio.xml [deleted file]
server/user.jobengine.executors/jobtemplates/fake-concurrent.xml
server/user.jobengine.executors/jobtemplates/nexio-checker.xml [new file with mode: 0644]
server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableArchive.java [new file with mode: 0644]
server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableListBuilderStep.java [new file with mode: 0644]
server/user.jobengine.executors/src/hu/user/mediacube/steps/NEXIOCheckerStep.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/CancelableStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java
server/user.jobengine.executors/src/user/jobengine/server/steps/FakeNoParamsStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/FakeStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/NEXIOCheckerStep.java [deleted file]
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java
server/user.jobengine.osgi.db/generated/user/jobengine/db/BreakDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainCategoryDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainIndexDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/EntityBaseDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/FileTypeDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/FolderDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/HelperDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemTypeDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/JobDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/JobParametersDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MasterIdDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaDAO.java
server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaFileDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataElementDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataTypeDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/RemoteStoreDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneContentDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/SearchDefinitionDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/ShotDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreUriDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/UserInfoDAO_SJProfile0.ser
server/user.jobengine.osgi.db/generated/user/jobengine/db/WorkflowActionDAO_SJProfile0.ser
server/user.jobengine.osgi.db/migrations/scripts/008_missing_proxy_video_only.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/sql/5-CreateFTIndex.db2
server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java
server/user.jobengine.osgi.server/pages/login.zul
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStatusChangedEvent.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/LoginModel.java
server/user.jobengine.osgi.server/test/user/jobengine/server/IT/AMCTests.java [new file with mode: 0644]

index eecb410e2239a1fa5031f236aaa5a8508c34fa20..bd9278941947e61a4afa00939671d624ad4bd37b 100644 (file)
@@ -75,7 +75,7 @@
        ],\r
        "authentication": {\r
                "defaultUser": "root",\r
-               "defaultPassword": "password", \r
+               "defaultPassword": "password",\r
                "authEnabled": true,\r
                "adHost": "intra.mediavivantis.hu",\r
                "adNonSecurePort": 3268,\r
index 5de9b7fd245c671b79e61a530fd79eb193f68a26..4b613aeae02c495f037add3a4b605b2dcb207156 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/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty&#13;&#10;-Djava.io.tmpdir=c:\temp\jetty&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/&#13;&#10;-Djobengine.transcoder.template=MP4&#13;&#10;-Djobengine.transcoder.version=1&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB;&#13;&#10;-Djobengine.nexio.db.user=sa&#13;&#10;-Djobengine.nexio.db.password=resolve&#13;&#10;-Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis;&#13;&#10;-Djobengine.planair.db.user=MAM&#13;&#10;-Djobengine.planair.db.password=VDani&#13;&#10;-Dnexio.host=192.168.0.12&#13;&#10;-Djobengine.nexio.name=testnexioclips&#13;&#10;-Dnexio.useMOSGateway=false&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=rundowns181026&#13;&#10;-Djobengine.octopus.storyfolders.name=storyfolders181026&#13;&#10;-Djobengine.octopus.stories.name=stories181026&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.json&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.disable=true&#13;&#10;-Djobengine.mediafinder.external=false&#13;&#10;-Djobengine.mediacube.service.proxyroot=&quot;/opt&quot;&#13;&#10;-Djobengine.randomize.archives=true"/>\r
 <stringAttribute key="pde.version" value="3.3"/>\r
 <booleanAttribute key="show_selected_only" value="false"/>\r
-<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jackson2-provider@default:default,org.jboss.resteasy.jaxrs-api@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.omnifaces@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs-api@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.omnifaces@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
 <booleanAttribute key="tracing" value="false"/>\r
 <booleanAttribute key="useCustomFeatures" value="false"/>\r
 <booleanAttribute key="useDefaultConfigArea" value="true"/>\r
index 76df49e9821a05344047245ad6d9e53cfda96ef9..317432959542f595e09ca434db0c7c0cae5db19b 100644 (file)
@@ -138,6 +138,13 @@ public class Support {
                return null;\r
        }\r
 \r
+       @Test\r
+       public void getJSONFile() throws Exception {\r
+               Path filePath = Paths.get("//10.11.1.90/root/mediacube/data/ARCHIVE/14-03379-0092-1_.mov");\r
+               Path json = Paths.get(Paths.get(filePath.getParent().toString(), ".STATUS", filePath.getFileName().toString()) + ".json");\r
+               System.out.println(json);\r
+       }\r
+\r
        @Test\r
        public void mediaByName() throws Exception {\r
                Media media = manager.getMedia("DK_10103300_01");\r
index 21490264f457fd76858401e98b39f4560a75c7ce..d4dee36216c96cb6a34aaed01755784a1ce15e89 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <executors>\r
-       <executor className="user.jobengine.server.steps.CancelableStep" maxConcurrent="1" isRemote="true" />\r
+       <executor className="CancelableStep.java" maxConcurrent="1" isRemote="true" />\r
        <executor className="FakeStep.java" maxConcurrent="1" />\r
+       <executor className="NEXIOCheckerStep.java" maxConcurrent="1" />\r
 </executors>
\ No newline at end of file
index 4eec324f3fa9485bf4f30dd848ec7ec9bcab6ac9..e0183cdef2511311d04a51fe9b23337779fd9526 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <executors>\r
+       <executor className="CancelableStep.java" maxConcurrent="20" isRemote="false" />\r
        <executor className="FakeStep.java" maxConcurrent="20" isRemote="false" />\r
        <executor className="MergeStep.java" maxConcurrent="20" isRemote="false" />\r
        <executor className="user.jobengine.server.steps.ArchiveListBuilderStep" maxConcurrent="1" isRemote="false" />\r
index 689be15168afc9a48d466b7491b3f8ab5c6b6563..37185de767f65631ae2e414ac01e76d6fbfc096e 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <jobtemplate multiInstance="true">\r
        <commands>\r
-               <calljobstep remote="true" id="step1" type="user.jobengine.server.steps.CancelableStep" weight="1">\r
-               </calljobstep>\r
+               <calljobstep remote="true" type="CancelableStep.java" weight="1" />\r
        </commands>\r
 </jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/jobtemplates/copy-from-nexio.xml b/server/user.jobengine.executors/jobtemplates/copy-from-nexio.xml
deleted file mode 100644 (file)
index b7d6194..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true" name="Fake">\r
-<declarations>\r
-       <parameters>\r
-               <parameter name="storeName" type="java.lang.String"/>\r
-       </parameters>\r
-       <variables>\r
-               <variable name="newFiles" type="java.lang.ArrayList"/>\r
-               <variable name="updatedFiles" type="java.lang.ArrayList"/>\r
-       </variables>\r
-</declarations>\r
-<commands>\r
-       <calljobstep type="NEXIOCheckerStep.java" weight="1">\r
-               <inputs>\r
-                       <input>\r
-                               <parameter name="storeName" />\r
-                       </input>\r
-               </inputs>\r
-               <outputs>\r
-                       <output>\r
-                               <variable name="newFiles" />\r
-                       </output>\r
-                       <output>\r
-                               <variable name="updatedFiles" />\r
-                       </output>\r
-               </outputs>\r
-       </calljobstep>\r
-       <calljobstep type="SubmitDownloadStep.java" weight="1">\r
-               <inputs>\r
-                       <input>\r
-                               <variable name="storeName" />\r
-                       </input>\r
-                       <input>\r
-                               <variable name="newFiles" />\r
-                       </input>\r
-                       <input>\r
-                               <variable name="updatedFiles" />\r
-                       </input>\r
-               </inputs>\r
-       </calljobstep>\r
-</commands>\r
-</jobtemplate>
\ No newline at end of file
index 6edbf8390a70c6a22ea9aeefc08d8d00721fc746..db2185030c90f8fe898fcf97576e261ba4bb4d44 100644 (file)
@@ -13,7 +13,7 @@
                        </input>\r
                </inputs>\r
                <commands>\r
-                       <calljobstep id="step2" type="user.jobengine.server.steps.Fake1Step" weight="1">\r
+                       <calljobstep id="step2" type="user.jobengine.server.steps.FakeStep" weight="1">\r
                                <inputs>\r
                                        <input>\r
                                                <parameter name="itemID" />\r
diff --git a/server/user.jobengine.executors/jobtemplates/nexio-checker.xml b/server/user.jobengine.executors/jobtemplates/nexio-checker.xml
new file mode 100644 (file)
index 0000000..332068a
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" name="Fake">\r
+<declarations>\r
+       <parameters>\r
+               <parameter name="storeName" type="java.lang.String"/>\r
+               <parameter name="outputPath" type="java.lang.String"/>\r
+               <parameter name="limit" type="int"/>\r
+       </parameters>\r
+</declarations>\r
+<commands>\r
+       <calljobstep type="NEXIOCheckerStep.java" weight="1">\r
+               <inputs>\r
+                       <input>\r
+                               <parameter name="storeName" />\r
+                       </input>\r
+               </inputs>\r
+       </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableArchive.java b/server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableArchive.java
new file mode 100644 (file)
index 0000000..d4a62b1
--- /dev/null
@@ -0,0 +1,7 @@
+package hu.user.mediacube.steps;\r
+\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+public class DownloadableArchive extends BasicDBObject {\r
+\r
+}\r
diff --git a/server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableListBuilderStep.java b/server/user.jobengine.executors/src/hu/user/mediacube/steps/DownloadableListBuilderStep.java
new file mode 100644 (file)
index 0000000..a7d507f
--- /dev/null
@@ -0,0 +1,81 @@
+package hu.user.mediacube.steps;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+import java.nio.file.DirectoryStream;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+import user.jobengine.server.steps.JobStep;\r
+import user.jobengine.server.steps.StepEntry;\r
+\r
+public class DownloadableListBuilderStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+       //      private static final String UTF8 = "utf-8";\r
+       private static final String STATUSFOLDER = ".STATUS";\r
+       private static final String JSONEXT = ".json";\r
+       private static final String CATCHEDEXT = ".catched";\r
+\r
+       public static final String ITEM_TITLE = "itemTitle";\r
+       public static final String ITEM_HOUSEID = "itemHouseId";\r
+       public static final String ITEM_DESCRIPTION = "itemDescription";\r
+       public static final String MEDIA_HOUSEID = "mediaHouseId";\r
+       public static final String MEDIA_TITLE = "mediaTitle";\r
+       public static final String MEDIA_DESCRIPTION = "mediaDescription";\r
+       public static final String MEDIA_TYPE = "mediaType";\r
+       private static final String DURATION = "duration";\r
+       private static final String EXISTING_MEDIAID = "existingMediaId";\r
+\r
+       @StepEntry\r
+       public Object[] execute(String sourcePath, int limit, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
+               DirectoryStream<Path> directoryStream = null;\r
+               try {\r
+                       directoryStream = Files.newDirectoryStream(Paths.get(sourcePath));\r
+                       for (Path p : directoryStream) {\r
+                               processPathItem(p);\r
+                       }\r
+               } catch (Exception e) {\r
+                       logger.error(getSessionMarker(), e.getMessage());\r
+               } finally {\r
+                       if (directoryStream != null) {\r
+                               try {\r
+                                       directoryStream.close();\r
+                               } catch (IOException e) {\r
+                               }\r
+                       }\r
+               }\r
+\r
+               return null;\r
+       }\r
+\r
+       private String getMetadata(BasicDBObject dbObject, String fieldName) {\r
+               String result = null;\r
+               if (dbObject.containsKey(fieldName))\r
+                       result = dbObject.getString(fieldName);\r
+               return result;\r
+       }\r
+\r
+       private boolean processPathItem(Path mediaFilePath) {\r
+               File mediaFile = mediaFilePath.toFile();\r
+\r
+               //              if (mediaFile.length() > 0)\r
+               //                      return false;\r
+\r
+               if (mediaFile.isDirectory()) {\r
+                       return false;\r
+               }\r
+\r
+               Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), STATUSFOLDER);\r
+               Path catchedFilePath = Paths.get(dotStorePath.toString(), mediaFile.getName() + CATCHEDEXT);\r
+               File catchedFile = catchedFilePath.toFile();\r
+               return true;\r
+       }\r
+}\r
diff --git a/server/user.jobengine.executors/src/hu/user/mediacube/steps/NEXIOCheckerStep.java b/server/user.jobengine.executors/src/hu/user/mediacube/steps/NEXIOCheckerStep.java
new file mode 100644 (file)
index 0000000..ec8177d
--- /dev/null
@@ -0,0 +1,112 @@
+package hu.user.mediacube.steps;\r
+\r
+import java.io.IOException;\r
+import java.sql.Timestamp;\r
+import java.util.Iterator;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.nexio.api.Clip;\r
+import user.commons.nexio.api.ClipNotFoundException;\r
+import user.commons.nexio.api.Controller;\r
+import user.commons.nexio.api.Mediabase;\r
+import user.commons.nexio.server.protocol.ProtocolException;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.Store;\r
+import user.jobengine.server.steps.EscortFiles;\r
+import user.jobengine.server.steps.JobStep;\r
+import user.jobengine.server.steps.StepEntry;\r
+\r
+public class NEXIOCheckerStep extends JobStep {\r
+       private static final String DOT_MXF = ".MXF";\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       private DownloadableArchive createArchive(String title, Timestamp modified, Timestamp created, int duration) {\r
+               DownloadableArchive archive = new DownloadableArchive();\r
+               archive.append("title", title);\r
+               archive.append("fileName", title + DOT_MXF);\r
+               archive.append("modified", modified);\r
+               archive.append("created", created);\r
+               archive.append("duration", duration);\r
+               return archive;\r
+       }\r
+\r
+       @StepEntry\r
+       public Object[] execute(String storeName, String outputPath, int limit) throws Exception {\r
+               Store store = getManager().getStore(storeName);\r
+               if (store == null)\r
+                       throw new NullPointerException("Store not available: " + storeName);\r
+\r
+               StoreUri storeUri = store.getSourceStoreUri(RemoteStoreProtocol.NEXIO);\r
+               if (storeUri == null)\r
+                       throw new NullPointerException("NEXIO StoreUri not available on: " + storeName);\r
+\r
+               Controller controller = null;\r
+\r
+               try {\r
+                       if (storeUri.getPortNumber() == 0)\r
+                               controller = new Controller(storeUri.getRootPath(), storeUri.getPortNumber());\r
+                       else\r
+                               controller = new Controller(storeUri.getRootPath());\r
+                       controller.connect();\r
+                       Mediabase mediabase = controller.getMediabase();\r
+                       Iterator<Clip> clips = mediabase.getClips();\r
+                       processClips(outputPath, limit, clips);\r
+               } catch (Exception e) {\r
+                       logger.error(getSessionMarker(), e.getMessage());\r
+                       throw e;\r
+               } finally {\r
+                       if (controller != null)\r
+                               controller.disconnect();\r
+               }\r
+\r
+               return null;\r
+       }\r
+\r
+       private void processClips(String outputPath, int limit, Iterator<Clip> clips) throws ClipNotFoundException, IOException, ProtocolException {\r
+               int count = limit;\r
+               while (clips.hasNext()) {\r
+\r
+                       //megszakithatosag\r
+                       if (getJobRuntime().isWaitingCancel())\r
+                               break;\r
+\r
+                       Clip clip = clips.next();\r
+                       String title = clip.getXid().get();\r
+                       Timestamp modified = Timestamp.from(clip.getModifiedTimestamp().toInstant());\r
+                       Timestamp created = Timestamp.from(clip.getRecordDateTimestamp().toInstant());\r
+                       int duration = clip.getDuration();\r
+\r
+                       Media media = getManager().getMedia(title);\r
+                       boolean create = media == null || media.getLength() != duration || !media.getModified().equals(modified) || !media.getCreated().equals(created);\r
+                       if (create) {\r
+                               DownloadableArchive archive = createArchive(title, modified, created, duration);\r
+                               //letezik : mar hozzadva\r
+                               if (tryAdd(outputPath, archive))\r
+                                       count--;\r
+                       }\r
+\r
+                       //vegtelen : limit=-1\r
+                       if (count == 0) {\r
+                               logger.info("Limit reached: {}", limit);\r
+                               break;\r
+                       }\r
+\r
+               }\r
+       }\r
+\r
+       private boolean tryAdd(String outputPath, DownloadableArchive archive) throws IOException {\r
+               boolean result = false;\r
+               String fileName = archive.getString("fileName");\r
+               if (!EscortFiles.isMetadataExists(outputPath, fileName)) {\r
+                       String metadata = archive.toPrettyString("");\r
+                       EscortFiles.createMetadata(outputPath, fileName, metadata);\r
+                       result = true;\r
+               }\r
+               return result;\r
+       }\r
+\r
+}\r
index 79e0a57b5313629103ddd69c28ca917a0616be69..67abe1424e5f8e47363d2dd54f071d0e212dfd0b 100644 (file)
@@ -1,15 +1,35 @@
 package user.jobengine.server.steps;\r
 \r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.fasterxml.jackson.databind.ObjectMapper;\r
+\r
+import user.commons.rest.ServiceObjectMapper;\r
+\r
 public class CancelableStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
        int count = 10;\r
+       private ObjectMapper mapper = ServiceObjectMapper.getMapper();\r
 \r
        @StepEntry\r
        public Object[] execute() throws Exception {\r
+\r
+               //              DownloadableArchive a = new DownloadableArchive();\r
+               //              Media media = getManager().createMedia("Generic", "Name", "description", "houseId");\r
+               //              a.setMedia(media);\r
+               //\r
+               //              String m1 = mapper.writeValueAsString(media);\r
+               //              Media m2 = mapper.readValue(m1, Media.class);\r
+               //\r
+               //              String prettyString = mapper.writeValueAsString(a);\r
+               //              DownloadableArchive b = mapper.readValue(prettyString, DownloadableArchive.class);\r
+               //              Media media2 = b.getMedia();\r
                try {\r
                        for (int i = 0; i < count; i++) {\r
                                if (getJobRuntime().isWaitingCancel())\r
                                        break;\r
-                               Thread.sleep(1000);\r
+                               Thread.sleep(100);\r
                                setProgress((i + 1) * count);\r
                        }\r
                } catch (Exception e) {\r
index 9194123df38d2b3982e2dd766f5ca94a1deed638..339d0417a36888d2dcd2b4427d407832bd682b23 100644 (file)
@@ -14,14 +14,12 @@ import user.commons.MediaCubeUndoMarker;
 import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.Media;\r
-import user.jobengine.db.Store;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 \r
 public class CreateMissingLowresStep extends JobStep {\r
        private static final Logger logger = LogManager.getLogger();\r
        private MediaCubeMarker marker;\r
-       private Store highResStore;\r
 \r
        @StepEntry\r
        public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
@@ -30,7 +28,6 @@ public class CreateMissingLowresStep extends JobStep {
                DB db = NoSQLUtils.getNoSQLDB();\r
                DBCollection collection = db.getCollection("missing_lowres");\r
                IItemManager manager = jobEngine.getItemManager();\r
-               highResStore = manager.getSystemStore(false);\r
                Media media = getFirstUntranscodedMedia(manager, collection);\r
 \r
                try {\r
index 298b456dfb66e227dba9e7ca8ce93fc59054dfcc..0662e64f4f922191991ffef062b42a358f1190e8 100644 (file)
@@ -37,6 +37,7 @@ import user.commons.StoreUri;
 import user.commons.remotestore.FtpDirectoryLister;\r
 \r
 public class EscortFiles {\r
+       private static final String DOT_JSON = ".json";\r
        private static final Logger logger = LogManager.getLogger();\r
        private static final String EXTENDEDAGENCY = "ExtendedAgency";\r
        private static final String EXTENDEDDESCRIPTION = "ExtendedDescription";\r
@@ -65,9 +66,9 @@ public class EscortFiles {
                return String.format(KILLDATE_FILENAME, fileName, composeKillDate(days));\r
        }\r
 \r
-       public static void createMetadata(String filePath, String fileName, String metadata, Marker marker) throws IOException {\r
+       public static void createMetadata(String filePath, String fileName, String metadata) throws IOException {\r
                ensureUNCFolder(filePath, STATUSFOLDER);\r
-               String metadataFileName = fileName + ".json";\r
+               String metadataFileName = fileName + DOT_JSON;\r
                Path metadataPath = Paths.get(filePath, STATUSFOLDER, metadataFileName);\r
                Files.write(metadataPath, metadata.getBytes());\r
        }\r
@@ -149,6 +150,14 @@ public class EscortFiles {
                ensureUNCFolder(statusPath);\r
        }\r
 \r
+       public static boolean isMetadataExists(String filePath, String fileName) throws IOException {\r
+               boolean result = false;\r
+               String metadataFileName = fileName + DOT_JSON;\r
+               Path metadataPath = Paths.get(filePath, STATUSFOLDER, metadataFileName);\r
+               result = metadataPath.toFile().exists();\r
+               return result;\r
+       }\r
+\r
        public static void setNEXIOKillDate(int killDateDays, String targetFileName, String nexioAgency, StoreUri targetUri) throws Exception {\r
                OutputStream outStream = null;\r
                try {\r
index cdf70a2f56cd42594876f8948fe29a0d3306987c..1c17c973019ba46837b2e2d307fde7de2241f5c5 100644 (file)
@@ -3,13 +3,13 @@ package user.jobengine.server.steps;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
-import user.commons.ListUtils;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 \r
 public class FakeNoParamsStep extends JobStep {\r
        private static final String CHILD_TITLE = "Párhuzamosított alfolyamat";\r
-       private static final String CHILD_TEMPLATE = "fake-concurrent.xml";\r
+       //      private static final String CHILD_TEMPLATE = "fake-concurrent.xml";\r
+       private static final String CHILD_TEMPLATE = "cancelable.xml";\r
        private static final Logger logger = LogManager.getLogger();\r
        int count = 2;\r
 \r
@@ -17,7 +17,8 @@ public class FakeNoParamsStep extends JobStep {
        public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
                if (jobRuntime.forkPrepare()) {\r
                        for (int i = 0; i < count; i++) {\r
-                               jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, CHILD_TITLE, ListUtils.asMap("itemID", i));\r
+                               //jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, CHILD_TITLE, ListUtils.asMap("itemID", i));\r
+                               jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, CHILD_TITLE, null);\r
                        }\r
                }\r
 \r
index aa9d1540cfdb941afc6e433fd95cafee804760d9..cd9d1da641be46cece6485bbeeff1de172a29957 100644 (file)
@@ -15,6 +15,7 @@ public class FakeStep extends JobStep {
                logger.info(getMarker(), "Starting params: {}");\r
 \r
                try {\r
+                       getJobRuntime().setDescription("Teszt");\r
                        int step = 100 / count;\r
                        for (int i = 0; i < count; i++) {\r
                                if (!canContinue())\r
index b5df0ee4c9d516e404d5f4bca34cbe18c516a565..975c87a08968c3ca6ef3ffae2f96a044260b3391 100644 (file)
@@ -216,14 +216,6 @@ public class HSMMigrateStep extends JobStep {
                        return false;\r
                }\r
 \r
-               IItemManager manager = getManager();\r
-               MediaFileDAO mfDAO = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);\r
-               List<IEntityBase> mediaFiles = mfDAO.getByHouseId(source.getFileName().toString());\r
-               if (mediaFiles != null && mediaFiles.size() > 0) {\r
-                       logger.warn(marker, "Már archivált: {}", hsmFileName);\r
-                       return false;\r
-               }\r
-\r
                File sourceFile = source.toFile();\r
                File targetFile = target.toFile();\r
 \r
@@ -267,9 +259,17 @@ public class HSMMigrateStep extends JobStep {
 \r
        private boolean processHSMFile(String volumeName, String hsmFileName, Path sourceFilePath, Path targetFilePath) throws Exception {\r
                int repeat = 4;\r
-               boolean successCopy = true;\r
+               boolean successCopy = false;\r
+\r
+               IItemManager manager = getManager();\r
+               MediaFileDAO mfDAO = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);\r
+               List<IEntityBase> mediaFiles = mfDAO.getByHouseId(sourceFilePath.getFileName().toString());\r
+               if (mediaFiles != null && mediaFiles.size() > 0) {\r
+                       logger.warn(marker, "Már archivált: {}", hsmFileName);\r
+                       return false;\r
+               }\r
+\r
                if (prepareCopy(hsmFileName, sourceFilePath, targetFilePath)) {\r
-                       successCopy = false;\r
                        while (repeat > 0) {\r
                                try {\r
                                        resumeableCopy(sourceFilePath, targetFilePath);\r
@@ -287,7 +287,7 @@ public class HSMMigrateStep extends JobStep {
                        String metadata = null;\r
                        try {\r
                                metadata = createMetadata(volumeName, hsmFileName).toPrettyString("");\r
-                               EscortFiles.createMetadata(targetFilePath.getParent().toString(), targetFilePath.getFileName().toString(), metadata, marker);\r
+                               EscortFiles.createMetadata(targetFilePath.getParent().toString(), targetFilePath.getFileName().toString(), metadata);\r
                                //saveFileHistory(contentFileName);\r
 \r
                        } catch (Exception e) {\r
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/NEXIOCheckerStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/NEXIOCheckerStep.java
deleted file mode 100644 (file)
index fc1a8e0..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.sql.Timestamp;\r
-import java.time.Instant;\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import user.commons.StoreUri;\r
-import user.commons.nexio.api.Clip;\r
-import user.commons.nexio.api.Controller;\r
-import user.commons.nexio.api.Mediabase;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.db.Store;\r
-\r
-public class NEXIOCheckerStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(String storeName, int limit) throws Exception {\r
-               List<Media> newItems = new ArrayList<>();\r
-               List<Media> updatedItems = new ArrayList<>();\r
-               Object[] result = Arrays.asList(newItems, updatedItems).toArray();\r
-               IItemManager manager = getManager();\r
-\r
-               Store store = manager.getStore(storeName);\r
-               if (store == null)\r
-                       throw new NullPointerException("Store not available: " + storeName);\r
-\r
-               StoreUri storeUri = store.getSourceStoreUri(RemoteStoreProtocol.NEXIO);\r
-               if (storeUri == null)\r
-                       throw new NullPointerException("NEXIO StoreUri not available on: " + storeName);\r
-\r
-               Controller controller = null;\r
-\r
-               try {\r
-                       controller = new Controller(storeUri.getRootPath(), storeUri.getPortNumber());\r
-                       controller.connect();\r
-                       Mediabase mediabase = controller.getMediabase();\r
-                       Iterator<Clip> clips = mediabase.getClips();\r
-                       int count = limit;\r
-                       while (clips.hasNext()) {\r
-\r
-                               if (getJobRuntime().isWaitingCancel())\r
-                                       break;\r
-\r
-                               Clip clip = clips.next();\r
-                               String title = clip.getXid().get();\r
-                               Timestamp modified = Timestamp.from(clip.getModifiedTimestamp().toInstant());\r
-                               Timestamp created = Timestamp.from(clip.getRecordDateTimestamp().toInstant());\r
-                               int duration = clip.getDuration();\r
-\r
-                               Media media = manager.getMedia(title);\r
-                               if (media == null) {\r
-                                       media = new Media();\r
-                                       media.setModified(modified);\r
-                                       media.setCreated(created);\r
-                                       media.setArchived(Timestamp.from(Instant.now()));\r
-                                       media.setTitle(title);\r
-                                       media.setDescription(title);\r
-                                       media.setLength(duration);\r
-                                       newItems.add(media);\r
-                                       count--;\r
-                               } else {\r
-                                       if (media.getLength() != duration || !media.getModified().equals(modified)) {\r
-                                               media.setArchived(Timestamp.from(Instant.now()));\r
-                                               media.setModified(modified);\r
-                                               media.setLength(duration);\r
-                                               updatedItems.add(media);\r
-                                               count--;\r
-                                       }\r
-                               }\r
-\r
-                               //ha volt limit, akkor egyszer csak 0 lesz, ha nem volt akkor alapbol -1\r
-                               if (count == 0) {\r
-                                       logger.info("Limit reached: {}", limit);\r
-                                       break;\r
-                               }\r
-\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.error(e);\r
-               } finally {\r
-                       if (controller != null)\r
-                               controller.disconnect();\r
-               }\r
-\r
-               if (newItems.size() == 0 && updatedItems.size() == 0)\r
-                       cancel();\r
-\r
-               return result;\r
-       }\r
-\r
-}\r
index b7e82a36480bb3ae31822cc37d607a382025a983..b16fc1a3eaeae391873f687234875dfa6a91ee54 100644 (file)
@@ -52,8 +52,9 @@ public class TSMBackupStep extends JobStep {
 \r
                        setAndCheck(archiveItem, mediaCubeMedia, getEngine());\r
 \r
-                       getJobRuntime().setDescription(String.format("%s: %s", getJobRuntime().getDescription(), details));\r
+                       getJobRuntime().setDescription(details);\r
 \r
+                       //TODO mxf helyett az osszes kiterjesztest!!!!!\r
                        //A dupla ellenorzes a napon beluli ismetlesek miatt kell\r
                        long existingMediaId = archiveItem.getExistingMediaId();\r
                        if (sourceMediaFile.length() == 0 && existingMediaId == 0) {\r
index c5c009bb6025fb7db5e9994889f133b7a4061211..c372d0268fb1a9c11bb6ba826e4cdba0a1898b36 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/BreakDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/BreakDAO_SJProfile0.ser differ
index 7be7747e98400f7acf20f62bd1e3535cbc2922f0..de4d57b90d7aa78dca4168dbc35051117fb96771 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainCategoryDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainCategoryDAO_SJProfile0.ser differ
index 2d2deeabd878312234a52108adca01023802a9fc..0f3df58daf4c9d1c27f1dfe058cebadf926524d1 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainDAO_SJProfile0.ser differ
index 5b5d4de8b1ff0d6b80788fbd5ac76ecd058cb7fb..f44597f0bda0c01c865f56737e8071c9686401cd 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainIndexDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/DomainIndexDAO_SJProfile0.ser differ
index 97e9257caec9efafd54b1ef9bb6e8dd0d287d7f9..676f061df7fe9cd310f8d24f930a2e6eb1ab263e 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/EntityBaseDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/EntityBaseDAO_SJProfile0.ser differ
index e096a8d7ee5f74b17d52d8455be59f8403c5aa10..bdcf6fa6748f84111440eed851fdc79e4dd4c847 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/FileTypeDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/FileTypeDAO_SJProfile0.ser differ
index b0eca6807b6fc1567738d0d04e8c8f67f4016b0b..3e7ddf78e78c4b92d4e627a93efc687019ac9e45 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/FolderDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/FolderDAO_SJProfile0.ser differ
index 258f6ef9ee24c4ae40d93652493f2fc976bd4ddd..5cc27e39283526a1587dae724336fbe3ca97f243 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/HelperDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/HelperDAO_SJProfile0.ser differ
index 066db69fc43e7d82bab9476ee11ef83d8457479b..1fbc0c8a69ff779248fbfb19d483630936a12299 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemDAO_SJProfile0.ser differ
index 288ed7ae6335c3690d19121f7ac037930abaa457..c0d5873b00dbb65dd2ed9a0d0e69dddb2e4c965c 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemTypeDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/ItemTypeDAO_SJProfile0.ser differ
index b71a6ec619669d6414bb1e9f3a48f1284b5bc6f3..75ce30f041e83c33922bc4e8efbb4e4da182a638 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/JobDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/JobDAO_SJProfile0.ser differ
index 2a5aeb0247cde724a23d3f191b6b0796cdfe683f..33857e114a97d3621f503f353587e255da3d0fb3 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/JobParametersDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/JobParametersDAO_SJProfile0.ser differ
index 38eb45bdf0f74d575e9e123fa8d0fa8b507a18fb..8b3f2052daaf8139131face98a1482ae4c1d75a8 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MasterIdDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MasterIdDAO_SJProfile0.ser differ
index 8c38cf348596280f4f141766a433410c41d8de2a..5a539709e30ac739be6831eedfa8fce5bad1bee3 100644 (file)
@@ -18,6 +18,7 @@ extends sqlj.runtime.ref.ResultSetIterImpl
 implements sqlj.runtime.NamedIterator
 {
   private int posterNdx;
+  private int modifiedNdx;
   private int archivedNdx;
   private int createdNdx;
   private int lengthNdx;
@@ -40,6 +41,7 @@ implements sqlj.runtime.NamedIterator
     lengthNdx = findColumn("length");
     createdNdx = findColumn("created");
     archivedNdx = findColumn("archived");
+    modifiedNdx = findColumn("modified");
     posterNdx = findColumn("poster");
   }
   public MediaIter(sqlj.runtime.profile.RTResultSet resultSet, int fetchSize, int maxRows) 
@@ -55,6 +57,7 @@ implements sqlj.runtime.NamedIterator
     lengthNdx = findColumn("length");
     createdNdx = findColumn("created");
     archivedNdx = findColumn("archived");
+    modifiedNdx = findColumn("modified");
     posterNdx = findColumn("poster");
   }
   public long id() 
@@ -102,6 +105,11 @@ implements sqlj.runtime.NamedIterator
   {
     return resultSet.getTimestamp(archivedNdx);
   }
+  public Timestamp modified() 
+    throws java.sql.SQLException 
+  {
+    return resultSet.getTimestamp(modifiedNdx);
+  }
   public byte[] poster() 
     throws java.sql.SQLException 
   {
@@ -112,7 +120,7 @@ implements sqlj.runtime.NamedIterator
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:10^178*/
+/*@lineinfo:user-code*//*@lineinfo:10^198*/
 
 @SuppressWarnings("unused")
 class MediaDAO extends EntityBaseDAO {
@@ -167,6 +175,7 @@ class MediaDAO extends EntityBaseDAO {
                        entity.setLength(iterator.length());
                        entity.setCreated(iterator.created());
                        entity.setArchived(iterator.archived());
+                       entity.setModified(iterator.modified());
                        entity.setPoster(iterator.poster());
 
                        if (result == null)
@@ -180,10 +189,10 @@ class MediaDAO extends EntityBaseDAO {
        @Override
        protected ResultSetIterImpl selectByKey(DefaultContext context, long id) throws SQLException{
                MediaIter iter = null;
-               /*@lineinfo:generated-code*//*@lineinfo:78^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:79^2*/
 
 //  ************************************************************
-//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, POSTER FROM MEDIA WHERE ID = :id  };
+//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, MODIFIED, POSTER FROM MEDIA WHERE ID = :id  };
 //  ************************************************************
 
 {
@@ -208,17 +217,17 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:78^146*/
+/*@lineinfo:user-code*//*@lineinfo:79^156*/
                return iter;
        }
 
        @Override
        protected ResultSetIterImpl selectByForeignKey(DefaultContext context, long id) throws SQLException{
                MediaIter iter = null;
-               /*@lineinfo:generated-code*//*@lineinfo:85^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:86^2*/
 
 //  ************************************************************
-//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, POSTER FROM MEDIA WHERE ITEMID = :id  };
+//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, MODIFIED, POSTER FROM MEDIA WHERE ITEMID = :id  };
 //  ************************************************************
 
 {
@@ -243,17 +252,16 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:85^150*/
+/*@lineinfo:user-code*//*@lineinfo:86^160*/
                return iter;
        }
        
-       @Override
-       protected ResultSetIterImpl selectAll(DefaultContext context) throws SQLException{
+       public ResultSetIterImpl selectByTitle(DefaultContext context, String title) throws SQLException{
                MediaIter iter = null;
                /*@lineinfo:generated-code*//*@lineinfo:92^2*/
 
 //  ************************************************************
-//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, POSTER FROM MEDIA  };
+//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, MODIFIED, POSTER FROM MEDIA WHERE TITLE = :title  };
 //  ************************************************************
 
 {
@@ -264,6 +272,41 @@ class MediaDAO extends EntityBaseDAO {
   synchronized (__sJT_execCtx) {
     sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 2);
     try 
+    {
+      __sJT_stmt.setString(1, title);
+      iter = new MediaIter(__sJT_execCtx.executeQuery(), __sJT_execCtx.getFetchSize(), __sJT_execCtx.getMaxRows());
+    }
+    finally 
+    {
+      __sJT_execCtx.releaseStatement();
+    }
+  }
+}
+
+
+//  ************************************************************
+
+/*@lineinfo:user-code*//*@lineinfo:92^162*/
+               return iter;
+       }
+       
+       @Override
+       protected ResultSetIterImpl selectAll(DefaultContext context) throws SQLException{
+               MediaIter iter = null;
+               /*@lineinfo:generated-code*//*@lineinfo:99^2*/
+
+//  ************************************************************
+//  #sql [context] iter = { SELECT ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, CREATED, ARCHIVED, MODIFIED, POSTER FROM MEDIA  };
+//  ************************************************************
+
+{
+  sqlj.runtime.ConnectionContext __sJT_connCtx = context;
+  if (__sJT_connCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_DEFAULT_CONN_CTX();
+  sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
+  if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
+  synchronized (__sJT_execCtx) {
+    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 3);
+    try 
     {
       iter = new MediaIter(__sJT_execCtx.executeQuery(), __sJT_execCtx.getFetchSize(), __sJT_execCtx.getMaxRows());
     }
@@ -277,13 +320,13 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:92^131*/
+/*@lineinfo:user-code*//*@lineinfo:99^141*/
                return iter;
        }
        
        @Override
        protected void delete(DefaultContext context, long id) throws SQLException{
-               /*@lineinfo:generated-code*//*@lineinfo:98^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:105^2*/
 
 //  ************************************************************
 //  #sql [context] { DELETE FROM MEDIA WHERE ID = :id  };
@@ -295,7 +338,7 @@ class MediaDAO extends EntityBaseDAO {
   sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
   if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
   synchronized (__sJT_execCtx) {
-    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 3);
+    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 4);
     try 
     {
       __sJT_stmt.setLong(1, id);
@@ -311,12 +354,12 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:98^52*/
+/*@lineinfo:user-code*//*@lineinfo:105^52*/
        }
        
        @Override
        protected void truncateTable(DefaultContext context) throws SQLException{
-               /*@lineinfo:generated-code*//*@lineinfo:103^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:110^2*/
 
 //  ************************************************************
 //  #sql [context] { TRUNCATE TABLE MEDIA DROP STORAGE IGNORE DELETE TRIGGERS IMMEDIATE  };
@@ -328,7 +371,7 @@ class MediaDAO extends EntityBaseDAO {
   sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
   if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
   synchronized (__sJT_execCtx) {
-    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 4);
+    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 5);
     try 
     {
       __sJT_execCtx.executeUpdate();
@@ -343,7 +386,7 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:103^86*/
+/*@lineinfo:user-code*//*@lineinfo:110^86*/
        }
        
        @Override
@@ -358,11 +401,12 @@ class MediaDAO extends EntityBaseDAO {
                long length = obj.getLength();
                byte[] poster = obj.getPoster();
                Timestamp archived = obj.getArchived();
+               Timestamp modified = obj.getModified();
 
-               /*@lineinfo:generated-code*//*@lineinfo:119^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:127^2*/
 
 //  ************************************************************
-//  #sql [context] { UPDATE MEDIA SET TITLE = :title, DESCRIPTION = :description, ITEMID = :itemId, ITEMTYPEID = :itemTypeId, HOUSEID = :houseId, LENGTH = :length, POSTER = :poster, ARCHIVED = :archived WHERE ID = :id  };
+//  #sql [context] { UPDATE MEDIA SET TITLE = :title, DESCRIPTION = :description, ITEMID = :itemId, ITEMTYPEID = :itemTypeId, HOUSEID = :houseId, LENGTH = :length, POSTER = :poster, ARCHIVED = :archived, MODIFIED = :modified WHERE ID = :id  };
 //  ************************************************************
 
 {
@@ -371,7 +415,7 @@ class MediaDAO extends EntityBaseDAO {
   sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
   if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
   synchronized (__sJT_execCtx) {
-    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 5);
+    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 6);
     try 
     {
       __sJT_stmt.setString(1, title);
@@ -382,7 +426,8 @@ class MediaDAO extends EntityBaseDAO {
       __sJT_stmt.setLong(6, length);
       __sJT_stmt.setBytes(7, poster);
       __sJT_stmt.setTimestamp(8, archived);
-      __sJT_stmt.setLong(9, id);
+      __sJT_stmt.setTimestamp(9, modified);
+      __sJT_stmt.setLong(10, id);
       __sJT_execCtx.executeUpdate();
     }
     finally 
@@ -395,7 +440,7 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:119^216*/
+/*@lineinfo:user-code*//*@lineinfo:127^238*/
        }
        
        @Override
@@ -410,11 +455,12 @@ class MediaDAO extends EntityBaseDAO {
                long length = obj.getLength();
                byte[] poster = obj.getPoster();
                Timestamp archived = obj.getArchived();
+               Timestamp modified = obj.getModified();
                
-               /*@lineinfo:generated-code*//*@lineinfo:135^2*/
+               /*@lineinfo:generated-code*//*@lineinfo:144^2*/
 
 //  ************************************************************
-//  #sql [context] { INSERT INTO MEDIA (ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, POSTER, ARCHIVED) VALUES (:id, :title, :description, :itemId, :itemTypeId, :houseId, :length, :poster, :archived)  };
+//  #sql [context] { INSERT INTO MEDIA (ID, TITLE, DESCRIPTION, ITEMID, ITEMTYPEID, HOUSEID, LENGTH, POSTER, ARCHIVED, MODIFIED) VALUES (:id, :title, :description, :itemId, :itemTypeId, :houseId, :length, :poster, :archived, :modified)  };
 //  ************************************************************
 
 {
@@ -423,7 +469,7 @@ class MediaDAO extends EntityBaseDAO {
   sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
   if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
   synchronized (__sJT_execCtx) {
-    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 6);
+    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, MediaDAO_SJProfileKeys.getKey(0), 7);
     try 
     {
       __sJT_stmt.setLong(1, id);
@@ -435,6 +481,7 @@ class MediaDAO extends EntityBaseDAO {
       __sJT_stmt.setLong(7, length);
       __sJT_stmt.setBytes(8, poster);
       __sJT_stmt.setTimestamp(9, archived);
+      __sJT_stmt.setTimestamp(10, modified);
       __sJT_execCtx.executeUpdate();
     }
     finally 
@@ -447,11 +494,11 @@ class MediaDAO extends EntityBaseDAO {
 
 //  ************************************************************
 
-/*@lineinfo:user-code*//*@lineinfo:135^213*/
+/*@lineinfo:user-code*//*@lineinfo:144^234*/
        }
        
        /**
-        * Besz\ufffdrja az Item objektumhoz kapcsol\ufffdd\ufffd statikus/dinamikus Media adatokat. 
+        * Besz\ufffd\ufffd\ufffdrja az Item objektumhoz kapcsol\ufffd\ufffd\ufffdd\ufffd\ufffd\ufffd statikus/dinamikus Media adatokat. 
         */
        void addAll(DefaultContext context, IEntityBase entity) throws SQLException {
                manager.traceIn();
index d893d8f48b2442c248b6400e5f620352e7c77552..14bcb65a8fba47883997a7b28e7ee2f5252c64cd 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaDAO_SJProfile0.ser differ
index 6220aa0deeaf1e320e41830073363b4b2b8b57a5..6704899322e26ae4105b229cca32e422a535ff33 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaFileDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MediaFileDAO_SJProfile0.ser differ
index 9af1cb3625cd524d7f3a0cfd7927e36e037fb724..3d961db881496b1ac41fe10db7dd0f482ba979a8 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataDAO_SJProfile0.ser differ
index d8709a2d6dcd1ca1b55739f638d137daf782e6bf..e068336819f541044a091fe7bfc8350fea75056a 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataElementDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataElementDAO_SJProfile0.ser differ
index 088abbbadfd8384a23be60deda2294acf09f63b7..e52849734cc345ce3e0c1315fc2f780be9a1ce96 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataTypeDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/MetadataTypeDAO_SJProfile0.ser differ
index 387089de30e7b46817353142b1e2fe31b63a7d9b..8b93baf420701061e8b96601767944c2b68a810b 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/RemoteStoreDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/RemoteStoreDAO_SJProfile0.ser differ
index f3acac86a34d2cab9bc4b7988437d4e2fe66a153..6d49a6a5fa9f2f382984f4ab6ca0ee6b8f8daa19 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneContentDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneContentDAO_SJProfile0.ser differ
index c4b374e03992c58adda9c28cc635c7859ad1fc6c..b3491513eaeec5c07abd61802d28bf57c217eb3d 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/SceneDAO_SJProfile0.ser differ
index a4008ab99082f15839b7f2b784055e1d04947572..31606588121b7d8c43f6d2440268621340b70365 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/SearchDefinitionDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/SearchDefinitionDAO_SJProfile0.ser differ
index 2d80dce49e498d9753cb4e916ce6da8075d3dfbe..720879023ef0489b45e0c559145864663352a3b8 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/ShotDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/ShotDAO_SJProfile0.ser differ
index fcda04769dab264c2fbdacb2be3e184834d0ac58..9e2662599d2c28a49d203b8775d8be7a584d1fc0 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreDAO_SJProfile0.ser differ
index 55c219d6d755df56649ffb57084feb7c3247d578..e503e68b6d8ff5b975302f2e35912139f0061c2d 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreUriDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/StoreUriDAO_SJProfile0.ser differ
index 91a0983ac53e401335eb6d9630c143d6189ea9ca..6111df5c45d03d4efa20fe18d989bba3b804f347 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/UserInfoDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/UserInfoDAO_SJProfile0.ser differ
index 50b109846b77d50841b68748cde5b68d78cb66b4..a0cd23edd2e4965a1feeaabf0bf7df499c9ea4ff 100644 (file)
Binary files a/server/user.jobengine.osgi.db/generated/user/jobengine/db/WorkflowActionDAO_SJProfile0.ser and b/server/user.jobengine.osgi.db/generated/user/jobengine/db/WorkflowActionDAO_SJProfile0.ser differ
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/008_missing_proxy_video_only.sql b/server/user.jobengine.osgi.db/migrations/scripts/008_missing_proxy_video_only.sql
new file mode 100644 (file)
index 0000000..4fbb1c8
--- /dev/null
@@ -0,0 +1,49 @@
+--
+--    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 missing proxy view, select video only
+-- Migration SQL that makes the change goes here.
+
+DROP VIEW VW_MISSING_PROXY_IDS
+@
+
+CREATE VIEW VW_MISSING_PROXY_IDS AS
+select m.id as mediaid
+from vw_mediafiles v, mediafile mf, filetype ft, media m
+where
+  m.id = mf.mediaid and
+  mf.mediaid = v.mediaid and
+  v.mediafilecount = 1 and
+  mf.filetypeid = ft.id and
+  ft.name = 'High-res' and
+  UPPER(RIGHT(mf.HOUSEID, 3)) IN ('.TS', 'M4V', 'MOV', 'MP4', 'MPG', 'MXF')
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DROP VIEW VW_MISSING_PROXY_IDS
+@
+
+CREATE VIEW VW_MISSING_PROXY_IDS AS
+  select m.id as mediaid
+  from vw_mediafiles v, mediafile mf, filetype ft, media m
+  where
+    m.id = mf.mediaid and
+    mf.mediaid = v.mediaid and
+    v.mediafilecount = 1 and
+    mf.filetypeid = ft.id and
+    ft.name = 'High-res'
+@
index 5783d24aa627baf417703065ceb2ccf1f1058fcd..641f3c287b9d9f448407aab7b5911131fd72b0e9 100644 (file)
@@ -62,6 +62,6 @@ ADD CONSTRAINT FK_MEDIADESCRIPTION_MEDIAFILEID
        REFERENCES DB2ADMIN.MEDIAFILE(ID)\r
        \r
 db2ts "drop index media_description for text connect to mc"    \r
-db2ts "create index media_description for text on MEDIADESCRIPTION(DESCRIPTION) UPDATE FREQUENCY D(*) H(*) M(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59) UPDATE MINIMUM 1 connect to mc"\r
+db2ts "create index media_description for text on MEDIADESCRIPTION(DESCRIPTION) UPDATE FREQUENCY D(*) H(*) M(2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58) UPDATE MINIMUM 1 connect to mc"\r
 db2ts "update index media_description for text connect to mc"\r
        
\ No newline at end of file
index b4043ca377c97ffe3ffb0902391916260a37bfc6..70c12c69a5b17d6203dbf6d6a424cc2104ae66a0 100644 (file)
@@ -8,6 +8,7 @@ import java.sql.SQLException;
 import java.sql.Statement;\r
 import java.sql.Timestamp;\r
 import java.text.SimpleDateFormat;\r
+import java.time.Instant;\r
 import java.util.ArrayList;\r
 import java.util.Arrays;\r
 import java.util.Calendar;\r
@@ -207,6 +208,7 @@ public class ItemManager extends MemoryCache implements IItemManager {
                entity.setDescription(description);\r
                entity.setHouseId(houseId);\r
                entity.setLength(0);\r
+               entity.setModified(Timestamp.from(Instant.now()));\r
                traceOut();\r
                return entity;\r
        }\r
index 01ded651e7cc60916ed0fc5d9ec3948459597efd..a30fa93fd2bdee5af683f9eb2ff7b724be5d564e 100644 (file)
@@ -20,7 +20,7 @@
                         <rows>\r
                             <row>\r
                                 Tartomány\r
-                                <label id="domain" width="200px" value="intra.echotv.hu" />\r
+                                <label id="domain" width="200px" value="@load(jlm.domain)" />\r
                             </row>\r
                             <row>\r
                                 Felhasználó\r
index 8c9a722af2416299bda588e1566c11cd00bf8d31..96f29b7b652c53f6508ff7144ba67e8440d884a5 100644 (file)
@@ -11,7 +11,7 @@ import user.jobengine.server.scheduler.ScheduledJob;
 import user.jobengine.server.scheduler.SchedulerService;
 
 public interface IJobEngine {
-       static final int QUEUE_POLL_INTERVAL_MS = 1;
+       static final int QUEUE_POLL_INTERVAL_MS = 50;
 
        void addJobChangedEventListener(IJobChangedListener listener);
 
index 6519b314b8359d4de9ac493a770c36497d5ee3ad..d6430e7e3d639c01e2a6efffcb0de0a21c415813 100644 (file)
@@ -731,11 +731,12 @@ public class JobEngine implements IJobEngine {
 
        @Override
        public void processJobStepCompletedMessage(IJobMessage message) {
-               // TODO cancel nem megy, valszeg itt van gubasz
                IJobRuntime jobRuntime = getJobById(message.getJobId());
 
-               if (jobRuntime.getParentJobId() > 0)
-                       removeSpanwChild(jobRuntime);
+               //TODO ez hibat okoz az archivalasnal, mert hamarabb eltavolitja a childUd-ket
+
+               //              if (jobRuntime.getParentJobId() > 0)
+               //                      removeSpanwChild(jobRuntime);
 
                JobStepCompletedMessage m = (JobStepCompletedMessage) message;
                //kesz vagyunk, jelezni
@@ -1080,7 +1081,7 @@ public class JobEngine implements IJobEngine {
 
        @Override
        public void suspendExecutingJob(Throwable t, IJobRuntime jobRuntime) {
-               String description = t.getClass().getSimpleName() + ": " + t.getMessage();
+               String description = t.getMessage();
                jobRuntime.setDescription(description);
                logger.error(description);
                //TODO itt miert FINISH a kovetkezo allapot, miert nem SUSPEND
@@ -1090,7 +1091,7 @@ public class JobEngine implements IJobEngine {
 
        @Override
        public void suspendWaitExecutorJob(Throwable t, IJobRuntime jobRuntime) {
-               String description = t.getClass().getSimpleName() + ": " + t.getMessage();
+               String description = t.getMessage();
                jobRuntime.setDescription(description);
                logger.error(description);
                statusMachine.processAction(JobAction.SUSPEND, jobRuntime);
index 7af28c3a186383a36bce33913d7fe665051ebabe..93806715e877759f5df5daf88fcfe6c27954b016 100644 (file)
@@ -273,6 +273,7 @@ public class JobRuntime extends Job implements IJobRuntime {
                                if (event.getSignalType().equals(SignalType.CREATE)) {
                                        if (child.getParentJobId() == getId()) {
                                                childrenIDs.add(child.getId());
+                                               logger.info("Added child {} to {}", child.getId(), getId());
                                        }
 
                                        if (child.getParentJobId() != getId() && childrenIDs.contains(child.getParentJobId())) {
@@ -280,20 +281,21 @@ public class JobRuntime extends Job implements IJobRuntime {
                                        }
                                }
 
-                               boolean isChildDeleted = event.getSignalType().equals(SignalType.DELETE) && childrenIDs.contains(child.getId());
-                               boolean isChildHasError = event.getSignalType().equals(SignalType.UPDATE) && childrenIDs.contains(child.getId())
-                                               && JobStatus.SUSPENDED.equals(child.getStatus());
-                               if (isChildDeleted || isChildHasError) {
-                                       childrenIDs.remove(child.getId());
-                                       if (childrenIDs.size() == 0)
+                               if (childrenIDs.contains(child.getId())) {
+                                       logger.info("Child {} notification", child.getId());
+                                       switch (event.getSignalType()) {
+                                       case UPDATE:
+                                               if (JobStatus.SUSPENDED.equals(child.getStatus()))
+                                                       forkSempahore.release();
+                                               break;
+                                       case DELETE:
+                                               removeSpanwChild(child.getId());
+                                               break;
+                                       }
+
+                                       if (!getJobEngine().isRunning())
                                                forkSempahore.release();
                                }
-                               if (!getJobEngine().isRunning())
-                                       forkSempahore.release();
-
-                               //A gyerek(ek) el sem indultak, pl. nem letezik a template
-                               if (event.getSignalType().equals(SignalType.UPDATE) && JobStatus.SUSPENDED.equals(getStatus()))
-                                       forkSempahore.release();
 
                        };
                        logger.info("Adding job changed listener");
@@ -314,7 +316,6 @@ public class JobRuntime extends Job implements IJobRuntime {
                        return;
                logger.info("Waiting for semaphore {}", forkSempahore);
                forkSempahore.acquire();
-               logger.info("Removing job changed listener");
                if (getJobEngine().isRunning()) {
                        logger.info("Removing job changed listener");
                        getJobEngine().removeJobChangedEventListener(spawnJobListener);
@@ -638,7 +639,11 @@ public class JobRuntime extends Job implements IJobRuntime {
 
        @Override
        public void removeSpanwChild(long id) {
-               childrenIDs.remove(id);
+               if (childrenIDs != null && childrenIDs.contains(id)) {
+                       childrenIDs.remove(id);
+                       if (childrenIDs.size() == 0 && forkSempahore != null)
+                               forkSempahore.release();
+               }
        }
 
        @Override
index 6cfffb72e292fa9b191e992f14d487b7e3c00898..c483d02cb9a883fb1576caf34861eaabc2e25f41 100644 (file)
@@ -21,4 +21,8 @@ public class JobStatusChangedEvent extends EventObject {
                return status;\r
        }\r
 \r
+       public boolean isRuntimeTerminated() {\r
+               return JobStatus.FINISHED.equals(status) || JobStatus.SUSPENDED.equals(status);\r
+       }\r
+\r
 }\r
index 56275397fd05db1575301119dee92ceed7cc89b0..ddfb04d3f172523ed3b67d06b3960a765e516c39 100644 (file)
@@ -151,6 +151,7 @@ public class JobStepExecutor implements IJobStepExecutor {
        private int maxConcurrent;
        private String stepUnitName;
        private boolean isRemote;
+       private URLClassLoader parentLoader;
 
        public JobStepExecutor() {
        }
@@ -194,11 +195,11 @@ public class JobStepExecutor implements IJobStepExecutor {
                if (StringUtils.isEmpty(stepUnitName))
                        throw new JobEngineException("Step unit name can't be null.");
 
+               parentLoader = URLClassLoader.newInstance(DynamicClassLocator.makeURLs(), getClass().getClassLoader());
                if (!isGroovyStep()) {
                        //a groovy-nak nem kell
                        try {
-                               URLClassLoader loader = URLClassLoader.newInstance(DynamicClassLocator.makeURLs(), getClass().getClassLoader());
-                               stepClass = (Class<IJobStep>) loader.loadClass(stepUnitName);
+                               stepClass = (Class<IJobStep>) parentLoader.loadClass(stepUnitName);
                        } catch (ClassNotFoundException e1) {
                                logger.catching(e1);
                                throw new JobEngineException("System can't load JobStep implementation: " + stepUnitName);
@@ -219,7 +220,7 @@ public class JobStepExecutor implements IJobStepExecutor {
                IJobStep result = null;
 
                if (isGroovyStep()) {
-                       GroovyClassLoader gcl = new GroovyClassLoader();
+                       GroovyClassLoader gcl = new GroovyClassLoader(parentLoader);
                        Class myClass = gcl.parseClass(Paths.get(System.getProperty("jobengine.jobsteps.groovy.root", ""), stepUnitName).toFile());
                        result = (IJobStep) myClass.newInstance();
                } else
@@ -248,7 +249,7 @@ public class JobStepExecutor implements IJobStepExecutor {
        }
 
        private boolean isGroovyStep() {
-               return stepUnitName.toLowerCase().endsWith(".java");
+               return stepUnitName.toLowerCase().endsWith(".java") || stepUnitName.toLowerCase().endsWith(".groovy");
        }
 
        @Override
index ad8139bd54665464e1ce104e71c9011d4472bed9..52f8c6b2576b544ba195f4c3969369e311327f8e 100644 (file)
@@ -17,6 +17,7 @@ public class LoginModel extends BaseModel {
        private String password;\r
        private String message;\r
        private String query;\r
+       private String domain;\r
 \r
        @AfterCompose\r
        public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
@@ -24,6 +25,7 @@ public class LoginModel extends BaseModel {
 \r
                MediaCubeConfig mediaCubeConfig = SessionUtil.getMediaCubeConfig();\r
                MediaCubeAuthentication authentication = mediaCubeConfig.getAuthentication();\r
+               domain = authentication.getAdHost();\r
                if (StringUtils.isNotEmpty(authentication.getDefaultUser()) && StringUtils.isNotBlank(authentication.getDefaultPassword()))\r
                        authenticate(authentication.getDefaultUser(), authentication.getDefaultPassword());\r
        }\r
@@ -46,6 +48,10 @@ public class LoginModel extends BaseModel {
                return account;\r
        }\r
 \r
+       public String getDomain() {\r
+               return domain;\r
+       }\r
+\r
        public String getMessage() {\r
                return message;\r
        }\r
diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/AMCTests.java b/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/AMCTests.java
new file mode 100644 (file)
index 0000000..73d157a
--- /dev/null
@@ -0,0 +1,84 @@
+package user.jobengine.server.IT;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.FileInputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.CountDownLatch;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import user.commons.JobStatus;
+import user.commons.StoreUri;
+import user.commons.remotestore.RemoteStoreProtocol;
+import user.jobengine.db.IItemManager;
+import user.jobengine.db.ItemManager;
+import user.jobengine.db.Store;
+import user.jobengine.server.IJobEngine;
+import user.jobengine.server.IJobRuntime;
+import user.jobengine.server.JobEngine;
+
+public class AMCTests {
+       private static IItemManager manager;
+       private static IJobEngine jobEngine;
+
+       @BeforeClass
+       public static void initialize() throws Exception {
+               //Kornyezeti valtozok betoltese
+               Properties properties = new Properties();
+               URL srcLocation = AMCTests.class.getProtectionDomain().getCodeSource().getLocation();
+               URL location = new URL(srcLocation, "../../-configuration/mediacube-dev-user.properties");
+               properties.load(new FileInputStream(location.toURI().getPath().toString()));
+               System.getProperties().putAll(properties);
+
+               manager = new ItemManager();
+               manager.connect();
+
+               jobEngine = new JobEngine();
+               jobEngine.startup();
+               jobEngine.bindItemManagerService(manager);
+
+       }
+
+       @AfterClass
+       public static void terminate() throws Exception {
+               jobEngine.shutdown();
+               manager.disconnect();
+       }
+
+       @Test
+       public void testNexioCheckerStep() throws Exception {
+               Store nexioStore = manager.createStore("NEXIO", false, false);
+               nexioStore.add();
+
+               //Tesztelni a HirTV-n lehet
+               StoreUri storeUri = manager.createStoreUri(RemoteStoreProtocol.NEXIO, "10.10.1.55");
+               storeUri.setStoreId(nexioStore.getId());
+               storeUri.add();
+
+               CountDownLatch finishLatch = new CountDownLatch(1);
+
+               Map<String, Object> jobParams = new HashMap<>();
+               jobParams.put("storeName", "NEXIO");
+               jobParams.put("outputPath", "/opt");
+               jobParams.put("limit", 1);
+
+               IJobRuntime jobRuntime = jobEngine.submit(null, e -> {
+                       if (e.isRuntimeTerminated())
+                               finishLatch.countDown();
+               }, "nexio-check.xml", "NEXIO check", jobParams);
+
+               finishLatch.await();
+
+               storeUri.remove();
+               nexioStore.remove();
+
+               assertEquals(JobStatus.FINISHED, jobRuntime.getStatus());
+       }
+
+}