git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 12 Dec 2017 11:23:01 +0000 (11:23 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 12 Dec 2017 11:23:01 +0000 (11:23 +0000)
12 files changed:
server/-configuration/run-mediacube-server-bsh.launch
server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIOMaterialsStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java
server/user.jobengine.osgi.commons/src/user/commons/nexio/NexioClipEventDispatcher.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/ArchiveItem.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/EscortFiles.java [moved from server/user.jobengine.osgi.server/src/user/jobengine/server/steps/KillDateFile.java with 61% similarity]
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/FileArchive.java [new file with mode: 0644]
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/RundownArchive.java
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/StoryArchive.java

index f957593d008b3d20ebf4c01eb927d5eefa9fa181..7b16221444b7012fd93e306b44d0cfeeff5a197f 100644 (file)
@@ -19,7 +19,7 @@
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.555"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.555"/>\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.auth0.java-jwt@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javassist@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.jvnet.mimepull@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.reflections@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
index 0f5e7f11ed4d0ca64585ad59877ee1daae56b07f..8f68e6fa437e7f1ec002fd9d6744b607e64dab7d 100644 (file)
@@ -16,6 +16,7 @@ import org.apache.logging.log4j.Logger;
 import com.ibm.nosql.json.JSONUtil;\r
 import com.ibm.nosql.json.api.BasicDBObject;\r
 \r
+import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 \r
@@ -39,6 +40,7 @@ public class ArchiveListBuilderStep extends JobStep {
        public static final String MEDIA_HOUSEID = "mediaHouseId";\r
        public static final String MEDIA_TITLE = "mediaTitle";\r
        public static final String MEDIA_DESCRIPTION = "mediaDescription";\r
+       private static final String DURATION = "duration";\r
 \r
        private ArchiveItem createArchiveItem(Path jsonFilePath, Path mediaFilePath, Path catchedFilePath) {\r
                ArchiveItem result = null;\r
@@ -57,7 +59,7 @@ public class ArchiveListBuilderStep extends JobStep {
                        result.setMediaDescription(getMetadata(dbObject, MEDIA_DESCRIPTION));\r
                        result.setMediaFile(mediaFilePath.toString());\r
                        result.setCatchedFile(catchedFilePath.toString());\r
-\r
+                       result.setDuration(NoSQLUtils.asLong(dbObject, DURATION));\r
                } catch (IOException e) {\r
                        logger.catching(e);\r
                        return null;\r
index ec5b12bb750b4a6d00b0f017dbd71d2f60de1ad6..3570e1024d59684d8d70bfb9edda95690e50acd3 100644 (file)
@@ -1,6 +1,7 @@
 package user.jobengine.server.steps;\r
 \r
 import java.io.IOException;\r
+import java.io.OutputStream;\r
 import java.net.InetAddress;\r
 import java.net.URI;\r
 import java.net.URISyntaxException;\r
@@ -35,6 +36,9 @@ import user.jobengine.server.JobEngineException;
 import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class CopyForArchiveNEXIOMaterialsStep extends JobStep {\r
+       private static final String UTF_8 = "utf-8";\r
+       private static final String JSON_EXT = ".json";\r
+       private static final String DURATION = "duration";\r
        private static final String MXFEXT = ".MXF";\r
        private static final Logger logger = LogManager.getLogger();\r
        private static final String NEXIOCLIPS = "nexioclips";\r
@@ -66,23 +70,32 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
 \r
        private void copy(RundownArchive rundownArchive) throws Exception {\r
                for (StoryArchive storyArchive : rundownArchive.getStoryArchives()) {\r
-                       for (String fileName : storyArchive.getFileNames()) {\r
-                               copyFile(fileName, rundownArchive, storyArchive);\r
+                       for (FileArchive fileArchive : storyArchive.getFileArchives()) {\r
+                               copyFile(fileArchive, rundownArchive, storyArchive);\r
                        }\r
                }\r
        }\r
 \r
-       private void copyFile(String fileName, RundownArchive rundownArchive, StoryArchive storyArchive) throws Exception {\r
+       private void copyFile(FileArchive fileArchive, RundownArchive rundownArchive, StoryArchive storyArchive) throws Exception {\r
                FTPClient source = ((FtpDirectoryLister) RemoteFileHandler.createLister(sourceUri)).connect();\r
-               FTPClient target = ((FtpDirectoryLister) RemoteFileHandler.createLister(sourceUri)).connect();\r
+               FTPClient target = ((FtpDirectoryLister) RemoteFileHandler.createLister(targetUri)).connect();\r
+               String fileName = fileArchive.getFileName();\r
                transferFile(source, target, fileName);\r
-               BasicDBObject metadata = createMetadata(rundownArchive, storyArchive);\r
-               transferMetadata(target, metadata);\r
-               createTargetKillDateFile(target, fileName);\r
+               BasicDBObject metadata = createMetadata(rundownArchive, storyArchive, fileArchive);\r
+               try {\r
+                       if (!target.changeWorkingDirectory(EscortFiles.STATUSFOLDER))\r
+                               target.makeDirectory(EscortFiles.STATUSFOLDER);\r
+                       if (!target.changeWorkingDirectory(EscortFiles.STATUSFOLDER))\r
+                               throw new Exception("!STATUSFOLDER");\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+                       throw e;\r
+               }\r
+               transferMetadata(target, fileName, metadata);\r
                createSourceKillDateFile(source, fileName);\r
        }\r
 \r
-       private BasicDBObject createMetadata(RundownArchive rundownArchive, StoryArchive storyArchive) {\r
+       private BasicDBObject createMetadata(RundownArchive rundownArchive, StoryArchive storyArchive, FileArchive fileArchive) {\r
                //              {\r
                //                        "itemHouseId": "43",\r
                //                        "itemTitle": "Hazahúzó",\r
@@ -102,15 +115,14 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                result.put("mediaHouseId", storyArchive.getMediaHouseId());\r
                result.put("mediaTitle", storyArchive.getMediaTitle());\r
                result.put("mediaDescription", storyArchive.getMediaDesc());\r
+\r
+               result.put("duration", fileArchive.getDuration());\r
                return result;\r
        }\r
 \r
        private void createSourceKillDateFile(FTPClient source, String fileName) {\r
        }\r
 \r
-       private void createTargetKillDateFile(FTPClient target, String fileName) {\r
-       }\r
-\r
        @StepEntry\r
        public Object[] execute(int nexioPort, String nexioUserName, String nexioPassword, String archiveFtp, String archiveUserName, String archivePassword,\r
                        int daysBeforeNow, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
@@ -143,21 +155,22 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                return null;\r
        }\r
 \r
-       private String processMosObject(BasicDBObject rundown, BasicDBObject story, BasicDBObject mosObject) throws Exception {\r
+       private FileArchive processMosObject(BasicDBObject rundown, BasicDBObject story, BasicDBObject mosObject) throws Exception {\r
                String mosID = mosObject.getString(IOctopusAPI.OBJ_ID);\r
                if (MetadataTypeDetector.GuessMetadataType(mosID) != MetadataType.OCTOPUSPLACEHOLDER) {\r
                        logger.warn("Skipping MOS object {}", mosID);\r
                        return null;\r
                }\r
                DBCollection clips = db.getCollection(NEXIOCLIPS);\r
-               DBObject clip = clips.findOne(new BasicDBObject(LONGNAMEID, mosID));\r
+               BasicDBObject clip = (BasicDBObject) clips.findOne(new BasicDBObject(LONGNAMEID, mosID));\r
                if (clip == null) {\r
                        logger.info("File NOT exists {}", mosID);\r
-                       throw new Exception(String.format("File NOT exists %s"));\r
+                       throw new Exception(String.format("File NOT exists %s", mosID));\r
                } else {\r
                        logger.info("File exists {}", mosID);\r
                }\r
-               return mosID + MXFEXT;\r
+               long duration = NoSQLUtils.asLong(clip, DURATION);\r
+               return new FileArchive(mosID + MXFEXT, duration);\r
        }\r
 \r
        private RundownArchive processRundow(DBObject r) throws Exception {\r
@@ -210,18 +223,19 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                        return null;\r
                StoryArchive storyArchive = null;\r
                for (BasicDBObject mosObject : mosObjects) {\r
-                       String fileName = processMosObject(rundown, story, mosObject);\r
-                       if (fileName == null)\r
+                       FileArchive fileArchive = processMosObject(rundown, story, mosObject);\r
+                       if (fileArchive == null)\r
                                continue;\r
                        if (storyArchive == null) {\r
                                storyArchive = new StoryArchive();\r
                                storyArchive.setMediaHouseId(parentStoryID);\r
                                storyArchive.setMediaTitle(story.getString(IOctopusAPI.NAME));\r
                                storyArchive.setMediaDesc(story.getString(IOctopusAPI.SCRIPT_CONTENT));\r
+\r
                        }\r
-                       storyArchive.addFile(fileName);\r
+                       storyArchive.addFileArchive(fileArchive);\r
                }\r
-               return null;\r
+               return storyArchive;\r
 \r
        }\r
 \r
@@ -278,10 +292,11 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                if (!source.setFileType(FTP.BINARY_FILE_TYPE))\r
                        throw new Exception("!SOURCE TYPE");\r
 \r
+               source.retr(fileName);\r
+\r
                if (!target.setFileType(FTP.BINARY_FILE_TYPE))\r
                        throw new Exception("!TARGET TYPE");\r
 \r
-               source.retr(fileName);\r
                target.stor(fileName);\r
 \r
                while (true) {\r
@@ -291,10 +306,18 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                        String replyText = source.getReplyString();\r
                        if ("Transaction completed".equals(replyText))\r
                                break;\r
+                       Thread.sleep(500);\r
                }\r
        }\r
 \r
-       private void transferMetadata(FTPClient target, BasicDBObject metadata) {\r
+       private void transferMetadata(FTPClient target, String fileName, BasicDBObject metadata) throws Exception {\r
+               try (OutputStream outStream = target.storeFileStream(fileName + JSON_EXT)) {\r
+                       outStream.write(metadata.toString().getBytes(UTF_8));\r
+                       outStream.flush();\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+                       throw e;\r
+               }\r
        }\r
 \r
 }\r
index 29dfa805122b5f177de69b02f60b9d5828530306..0a0c9ac0d7b8f2e9e55578dd7b667e81f7054b60 100644 (file)
@@ -35,6 +35,7 @@ public class MetadataTransformStep extends JobStep {
                                                archiveItem.getItemHouseId());\r
                        mediaCubeMedia = itemManager.createMedia(ITEMTYPENAME, archiveItem.getMediaTitle(), archiveItem.getMediaDescription(),\r
                                        archiveItem.getMediaHouseId());\r
+                       mediaCubeMedia.setLength(archiveItem.getDuration());\r
                        mediaCubeItem.appendMedia(mediaCubeMedia);\r
 \r
                        itemManager.mergeItemStructure(mediaCubeItem);\r
index 44a827a10ad5d47dc47dcf57b428adc7d476662c..64e2384c33cd1a337d6cd0b430e32fcade245953 100644 (file)
@@ -61,10 +61,8 @@ public class TSMBackupStep extends JobStep {
                        saveMetadata(mediaCubeMedia, sourceFileName);\r
                        logger.info(getMarker(), "Az '{}' állomány archiválása sikeres.", sourceMediaFile.getName());\r
 \r
-                       if (killDateDays > 0) {\r
-                               KillDateFile killDateFile = new KillDateFile(sourceMediaFile.getParent().toString(), sourceMediaFile.getName().toString());\r
-                               killDateFile.create(killDateDays, getMarker());\r
-                       }\r
+                       if (killDateDays > 0)\r
+                               EscortFiles.createUNCKillDate(sourceMediaFile.getParent().toString(), sourceMediaFile.getName().toString(), killDateDays, getMarker());\r
                } catch (Exception e) {\r
                        logger.catching(e);\r
                        logger.error(getMarker(), "Az '{}' állomány archiválása sikertelen. A rendszer hibaüzenete: {}", sourceMediaFile.getName(), e.getMessage());\r
index e41cbe62de5acc5b124bf2ea59ec90d83abadd72..7ce844212eb9bf1c54b5e2badc5ed1cb022312ac 100644 (file)
@@ -56,10 +56,8 @@ public class TSMRestoreStep extends JobStep {
                                logger.info(new MediaCubeMarker(successRecipient), successMessage, sourceFileName, targetPath, targetFileName);\r
                        logger.info(getMarker(), successMessage, sourceFileName, targetPath, targetFileName);\r
 \r
-                       if (killDateDays > 0) {\r
-                               KillDateFile killDateFile = new KillDateFile(targetPath, targetFileName);\r
-                               killDateFile.create(killDateDays, getMarker());\r
-                       }\r
+                       if (killDateDays > 0)\r
+                               EscortFiles.createUNCKillDate(targetPath, targetFileName, killDateDays, getMarker());\r
 \r
                } catch (Exception e) {\r
                        logger.error(getMarker(), "Az '{}' állomány visszatöltése sikertelen. A rendszer hibaüzenete: {}", sourceFileName, e.getMessage());\r
index 05063f397b19859a08bfe3c2856392ef62e88d21..1f217724671659c579ed9ba6269b1d37a5d261d0 100644 (file)
@@ -287,14 +287,14 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                }\r
 \r
                /*\r
-               \r
+\r
                                int c = connection.read(buffer, 0, 2);\r
                                //2 bytes hosszan az idokozben hozzaadott id-k szamossaga\r
                                if (c < 2) {\r
                                        throw new ProtocolException("c, 2, 2");\r
                                }\r
                                //MSB, LSB\r
-               \r
+\r
                                return nofIds;\r
                        */\r
                return ret;\r
@@ -411,8 +411,8 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                logger.info("NEXIO server connected");\r
 \r
                this.progressListenerList = new EventListenerList();\r
-               this.dropAllClipsFromMongo();\r
-               this.ensureIndexes();\r
+               //              this.dropAllClipsFromMongo();\r
+               //              this.ensureIndexes();\r
                boolean[] useMOSGateway = { false };\r
                try {\r
                        useMOSGateway[0] = Boolean.parseBoolean(System.getProperty(NEXIO_USE_MOS_GATEWAY));\r
@@ -421,8 +421,8 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                executor.submit(() -> {\r
                        try {\r
                                if (useMOSGateway[0]) {\r
-                                       NexioDataMiner dm = new NexioDataMiner();\r
-                                       dm.transferClips();\r
+                                       //                                      NexioDataMiner dm = new NexioDataMiner();\r
+                                       //                                      dm.transferClips();\r
                                } else {\r
                                        copyClipsIntoMongo();\r
                                }\r
index 5b807c624df0f767e074af661663ad8030e0d47c..883e32c60e59a0a895d46a31d931e8ecb71c2447 100644 (file)
@@ -13,11 +13,16 @@ public class ArchiveItem implements Serializable {
        private String mediaDescription;\r
        private String mediaFile = null;\r
        private String catchedFile = null;\r
+       private long duration;\r
 \r
        public String getCatchedFile() {\r
                return catchedFile;\r
        }\r
 \r
+       public long getDuration() {\r
+               return duration;\r
+       }\r
+\r
        public String getItemDescription() {\r
                return itemDescription;\r
        }\r
@@ -60,6 +65,10 @@ public class ArchiveItem implements Serializable {
                this.catchedFile = catchedFile;\r
        }\r
 \r
+       public void setDuration(long duration) {\r
+               this.duration = duration;\r
+       }\r
+\r
        public void setItemDescription(String itemDescription) {\r
                this.itemDescription = itemDescription;\r
        }\r
similarity index 61%
rename from server/user.jobengine.osgi.server/src/user/jobengine/server/steps/KillDateFile.java
rename to server/user.jobengine.osgi.server/src/user/jobengine/server/steps/EscortFiles.java
index 76d46eba43aaf672283e016aa0fc1bfea0e3a2ab..5bea5ed4700a8d30cfe7f56f0bd6c4a7ad9e27cd 100644 (file)
@@ -16,35 +16,37 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.apache.logging.log4j.Marker;\r
 \r
-public class KillDateFile {\r
+public class EscortFiles {\r
        private static final Logger logger = LogManager.getLogger();\r
        private static final String KILLDATE_NAME = "%s.%s.killdate";\r
-       private static final String YYYY_M_MDD = "yyyyMMdd";\r
-       private static final String STATUSFOLDER = ".STATUS";\r
-       private String filePath;\r
-       private String fileName;\r
+       private static final String YYYYMMDD = "yyyyMMdd";\r
+       public static final String STATUSFOLDER = ".STATUS";\r
 \r
-       public KillDateFile(String filePath, String fileName) {\r
-               this.filePath = filePath;\r
-               this.fileName = fileName;\r
+       private static String composeKillDateFileName(String fileName, int days) {\r
+               Calendar killDate = Calendar.getInstance();\r
+               killDate.add(Calendar.DAY_OF_YEAR, days);\r
+               SimpleDateFormat dateFormat = new SimpleDateFormat(YYYYMMDD);\r
+               return String.format(KILLDATE_NAME, fileName, dateFormat.format(killDate.getTime()));\r
+       }\r
+\r
+       public static void createUNCKillDate(String filePath, String fileName, int days, Marker marker) throws IOException {\r
+               ensureUNCFolder(filePath, STATUSFOLDER, marker);\r
+               String killDateFileName = composeKillDateFileName(fileName, days);\r
+               Path killDatePath = Paths.get(filePath, STATUSFOLDER, killDateFileName);\r
+               if (Files.exists(killDatePath))\r
+                       logger.warn(marker, "Az '{}' állomány már létezik.", killDatePath);\r
+               else\r
+                       Files.createFile(killDatePath);\r
        }\r
 \r
-       public void create(int days, Marker marker) throws IOException {\r
-               Path statusPath = Paths.get(filePath, STATUSFOLDER);\r
+       public static void ensureUNCFolder(String filePath, String folderName, Marker marker) throws IOException {\r
+               Path statusPath = Paths.get(filePath, folderName);\r
                File statusFolder = statusPath.toFile();\r
                if (!statusFolder.exists() || !statusFolder.isDirectory()) {\r
                        Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");\r
                        FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);\r
                        Files.createDirectory(statusPath, attr);\r
                }\r
-               Calendar killDate = Calendar.getInstance();\r
-               killDate.add(Calendar.DAY_OF_YEAR, days);\r
-               SimpleDateFormat dateFormat = new SimpleDateFormat(YYYY_M_MDD);\r
-               String killDateFileName = String.format(KILLDATE_NAME, fileName, dateFormat.format(killDate.getTime()));\r
-               Path killDatePath = Paths.get(filePath, STATUSFOLDER, killDateFileName);\r
-               if (Files.exists(killDatePath))\r
-                       logger.warn(marker, "Az '{}' állomány már létezik.", killDatePath);\r
-               else\r
-                       Files.createFile(killDatePath);\r
        }\r
+\r
 }\r
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/FileArchive.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/steps/FileArchive.java
new file mode 100644 (file)
index 0000000..b8f518d
--- /dev/null
@@ -0,0 +1,28 @@
+package user.jobengine.server.steps;\r
+\r
+public class FileArchive {\r
+       private String fileName;\r
+       private long duration;\r
+\r
+       public FileArchive(String fileName, long duration) {\r
+               this.fileName = fileName;\r
+               this.duration = duration;\r
+       }\r
+\r
+       public long getDuration() {\r
+               return duration;\r
+       }\r
+\r
+       public String getFileName() {\r
+               return fileName;\r
+       }\r
+\r
+       public void setDuration(long duration) {\r
+               this.duration = duration;\r
+       }\r
+\r
+       public void setFileName(String fileName) {\r
+               this.fileName = fileName;\r
+       }\r
+\r
+}
\ No newline at end of file
index 8623c393f499e5af1ee55f824c5b4c22b6f74d44..5328cef324ab0dbf810dbbc9b17c8014c233e722 100644 (file)
@@ -3,7 +3,7 @@ package user.jobengine.server.steps;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-class RundownArchive {\r
+public class RundownArchive {\r
        private String itemHouseId;\r
        private String itemTitle;\r
        private String itemDesc;\r
index 180b91c5483afed611c2fbd55955417b57d90f06..2eb5a29a179cd073f37e84320d9726a144e09fa8 100644 (file)
@@ -3,43 +3,44 @@ package user.jobengine.server.steps;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-class StoryArchive {\r
+public class StoryArchive {\r
        private String mediaHouseId;\r
        private String mediaTitle;\r
        private String mediaDesc;\r
-       private List<String> fileNames;\r
+       private List<FileArchive> fileArchives;\r
 \r
-       public void addFile(String fileName) {\r
-               if (fileNames == null)\r
-                       fileNames = new ArrayList<>();\r
-               fileNames.add(fileName);\r
+       public void addFileArchive(FileArchive fileArchive) {\r
+               if (fileArchives == null)\r
+                       fileArchives = new ArrayList<>();\r
+               fileArchives.add(fileArchive);\r
        }\r
 \r
-       public List<String> getFileNames() {\r
-               return fileNames;\r
+       public List<FileArchive> getFileArchives() {\r
+               return fileArchives;\r
        }\r
 \r
-       public String getMediaHouseId() {\r
-               return mediaHouseId;\r
+       public String getMediaDesc() {\r
+               return mediaDesc;\r
        }\r
 \r
-       public void setMediaHouseId(String mediaHouseId) {\r
-               this.mediaHouseId = mediaHouseId;\r
+       public String getMediaHouseId() {\r
+               return mediaHouseId;\r
        }\r
 \r
        public String getMediaTitle() {\r
                return mediaTitle;\r
        }\r
 \r
-       public void setMediaTitle(String mediaTitle) {\r
-               this.mediaTitle = mediaTitle;\r
+       public void setMediaDesc(String mediaDesc) {\r
+               this.mediaDesc = mediaDesc;\r
        }\r
 \r
-       public String getMediaDesc() {\r
-               return mediaDesc;\r
+       public void setMediaHouseId(String mediaHouseId) {\r
+               this.mediaHouseId = mediaHouseId;\r
        }\r
 \r
-       public void setMediaDesc(String mediaDesc) {\r
-               this.mediaDesc = mediaDesc;\r
+       public void setMediaTitle(String mediaTitle) {\r
+               this.mediaTitle = mediaTitle;\r
        }\r
+\r
 }
\ No newline at end of file