--- /dev/null
+#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser\r
+#Wed Feb 10 16:05:17 CET 2021\r
+osgi.bundles=reference\:file\:cglib_2.2.2.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-annotations_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-core_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-databind_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.datatype.jackson-datatype-joda_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-base_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.module.jackson-module-jaxb-annotations_2.4.5.jar@4,reference\:file\:com.ibm.db2.jcc_1.4.0.jar@4,reference\:file\:com.ibm.nosql_4.19.26.jar@4,reference\:file\:com.microsoft.sqlserver.sqljdbc_6.0.8112.100.jar@4,reference\:file\:com.sun.jna_4.2.0.jar@4,reference\:file\:groovy_3.0.3.jar@4,reference\:file\:io.humble.video-arch-x86_64-pc-linux-gnu6_0.2.1.jar@4,reference\:file\:io.humble.video-arch-x86_64-w64-mingw32_0.2.1.jar@4,reference\:file\:io.humble.video-noarch_0.2.1.jar@4,reference\:file\:javax.annotation-api_1.2.0.jar@4,reference\:file\:javax.mail_1.5.0.b01.jar@4,reference\:file\:javax.servlet-api_3.1.0.jar@4,reference\:file\:javax.ws.rs-api_2.0.1.jar@4,reference\:file\:jcifs_1.3.17.jar@4,reference\:file\:joda-time_2.2.0.jar@4,reference\:file\:junit_4.12.0.jar@4,reference\:file\:org.apache.aries.spifly.dynamic.bundle_1.0.8.jar@4,reference\:file\:org.apache.aries.util_1.0.0.jar@4,reference\:file\:org.apache.commons.beanutils_1.8.3.jar@4,reference\:file\:org.apache.commons.collections_3.2.2.jar@4,reference\:file\:org.apache.commons.digester_3.2.0.jar@4,reference\:file\:org.apache.commons.io_2.6.0.jar@4,reference\:file\:org.apache.commons.lang_2.6.0.jar@4,reference\:file\:org.apache.commons.net_3.6.0.jar@4,reference\:file\:org.apache.felix.gogo.command_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.runtime_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.shell_0.12.0.jar@4,reference\:file\:org.apache.httpcomponents.httpclient_4.2.6.jar@4,reference\:file\:org.apache.httpcomponents.httpcore_4.2.5.jar@4,reference\:file\:org.apache.logging.log4j.api_2.8.2.jar@1\:start,reference\:file\:org.apache.logging.log4j.core_2.8.2.jar@4,reference\:file\:org.apache.logging.log4j.slf4j-impl_2.8.2.jar@4,reference\:file\:org.apache.servicemix.bundles.quartz_2.3.0.2.jar@4,reference\:file\:org.eclipse.equinox.common_3.8.0.v20160509-1230.jar@2\:start,reference\:file\:org.eclipse.equinox.console_1.1.200.v20150929-1405.jar@4,reference\:file\:org.eclipse.equinox.ds_1.4.400.v20160226-2036.jar@1\:start,reference\:file\:org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar@4,reference\:file\:org.eclipse.equinox.util_1.0.500.v20130404-1337.jar@4,reference\:file\:org.eclipse.jetty.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.deploy_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.http_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.io_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.osgi.boot_9.3.9.v20160517.jar@4\:start,reference\:file\:org.eclipse.jetty.schemas_3.1.0.jar@4,reference\:file\:org.eclipse.jetty.security_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.util_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.webapp_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.api_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.common_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.xml_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.osgi.services_3.2.100.v20100503.jar@4,reference\:file\:org.hamcrest.core_1.3.0.jar@4,reference\:file\:org.jboss.resteasy.client_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxb-provider_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs-api_3.0.11.Final.jar@4,reference\:file\:org.jmock_2.6.0.jar@4,reference\:file\:org.jmock.junit4_2.6.0.jar@4,reference\:file\:org.mybatis.mybatis_3.5.2.jar@4,reference\:file\:org.objectweb.asm_5.0.1.jar@4,reference\:file\:org.objectweb.asm.commons_5.0.1.jar@4,reference\:file\:org.objectweb.asm.tree_5.0.1.jar@4,reference\:file\:org.omnifaces_3.4.1.jar@4,reference\:file\:slf4j.api_1.7.24.jar@4,reference\:file\:slf4j.simple_1.7.2.jar@4,reference\:file\:user.commons.log4j2_1.0.0.jar@4,reference\:file\:user.commons.zk_8.0.3.jar@4,reference\:file\:user.jobengine.osgi.commons_1.0.0.jar@4\:start,reference\:file\:user.jobengine.osgi.db_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.server_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.services_1.0.0.jar@4,reference\:file\:user.mediacube.gui_1.0.0.jar@4,reference\:file\:user.mediacube.metadata_1.0.0.jar@4,reference\:file\:user.tsm.client_1.2.0.jar@4\r
+equinox.use.ds=true\r
+osgi.bundles.defaultStartLevel=4\r
+osgi.framework=file\:plugins/org.eclipse.osgi_3.11.2.v20161107-1947.jar\r
+osgi.framework.extensions=\r
+eclipse.p2.data.area=@config.dir/../p2\r
+eclipse.p2.profile=DefaultProfile\r
--- /dev/null
+prompt=mc>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<executors>\r
+ <executor className="TransferStep.java" maxConcurrent="1" isRemote="false" />\r
+ <executor className="TSMTransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="TSMTransferFromStep.java" maxConcurrent="8" isRemote="false" />\r
+ <executor className="NEXIO1TransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="NEXIO2TransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="PASAPOOLTransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="FILEZILLA_PASARESTORETransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="FILEZILLA_AVIDTransferToStep.java" maxConcurrent="4" isRemote="false" />\r
+ <executor className="NEXIO1TransferFromStep.java" maxConcurrent="2" isRemote="false" />\r
+ <executor className="NEXIO2TransferFromStep.java" maxConcurrent="2" isRemote="false" />\r
+ <executor className="VODTransferToStep.java" maxConcurrent="3" isRemote="false" />\r
+ <executor className="RegisterVODRestoreStep.java" maxConcurrent="1" isRemote="false" />\r
+\r
+ <executor className="RegisterUserRestoreStep.java" maxConcurrent="3" isRemote="false" />\r
+ <executor className="FileValidatorStep.java" maxConcurrent="10" isRemote="false" />\r
+ <executor className="MetadataPersisterStep.java" maxConcurrent="10" isRemote="false" />\r
+ <executor className="FileCleanupStep.java" maxConcurrent="10" isRemote="false" />\r
+ <executor className="ForkUploadStep.java" maxConcurrent="1" isRemote="false" />\r
+ <executor className="ForkDownloadStep.java" maxConcurrent="1" isRemote="false" />\r
+ <executor className="NEXIOArchiveCheckerStep.java" maxConcurrent="2" isRemote="false" />\r
+ <executor className="NEXIOMetadataPersisterStep.java" maxConcurrent="5" isRemote="false" />\r
+ <executor className="HarrisMissingMaterialCheckerStep.java" maxConcurrent="2" isRemote="false" />\r
+ <executor className="PeableBeachMissingMaterialCheckerStep.java" maxConcurrent="1" isRemote="false" />\r
+\r
+ <executor className="CancelableStep.java" maxConcurrent="2" isRemote="false" />\r
+ <executor className="TestForkCancelableStep.java" maxConcurrent="3" isRemote="false" />\r
+ <executor className="DirMXFValidatorStep.java" maxConcurrent="1" isRemote="false" />\r
+</executors>
\ No newline at end of file
--- /dev/null
+{"joblist":[\r
+ {\r
+ "template": "test-fork-cancelable.xml",\r
+ "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
+ },\r
+ {\r
+ "template": "validate-dir-mxf.xml",\r
+ "parameters": [ {"name": "source", "value": "h:/TEMP/", "type": "java.lang.String"} ]\r
+ },\r
+ {\r
+ "template": "nexio1-archive-checker.xml",\r
+ "name" : "NEXIO1 archiválás előkészítése",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 0 */1 * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "sourceStoreName", "value": "NEXIO1", "type": "java.lang.String"},\r
+ {"name": "escortStoreName", "value": "MEDIACUBE_DOWNLOADS", "type": "java.lang.String"},\r
+ {"name": "lastModifiedHours", "value": 3, "type": "java.lang.Integer"}\r
+ ]\r
+ }, \r
+ {\r
+ "template": "nexio2-archive-checker.xml",\r
+ "name" : "NEXIO2 archiválás előkészítése",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 0 */1 * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "sourceStoreName", "value": "NEXIO2", "type": "java.lang.String"},\r
+ {"name": "escortStoreName", "value": "MEDIACUBE_DOWNLOADS", "type": "java.lang.String"},\r
+ {"name": "lastModifiedHours", "value": 3, "type": "java.lang.Integer"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "fork-validate-and-archive.xml",\r
+ "name" : "Kötegelt validálás és archiválás",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 */30 * * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "sourceStoreName", "value": "MEDIACUBE_DOWNLOADS", "type": "java.lang.String"},\r
+ {"name": "template", "value": "validate-and-archive.xml", "type": "java.lang.String"},\r
+ {"name": "expectedColorSpace", "value": "", "type": "java.lang.String"},\r
+ {"name": "limit", "value": 100, "type": "java.lang.Integer"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "harris1-missingmaterial-checker.xml",\r
+ "name" : "HARRIS1 missing material lekérdezés",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 */5 * * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "vicFiles", "value": ["z:\\NEXIO.VIC", "z:\\EDIT 9.VIC", "z:\\TRIM2.VIC"], "type": "com.ibm.nosql.json.api.BasicDBList"},\r
+ {"name": "escortStoreName", "value": "MEDIACUBE_UPLOADS", "type": "java.lang.String"},\r
+ {"name": "targetStoreName", "value": "NEXIO1", "type": "java.lang.String"},\r
+ {"name": "targetProtocol", "value": "FTP", "type": "java.lang.String"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "harris2-missingmaterial-checker.xml",\r
+ "name" : "HARRIS2 missing material lekérdezés",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 */5 * * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "vicFiles", "value": ["z:\\NEXIO2.VIC", "z:\\EDIT-4.VIC", "z:\\EDIT 10.VIC"], "type": "com.ibm.nosql.json.api.BasicDBList"},\r
+ {"name": "escortStoreName", "value": "MEDIACUBE_UPLOADS", "type": "java.lang.String"},\r
+ {"name": "targetStoreName", "value": "NEXIO2", "type": "java.lang.String"},\r
+ {"name": "targetProtocol", "value": "FTP", "type": "java.lang.String"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "peablebeach-missingmaterial-checker.xml",\r
+ "name" : "PEABLEBEACH missing material lekérdezés",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 */5 * * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "escortStoreName", "value": "MEDIACUBE_UPLOADS", "type": "java.lang.String"},\r
+ {"name": "lookupStoreNames", "value": ["PEABLEBEACH", "PASAPOOL", "SELENIOPOOL", "SELENIOPOOL_16_9", "SELENIOPOOL_16_9_PROCESSING", "SELENIOPOOL_4_3", "SELENIOPOOL_4_3_PROCESSING"], "type": "com.ibm.nosql.json.api.BasicDBList"},\r
+ {"name": "targetStoreName", "value": "PASAPOOL", "type": "java.lang.String"},\r
+ {"name": "targetProtocol", "value": "FTP", "type": "java.lang.String"},\r
+ {"name": "primaryEndPoint", "value": "http://10.170.100.61:18083", "type": "java.lang.String"},\r
+ {"name": "primaryUserName", "value": "pbs", "type": "java.lang.String"},\r
+ {"name": "primaryPassword", "value": "pbs", "type": "java.lang.String"},\r
+ {"name": "secondaryEndPoint", "value": "http://10.170.100.62:18083", "type": "java.lang.String"},\r
+ {"name": "secondaryUserName", "value": "pbs", "type": "java.lang.String"},\r
+ {"name": "secondaryPassword", "value": "pbs", "type": "java.lang.String"},\r
+ {"name": "rangeForwardHours", "value": 168, "type": "java.lang.Integer"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "fork-validate-and-restore.xml",\r
+ "name" : "Kötegelt validálás és visszatöltés",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "cronexpression": "0 */1 * * * ?",\r
+ "parameters": \r
+ [ \r
+ {"name": "sourceStoreName", "value": "MEDIACUBE_UPLOADS", "type": "java.lang.String"},\r
+ {"name": "template", "value": "validate-and-restore.xml", "type": "java.lang.String"},\r
+ {"name": "expectedColorSpace", "value": "", "type": "java.lang.String"},\r
+ {"name": "limit", "value": 0, "type": "java.lang.Integer"}\r
+ ]\r
+ },\r
+ {\r
+ "template": "register-user-restore.xml",\r
+ "name" : "Felhasználói visszatöltés regisztráció",\r
+ "active": false,\r
+ "executeimmediate": false,\r
+ "parameters": \r
+ [ \r
+ {"name": "escortStoreName", "value": "MEDIACUBE_UPLOADS", "type": "java.lang.String"}\r
+ ]\r
+ } \r
+]}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+\r
+public class CancelableStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ int count = 10;\r
+\r
+ @StepEntry\r
+ public Object[] execute(int param) throws Exception {\r
+ try {\r
+ // ftpTest();\r
+\r
+ for (int i = 0; i < count; i++) {\r
+ if (getJobRuntime().isWaitingCancel())\r
+ break;\r
+ Thread.sleep(500);\r
+ int progress = (i + 1) * 100 / count;\r
+ setProgress(progress);\r
+ \r
+ }\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ throw e;\r
+ }\r
+ return null;\r
+ }\r
+\r
+ void ftpTest() throws Exception {\r
+ StoreUri source = null;\r
+ StoreUri target = null;\r
+ try {\r
+ source = getManager().getStoreUri("MEDIACUBE_UPLOADS", RemoteStoreProtocol.LOCAL);\r
+ target = getManager().getStoreUri("NEXIO1", RemoteStoreProtocol.FTP);\r
+ source.addProgressListener(e -> setProgress(e.getProgress()));\r
+ logger.info("Uploading file PART_TEST.mxf");\r
+ source.transferFrom(target, "PART_TEST.mxf", "PART_TEST.mxf");\r
+ FTPClient client = ((FtpDirectoryLister) target.getLister()).connect();\r
+ logger.info("Renaming file PART_TEST.mxf to RENAME_TEST.mxf");\r
+ client.rename("PART_TEST.mxf", "RENAME_TEST.mxf");\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ } finally {\r
+ if (target != null)\r
+ target.cleanUp();\r
+ if (source != null)\r
+ source.cleanUp();\r
+ }\r
+\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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 user.commons.mediatool.MediaInfo;\r
+import user.jobengine.db.Media;\r
+\r
+public class DirMXFValidatorStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(String source) throws Exception {\r
+ Path path = Paths.get(source);\r
+ DirectoryStream<Path> directoryStream = Files.newDirectoryStream(path);\r
+ for (Path file : directoryStream) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ return null;\r
+ }\r
+\r
+ if (file.toFile().isDirectory())\r
+ continue;\r
+\r
+ String fileName = file.getFileName().toString();\r
+ if (fileName.contains("."))\r
+ fileName = fileName.substring(0, fileName.lastIndexOf("."));\r
+\r
+ if (file.toFile().length() == 0) {\r
+ logger.error("Zero: {}", fileName);\r
+ continue;\r
+ }\r
+\r
+ Media media = getManager().getMedia(fileName);\r
+ long frames = 0;\r
+ if (media == null) {\r
+ logger.warn("Unchecked yet: {}", fileName);\r
+ } else\r
+ frames = media.getLength();\r
+\r
+ MediaInfo mi = null;\r
+\r
+ try {\r
+ mi = new MediaInfo(file);\r
+ mi.process();\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ logger.error("Unreadable: {}", fileName);\r
+ }\r
+\r
+ logger.info("Valid: {} MC farmes {} FF frames {}", fileName, frames, mi.getFrames());\r
+ }\r
+\r
+ return null;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class FILEZILLA_AVIDTransferToStep extends TransferStep {\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class FILEZILLA_PASARESTORETransferToStep extends TransferStep {\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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
+import org.apache.logging.log4j.message.Message;\r
+import org.apache.logging.log4j.message.ParameterizedMessage;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class FileCleanupStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String fileName, String escortFile) throws Exception {\r
+ try {\r
+\r
+ Message msg = new ParameterizedMessage("A {} fájl visszatöltése befejeződött.", fileName);\r
+ EscortFiles.notifyRecipient(Paths.get(escortFile), logger, msg);\r
+\r
+ Path filePath = Paths.get(sourceStoreUri.toString(true), fileName);\r
+ EscortFiles.remove(filePath);\r
+ EscortFiles.remove(Paths.get(escortFile));\r
+ EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ throw e;\r
+ }\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.FileNotFoundException;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.message.Message;\r
+import org.apache.logging.log4j.message.ParameterizedMessage;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.mediatool.MediaInfo;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+\r
+public class FileValidatorStep extends JobStep {\r
+ private static final String COLORSPACE = "COLORSPACE";\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String testSimulate = System.getProperty("test.simulate");\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String fileName, long expectedFrameNumber, long expectedSize, String exceptedColorSpace, String escortFile)\r
+ throws Exception {\r
+ if (!RemoteStoreProtocol.LOCAL.equals(sourceStoreUri.getProtocol()))\r
+ throw new Exception("Store URI protocol must be local.");\r
+ Path filePath = Paths.get(sourceStoreUri.toString(true), fileName);\r
+ if (!filePath.toFile().exists())\r
+ throw new FileNotFoundException("File not exists: " + filePath.toString());\r
+\r
+ Path escortFilePath = Paths.get(escortFile);\r
+\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ EscortFiles.remove(filePath);\r
+ //EscortFiles.remove(escortFilePath);\r
+ EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
+\r
+ Message msg = new ParameterizedMessage("A {} fájl visszatöltése kezelői beavatkozás miatt megszakadt.", fileName);\r
+ EscortFiles.notifyRecipient(escortFilePath, logger, msg);\r
+\r
+ cancel();\r
+ return null;\r
+ }\r
+\r
+ DownloadableMedia downloadable = null;\r
+ try {\r
+ downloadable = EscortFiles.decode(escortFilePath);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ }\r
+\r
+ if (downloadable != null && expectedFrameNumber == 0)\r
+ storeCurrentFrames(filePath, downloadable);\r
+\r
+ if (downloadable != null && downloadable.containsKey("skipValidation") && downloadable.getBoolean("skipValidation"))\r
+ return null;\r
+\r
+ if (expectedFrameNumber > 0 || StringUtils.isNotBlank(exceptedColorSpace))\r
+ validateMedia(filePath, expectedFrameNumber, exceptedColorSpace, escortFile);\r
+\r
+ if (expectedSize > 0)\r
+ validateSize(filePath, expectedSize, escortFile);\r
+\r
+ //A metadata persister miatt torlunk mindet teszt modban\r
+ /*\r
+ if (StringUtils.isNotBlank(testSimulate)) {\r
+ EscortFiles.remove(escortFilePath);\r
+ EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
+ logger.info(getMarker(), "{} deleted to prevent real processing", escortFile);\r
+ }\r
+ */\r
+ logger.info(getMarker(), "{} passed validation", fileName);\r
+ return null;\r
+ }\r
+\r
+ private void storeCurrentFrames(Path filePath, DownloadableMedia downloadable) {\r
+ MediaInfo mi = null;\r
+ try {\r
+ mi = new MediaInfo(filePath);\r
+ mi.process();\r
+ long frames = mi.getFrames();\r
+\r
+ if (downloadable.containsKey("mediaId")) {\r
+ Media media = getManager().getMedia(downloadable.getLong("mediaId"));\r
+ if (media != null) {\r
+ media.setLength(frames);\r
+ getManager().modify(media);\r
+ }\r
+\r
+ }\r
+\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ }\r
+ }\r
+\r
+ private void validateMedia(Path filePath, long expectedFrameNumber, String exceptedColorSpace, String escortFile) throws Exception {\r
+ MediaInfo mi = null;\r
+ try {\r
+ mi = new MediaInfo(filePath);\r
+ mi.process();\r
+\r
+ if (expectedFrameNumber > 0) {\r
+ long frames = mi.getFrames();\r
+ if (Math.abs(frames - expectedFrameNumber) > 3) {\r
+ Message msg = new ParameterizedMessage("Validációs hiba miatt a {} fájl másolása nem lehetséges.", filePath.getFileName());\r
+ EscortFiles.notifyRecipient(Paths.get(escortFile), logger, msg);\r
+\r
+ //200924 komment, mert a mar TSM-bol letoltott mozikat hagyjuk ott, a download irany ugyis felulir\r
+ //EscortFiles.remove(filePath);\r
+ //EscortFiles.remove(Paths.get(escortFile));\r
+\r
+ //200911 a kommentet kivettem, mert ezeket is torolni kell\r
+ EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
+ throw new Exception("Length mismatch in " + filePath + ". Expected: " + expectedFrameNumber + ", found: " + frames);\r
+ }\r
+ if (frames != expectedFrameNumber)\r
+ logger.warn(getSessionMarker(), "A {} fájl másolása lehetséges, de a képkockaszám nem egyezik. Várt: {}, aktuális: {}",\r
+ expectedFrameNumber, frames);\r
+ }\r
+\r
+ if (StringUtils.isNotBlank(exceptedColorSpace)) {\r
+ String colorSpace = mi.getColorSpace();\r
+ if (colorSpace == null) {\r
+ EscortFiles.createFellow(escortFile, COLORSPACE);\r
+ throw new Exception("Can not determine color space in " + filePath);\r
+ }\r
+\r
+ if (!colorSpace.equals(exceptedColorSpace)) {\r
+ EscortFiles.createFellow(escortFile, COLORSPACE);\r
+ throw new Exception("Expected color space is " + exceptedColorSpace + ", but found " + colorSpace);\r
+ }\r
+ }\r
+\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ }\r
+ }\r
+\r
+ private void validateSize(Path filePath, long expectedSize, String escortFile) throws Exception {\r
+ try {\r
+ long length = filePath.toFile().length();\r
+ if (length != expectedSize)\r
+ throw new Exception("Size mismatch. Expected: " + expectedSize + ", found: " + length);\r
+\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.JobStatus;\r
+import user.commons.MediaCubeMarker;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Store;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class ForkDownloadStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(String tempStoreName, String template, String expectedColorSpace, int limit) throws Exception {\r
+\r
+ sendStatusReport();\r
+ //return null;\r
+ DirectoryStream<Path> directoryStream = null;\r
+ int count = limit;\r
+ int allCount = 0;\r
+ int currentCount = 0;\r
+\r
+ try {\r
+ StoreUri tempStoreUri = getManager().getStoreUri(tempStoreName, RemoteStoreProtocol.LOCAL);\r
+ Path path = Paths.get(tempStoreUri.toString(true), ".STATUS");\r
+\r
+ List<Path> escortFiles = new ArrayList<>();\r
+ directoryStream = Files.newDirectoryStream(path);\r
+ for (Path escortFile : directoryStream) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ return null;\r
+ }\r
+ escortFiles.add(escortFile);\r
+ }\r
+ allCount = escortFiles.size();\r
+ escortFiles.sort((p1, p2) -> {\r
+ return Long.valueOf(p1.toFile().lastModified()).compareTo(p2.toFile().lastModified());\r
+ });\r
+\r
+ if (allCount > 0) {\r
+ for (Path escortFile : escortFiles) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+\r
+ if (processPathItem(tempStoreUri, template, escortFile)) {\r
+ count--;\r
+ if (count == 0)\r
+ break;\r
+ }\r
+ currentCount++;\r
+ int progress = currentCount * 100 / allCount;\r
+ setProgress(progress);\r
+ }\r
+ }\r
+\r
+ setProgress(100);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\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 boolean processPathItem(StoreUri tempStoreUri, String template, Path escortFile) throws IOException {\r
+ if (escortFile.toFile().isDirectory())\r
+ return false;\r
+\r
+ //ami nem JSON azt nem kezeljuk\r
+ if (!escortFile.getFileName().toString().toLowerCase().endsWith(EscortFiles.DOT_JSON))\r
+ return false;\r
+\r
+ //aminek van COLORSPACE kiterjesztesu valtozata azt nem kezeljuk\r
+ // Path colorspaceFile = Paths.get(escortFile.toString() + ".colorspace");\r
+ // if (colorspaceFile.toFile().exists())\r
+ // return false;\r
+\r
+ if (EscortFiles.isCatchedFileExists(escortFile))\r
+ return false;\r
+\r
+ String escortFileName = escortFile.getFileName().toString();\r
+ //minimum 3 karakter: STORENAME.FILENAME.MXF.JSON\r
+ long dotCount = escortFileName.chars().filter(ch -> ch == '.').count();\r
+ if (dotCount < 3)\r
+ return false;\r
+\r
+ try {\r
+ DownloadableMedia downloadable = EscortFiles.decode(escortFile);\r
+ if (downloadable == null) {\r
+ logger.error(getSessionMarker(), "Can't encode {}", escortFile);\r
+ return false;\r
+ }\r
+\r
+ StoreUri sourceStoreUri = getManager().getStoreUri(downloadable.getLong("sourceStoreUriId"));\r
+ StoreUri targetStoreUri = getManager().getStoreUri(downloadable.getLong("targetStoreUriId"));\r
+\r
+ Store sourceStore = getManager().getStore(sourceStoreUri.getStoreId());\r
+ String sourceStoreName = sourceStore.getName();\r
+ template = sourceStoreName + "-" + template;\r
+ logger.info(getMarker(), "Starting {} for {}", template, escortFileName);\r
+\r
+ String sourceFileName = downloadable.getString("fileName");\r
+ Map<String, Object> parameters = new HashMap<>();\r
+ parameters.put("sourceStoreUri", sourceStoreUri);\r
+ parameters.put("fileName", sourceFileName);\r
+ parameters.put("tempStoreUri", tempStoreUri);\r
+ parameters.put("targetStoreUri", targetStoreUri);\r
+ parameters.put("expectedFrameNumber", downloadable.getLong("frames"));\r
+ parameters.put("expectedSize", downloadable.getLong("size"));\r
+ parameters.put("expectedColorSpace", downloadable.getString("colorSpace"));\r
+ parameters.put("escortFile", escortFile.toAbsolutePath().toString());\r
+\r
+ int priority = 50;\r
+\r
+ //megszakitasok miatt a mar lejott mozikat vegyuk elore 20.09.09\r
+ if (targetExists(tempStoreUri, sourceFileName))\r
+ priority = 51;\r
+\r
+ //parameterek: IJobRuntime parent, String template, String name, int priority, Map<String, Object> parameters\r
+ IJobRuntime child = getEngine().submit(null, e -> {\r
+ if (e.getStatus().equals(JobStatus.CANCELED) || e.getStatus().equals(JobStatus.SUSPENDED))\r
+ EscortFiles.removeCatchedFile(escortFile);\r
+ }, template, "Archiválás", priority, IJobEngine.DEFAULT_OWNER, parameters);\r
+ if (child == null)\r
+ throw new Exception("Submit error.");\r
+\r
+ child.setDescription(sourceFileName);\r
+\r
+ child.setRelated(downloadable.getString("title") + " / " + sourceStoreName);\r
+\r
+ EscortFiles.createCatchedFile(escortFile);\r
+\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private void sendStatusReport() {\r
+ IJobEngine engine = getEngine();\r
+ int jobCount = 0;\r
+ StringBuilder sb = new StringBuilder();\r
+ Map<Long, IJobRuntime> jobs = engine.getJobs();\r
+ if (jobs != null) {\r
+ Set<Long> keys = jobs.keySet();\r
+ jobCount = keys.size();\r
+ for (Long key : keys) {\r
+ IJobRuntime runtime = jobs.get(key);\r
+ if (JobStatus.SUSPENDED.equals(runtime.getStatus()))\r
+ sb.append(runtime.getRelated() + " SUSPENDED: " + runtime.getDescription() + "</br>");\r
+ }\r
+ }\r
+ MediaCubeMarker marker = new MediaCubeMarker();\r
+ marker.setSubject("AMC MediaCube feldolgozási sor " + jobCount);\r
+ logger.info(marker, sb.toString());\r
+ }\r
+\r
+ private boolean targetExists(StoreUri storeUri, String fileName) {\r
+ try {\r
+ Path targetFile = Paths.get(storeUri.toString(true), fileName);\r
+ if (targetFile.toFile().exists()) {\r
+ logger.info(getMarker(), "Retrieved file {} exists", fileName);\r
+ return true;\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ }\r
+ logger.info(getMarker(), "Retrieved file {} not exists yet", fileName);\r
+ return false;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.JobStatus;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.Store;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class ForkUploadStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(String tempStoreName, String template, String expectedColorSpace, int limit) throws Exception {\r
+ DirectoryStream<Path> directoryStream = null;\r
+ int count = limit;\r
+ int allCount = 0;\r
+ int currentCount = 0;\r
+\r
+ try {\r
+ StoreUri tempStoreUri = getManager().getStoreUri(tempStoreName, RemoteStoreProtocol.LOCAL);\r
+ Path path = Paths.get(tempStoreUri.toString(true), ".STATUS");\r
+\r
+ List<Path> escortFiles = new ArrayList<>();\r
+ directoryStream = Files.newDirectoryStream(path);\r
+ for (Path escortFile : directoryStream) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ return null;\r
+ }\r
+ escortFiles.add(escortFile);\r
+ }\r
+ allCount = escortFiles.size();\r
+ //a file neve az adasbakerules idopontjaval kezdodik\r
+ // escortFiles.sort((p1, p2) -> {\r
+ // return p1.compareTo(p2);\r
+ // });\r
+\r
+ //200911 megis inkabb a letrehozas idopontja legyen\r
+ escortFiles.sort((p1, p2) -> {\r
+ return Long.valueOf(p1.toFile().lastModified()).compareTo(p2.toFile().lastModified());\r
+ });\r
+\r
+ if (allCount > 0) {\r
+ for (Path escortFile : escortFiles) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+\r
+ if (processPathItem(tempStoreUri, template, escortFile)) {\r
+ count--;\r
+ if (count == 0)\r
+ break;\r
+ }\r
+ currentCount++;\r
+ int progress = currentCount * 100 / allCount;\r
+ setProgress(progress);\r
+ }\r
+ }\r
+\r
+ setProgress(100);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\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 getTSMFileName(long mediaId, StoreUri sourceStoreUri) {\r
+ String result = null;\r
+ Media media = getManager().getMedia(mediaId);\r
+\r
+ if (media != null) {\r
+ List<MediaFile> mediaFiles = media.getMediaFiles();\r
+ for (MediaFile mediaFile : mediaFiles) {\r
+ if (mediaFile.getStoreId() == sourceStoreUri.getStoreId()) {\r
+ result = mediaFile.getRelativePath();\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+ private boolean processPathItem(StoreUri tempStoreUri, String template, Path escortFile) throws IOException {\r
+ if (escortFile.toFile().isDirectory())\r
+ return false;\r
+\r
+ //ami nem JSON azt nem kezeljuk\r
+ if (!escortFile.getFileName().toString().toLowerCase().endsWith(EscortFiles.DOT_JSON))\r
+ return false;\r
+\r
+ //aminek van COLORSPACE kiterjesztésű\r
+ // Path colorspaceFile = Paths.get(escortFile.toString() + ".colorspace");\r
+ // if (colorspaceFile.toFile().exists())\r
+ // return false;\r
+\r
+ if (EscortFiles.isCatchedFileExists(escortFile))\r
+ return false;\r
+\r
+ String escortFileName = escortFile.getFileName().toString();\r
+ //minimum 3 karakter: STORENAME.FILENAME.MXF.JSON\r
+ long dotCount = escortFileName.chars().filter(ch -> ch == '.').count();\r
+ if (dotCount < 3)\r
+ return false;\r
+\r
+ try {\r
+ DownloadableMedia downloadable = EscortFiles.decode(escortFile);\r
+\r
+ if (downloadable == null) {\r
+ logger.error(getSessionMarker(), "Can't decode {}", escortFile);\r
+ return false;\r
+ }\r
+\r
+ StoreUri sourceStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+\r
+ long mediaId = downloadable.getLong("mediaId");\r
+ String tsmFileName = getTSMFileName(mediaId, sourceStoreUri);\r
+ if (StringUtils.isBlank(tsmFileName)) {\r
+ logger.error(getMarker(), "Media ID not exists anymore {}", mediaId);\r
+ return false;\r
+ }\r
+\r
+ StoreUri targetStoreUri = getManager().getStoreUri(downloadable.getLong("targetStoreUriId"));\r
+\r
+ Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+ template = targetStore.getName() + "-" + template;\r
+ logger.info(getMarker(), "Starting {} for {}", template, escortFileName);\r
+\r
+ String targetFileName = downloadable.getString("fileName");\r
+\r
+ Map<String, Object> parameters = new HashMap<>();\r
+ parameters.put("sourceStoreUri", sourceStoreUri);\r
+ parameters.put("tsmFileName", tsmFileName);\r
+ parameters.put("fileName", targetFileName);\r
+ parameters.put("tempStoreUri", tempStoreUri);\r
+ parameters.put("targetStoreUri", targetStoreUri);\r
+ parameters.put("relativeTargetPath", downloadable.getString("relativeTargetPath"));\r
+ parameters.put("expectedFrameNumber", downloadable.getLong("frames"));\r
+ parameters.put("expectedSize", downloadable.getLong("size"));\r
+ parameters.put("expectedColorSpace", downloadable.getString("colorSpace"));\r
+ parameters.put("escortFile", escortFile.toAbsolutePath().toString());\r
+\r
+ //int priority = downloadable.containsKey("priority") ? downloadable.getInt("priority") : 0;\r
+ //mindenki egyforman induljon 20.09.07\r
+ //a NEXIO egy kicsit fontosabb 20.09.08. megsem 20.09.09\r
+ //int priority = escortFile.toString().contains("NEXIO") ? 51 : 50;\r
+ //megszakitasok miatt a mar lejott mozikat vegyuk elore 20.09.09\r
+\r
+ int priority = 50;\r
+ if (targetExists(tempStoreUri, targetFileName))\r
+ priority = 51;\r
+\r
+ //parameterek: IJobRuntime parent, String template, String name, int priority, Map<String, Object> parameters\r
+ IJobRuntime child = getEngine().submit(null, e -> {\r
+ if (e.getStatus().equals(JobStatus.CANCELED) || e.getStatus().equals(JobStatus.SUSPENDED))\r
+ EscortFiles.removeCatchedFile(escortFile);\r
+ }, template, "Visszatöltés", priority, IJobEngine.DEFAULT_OWNER, parameters);\r
+ if (child == null)\r
+ throw new Exception("Submit error.");\r
+\r
+ child.setDescription(escortFileName);\r
+\r
+ child.setRelated(downloadable.getString("title") + " / " + targetStore.getName());\r
+ EscortFiles.createCatchedFile(escortFile);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private boolean targetExists(StoreUri storeUri, String fileName) {\r
+ try {\r
+ Path targetFile = Paths.get(storeUri.toString(true), fileName);\r
+ if (targetFile.toFile().exists()) {\r
+ logger.info(getMarker(), "Retrieved file {} exists", fileName);\r
+ return true;\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ }\r
+ logger.info(getMarker(), "Retrieved file {} not exists yet", fileName);\r
+ return false;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\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.DownloadableMedia;\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+\r
+public class GenericArchiveCheckerStep extends JobStep {\r
+ private static final String DOT_MXF = ".MXF";\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ private boolean check(Timestamp modified, Timestamp created, Media media) {\r
+ boolean create = media == null;\r
+ create |= create || !media.getModified().equals(modified);\r
+ create |= create || !media.getCreated().equals(created);\r
+ return create;\r
+ }\r
+\r
+ @StepEntry\r
+ public Object[] execute(String sourceStoreName, String protocol, String wildCard, String escortStoreName, int limit) throws Exception {\r
+ StoreUri sourceStoreUri = null;\r
+ int count = limit;\r
+\r
+ try {\r
+ sourceStoreUri = getManager().getStoreUri(sourceStoreName, Enum.valueOf(RemoteStoreProtocol.class, protocol));\r
+ StoreUri escortSoreUri = getManager().getStoreUri(escortStoreName, RemoteStoreProtocol.LOCAL);\r
+ StoreUri targetStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+\r
+ String outputPath = Paths.get(escortSoreUri.toString(true)).toString();\r
+\r
+ //az FTP store nem tamogatja az asszinkron listazast\r
+ List<RemoteFile> remoteFiles = sourceStoreUri.getRemoteFiles(wildCard);\r
+ for (RemoteFile remoteFile : remoteFiles) {\r
+ if (processClip(sourceStoreName, remoteFile, sourceStoreUri, targetStoreUri, outputPath))\r
+ count--;\r
+\r
+ if (count == 0) {\r
+ logger.info("Limit reached: {}", limit);\r
+ break;\r
+ }\r
+\r
+ }\r
+ } catch (Exception e) {\r
+ throw e;\r
+ } finally {\r
+ if (sourceStoreUri != null)\r
+ sourceStoreUri.cleanUp();\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private boolean processClip(String storeName, RemoteFile remoteFile, StoreUri sourceStoreUri, StoreUri targetStoreUri, String outputPath) {\r
+ boolean result = false;\r
+ String title = remoteFile.getName();\r
+ Timestamp modified = Timestamp.from(remoteFile.getModify().toInstant());\r
+ Timestamp created = Timestamp.from(remoteFile.getCreated().toInstant());\r
+\r
+ //TODO a masolas alatt allo klippeket kiszurni\r
+ if (title.contains("."))\r
+ title = title.substring(0, title.indexOf("."));\r
+ long size = remoteFile.getSize();\r
+\r
+ Media media = getManager().getMedia(title);\r
+\r
+ boolean createEscort = check(modified, created, media);\r
+\r
+ if (createEscort) {\r
+ long mediaId = media == null ? 0 : media.getId();\r
+ String fileName = title + DOT_MXF;\r
+ DownloadableMedia archive = DownloadableMedia.create(title, fileName, modified, created, 0, size, sourceStoreUri.getId(), targetStoreUri.getId(),\r
+ mediaId);\r
+ String escortFileName = storeName + "." + remoteFile.getName();\r
+ try {\r
+ result = EscortFiles.createMetadataIfNotExists(outputPath, escortFileName, archive.toPrettyString(""));\r
+ } catch (IOException e) {\r
+ logger.error("Escort file creation error.", e);\r
+ }\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.util.Arrays;\r
+import java.util.List;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.ibm.nosql.json.api.BasicDBList;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.harris.HarrisRecord;\r
+import user.commons.harris.VICFileParser;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+\r
+public class HarrisMissingMaterialCheckerStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger(HarrisMissingMaterialCheckerStep.class);\r
+ private static final String lineFormat = System.getProperty("harris.vic.lineformat",\r
+ "A TTTTTTTT LLLLLLLLLLL MMMMMMMMMMMMMMMMMMMMMMM X DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");\r
+ private static final String validTypeCodes = System.getProperty("harris.vic.validtypecodes", "SPACE,E");\r
+ private static final String appendExtension = System.getProperty("missingmaterial.appendextension", ".mxf");\r
+\r
+ @StepEntry\r
+ public Object[] execute(BasicDBList vicFiles, String escortStoreName, String targetStoreName, String targetProtocol) throws Exception {\r
+ StoreUri escortStoreUri = null;\r
+ StoreUri targetStoreUri = null;\r
+ try {\r
+ getJobRuntime().setRelated(targetStoreName + " restore");\r
+\r
+ escortStoreUri = getManager().getStoreUri(escortStoreName, RemoteStoreProtocol.LOCAL);\r
+ targetStoreUri = getManager().getStoreUri(targetStoreName, Enum.valueOf(RemoteStoreProtocol.class, targetProtocol));\r
+ StoreUri sourceStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+ List<HarrisRecord> records = null;\r
+ for (Object vicFile : vicFiles) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+\r
+ Path vicFilePath = Paths.get(String.valueOf(vicFile));\r
+\r
+ if (!vicFilePath.toFile().exists()) {\r
+ logger.warn("File not exists: {}", vicFilePath);\r
+ continue;\r
+ }\r
+\r
+ logger.info(getMarker(), "Processing {}", vicFilePath);\r
+ records = processVICFile(records, vicFilePath);\r
+ }\r
+\r
+ if (records != null && !getJobRuntime().isWaitingCancel()) {\r
+ FTPClient client = ((FtpDirectoryLister) targetStoreUri.getLister()).connect();\r
+ logger.info(getMarker(), "Reading target file list");\r
+ List<String> fileNames = Arrays.asList(client.listNames());\r
+ logger.info(getMarker(), "Target file list reading completed, mediabase size is {}", fileNames.size());\r
+ int i = 0;\r
+ for (HarrisRecord record : records) {\r
+\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+\r
+ boolean contains = fileNames.contains(record.getFileName() + ".lxf");\r
+ if (contains)\r
+ logger.info(getMarker(), "File {} already exists on {}", record.getFileName(), targetStoreName);\r
+ else\r
+ processRecord(record, targetStoreName, sourceStoreUri, targetStoreUri, escortStoreUri);\r
+ i++;\r
+ int progress = i * 100 / records.size();\r
+ setProgress(progress);\r
+ }\r
+ }\r
+\r
+ if (records == null || records.size() == 0)\r
+ logger.info(getMarker(), "Nothing to do");\r
+ else\r
+ logger.info(getMarker(), "Completed");\r
+\r
+ setProgress(100);\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ if (escortStoreUri != null)\r
+ escortStoreUri.cleanUp();\r
+ if (targetStoreUri != null)\r
+ targetStoreUri.cleanUp();\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private boolean processRecord(HarrisRecord record, String targetStoreName, StoreUri sourceStoreUri, StoreUri targetStoreUri, StoreUri escortStoreUri)\r
+ throws Exception {\r
+\r
+ String fileName = record.getFileName();\r
+ String outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+\r
+ if (StringUtils.isNotBlank(appendExtension))\r
+ fileName += appendExtension;\r
+\r
+ String escortFileName = targetStoreName + "." + fileName;\r
+\r
+ //ha mar letezik, nem toltjuk fel ujra (a vic fajlbol kezzel torlik valamikor...)\r
+ try {\r
+ if (EscortFiles.isMetadataExists(outputPath, escortFileName)) {\r
+ logger.debug(getMarker(), "Status file already exists {}", escortFileName);\r
+ return true;\r
+ }\r
+ } catch (IOException e1) {\r
+ logger.info(getMarker(), "Status file check error for {}", fileName);\r
+ return true;\r
+ }\r
+\r
+ //nincs bent MC-ben\r
+ Media media = getManager().getMedia(record.getFileName());\r
+ if (media == null) {\r
+ logger.error(getSessionMarker(), "File is not available in archive {}", record.getFileName());\r
+ return true;\r
+ }\r
+\r
+ // if (existsOnNexio(record, targetStoreName, targetStoreUri)) {\r
+ // logger.info(getMarker(), "File {} already exists on {}", record.getFileName(), targetStoreName);\r
+ // return false;\r
+ // }\r
+\r
+ DownloadableMedia downloadable = DownloadableMedia.create(media.getTitle(), fileName, media.getModified(), media.getCreated(), media.getLength(), 0L,\r
+ sourceStoreUri.getId(), targetStoreUri.getId(), media.getId());\r
+\r
+ //alapbol magasabb (1-99)\r
+ downloadable.put("priority", 50);\r
+ downloadable.put("isNexio", true);\r
+\r
+ try {\r
+ EscortFiles.createMetadata(outputPath, escortFileName, downloadable.toPrettyString(""));\r
+ logger.info(getMarker(), "Status file created {}", escortFileName);\r
+ } catch (Exception e) {\r
+ logger.error("Can't create escort file {}. System message is: {}", escortFileName, e.getMessage());\r
+ }\r
+ return true;\r
+ }\r
+\r
+ private List<HarrisRecord> processVICFile(List<HarrisRecord> records, Path vicFilePath) {\r
+ VICFileParser parser = null;\r
+ try {\r
+ parser = new VICFileParser(vicFilePath, lineFormat, validTypeCodes);\r
+\r
+ List<HarrisRecord> currentRecords = parser.getRecords();\r
+ if (records == null)\r
+ records = currentRecords;\r
+ else {\r
+ if (currentRecords != null)\r
+ records.addAll(currentRecords);\r
+ }\r
+\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ }\r
+ return records;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\r
+import java.time.Instant;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.Item;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+\r
+public class MetadataPersisterStep extends JobStep {\r
+ private static final String GENERIC = "Generic";\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri targetStoreUri, String escortFile) throws Exception {\r
+ try {\r
+\r
+ Path escortFilePath = Paths.get(escortFile);\r
+ //ha nem ment at a letoltott file az ellenorzesen, akkor már torolve lett\r
+ if (escortFilePath.toFile().exists()) {\r
+ String escortFileName = escortFilePath.getFileName().toString();\r
+ String sourceStoreName = escortFileName.substring(0, escortFileName.indexOf("."));\r
+ DownloadableMedia downloadable = EscortFiles.decode(escortFilePath);\r
+ String title = downloadable.getString("title");\r
+ String fileName = downloadable.getString("fileName");\r
+ long mediaId = downloadable.containsKey("mediaId") ? downloadable.getLong("mediaId") : 0;\r
+ String fileTypeName = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();\r
+\r
+ IItemManager manager = getManager();\r
+\r
+ if (mediaId == 0) {\r
+ mediaId = tryGetMediaId(title, mediaId);\r
+ }\r
+\r
+ //TODO ha van mediaId, akkor update!!!!!!!!!\r
+\r
+ Timestamp modified = downloadable.getTimestamp("modified");\r
+ Timestamp created = downloadable.getTimestamp("created");\r
+ long frames = downloadable.getLong("frames");\r
+ \r
+ if (mediaId == 0) {\r
+ String targetStoreName = getManager().getStore(targetStoreUri.getStoreId()).getName();\r
+ //ez elszallhat, mert nincs filetype vagy store\r
+ MediaFile mediaFile = manager.createMediaFile(fileName, fileTypeName, targetStoreName);\r
+ //ez elszallhat, mert nincs itemtype\r
+ Item item = manager.createItem(GENERIC, title, sourceStoreName, null);\r
+ //ez elszallhat, mert nincs itemtype\r
+ Media media = manager.createMedia(GENERIC, title, sourceStoreName, null);\r
+\r
+ //TODO megoldani egy tranzakcioban\r
+ item.add();\r
+ media.setItemId(item.getId());\r
+ media.setLength(frames);\r
+ media.setCreated(created);\r
+ media.setModified(modified);\r
+ media.setArchived(Timestamp.from(Instant.now()));\r
+ media.add();\r
+\r
+ //TODO\r
+ //mediaFile.setFileSize(fileSize);\r
+ mediaFile.setMediaId(media.getId());\r
+ mediaFile.setLastModified(modified);\r
+ mediaFile.add();\r
+ } else {\r
+ Media media = manager.getMedia(mediaId);\r
+ media.setLength(frames);\r
+ media.setCreated(created);\r
+ media.setModified(modified);\r
+ media.setArchived(Timestamp.from(Instant.now()));\r
+ manager.modify(media);\r
+\r
+ //TODO\r
+ //mediaFile.setFileSize(fileSize);\r
+ MediaFile mediaFile = manager.getSystemMediaFile(media);\r
+ mediaFile.setRelativePath(fileName);\r
+ mediaFile.setLastModified(modified);\r
+ manager.modify(mediaFile);\r
+ }\r
+\r
+ } else\r
+ logger.error(getMarker(), "Status file does not exists {}", escortFilePath);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ }\r
+ return null;\r
+ }\r
+\r
+ private long tryGetMediaId(String title, long mediaId) {\r
+ Media media = null;\r
+ //duplikatum miatt\r
+ try {\r
+ media = getManager().getMedia(title);\r
+ if (media != null)\r
+ mediaId = media.getId();\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), "Media with title {} is not available. System message is: {}", title, e.getMessage());\r
+ }\r
+ return mediaId;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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 user.commons.StoreUri;\r
+\r
+public class NEXIO1TransferFromStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ Object[] result = null;\r
+ try {\r
+ Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
+ if (targetFile.toFile().exists()) {\r
+ logger.info(getMarker(), "Using previously retrived file {}", targetFile);\r
+ } else {\r
+ result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ }\r
+ return result;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.util.Arrays;\r
+import java.util.List;\r
+\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+\r
+public class NEXIO1TransferToStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ //\r
+ // try {\r
+ // String title = targetFileName;\r
+ // if (title.contains("."))\r
+ // title = title.substring(0, title.lastIndexOf("."));\r
+ // RemoteFile remoteFile = targetStoreUri.getFileWithContent(title + ".xml");\r
+ // if (remoteFile != null && remoteFile.getContent() != null) {\r
+ // logger.info("File already exists on NEXIO1 {}", targetFileName);\r
+ // return null;\r
+ // }\r
+ // } catch (Exception e) {\r
+ // logger.error(e.getMessage());\r
+ // } finally {\r
+ // targetStoreUri.cleanUp();\r
+ // }\r
+/*\r
+ try {\r
+ FTPClient client = ((FtpDirectoryLister) targetStoreUri.getLister()).connect();\r
+ logger.info(getMarker(), "Reading target file list");\r
+ List<String> fileNames = Arrays.asList(client.listNames());\r
+ logger.info(getMarker(), "Target file list reading completed, mediabase size is {}", fileNames.size());\r
+ String title = targetFileName.replace(".mxf", ".lxf");\r
+ boolean contains = fileNames.contains(title);\r
+ if (contains) {\r
+ logger.info(getMarker(), "File already exists {} on {}", title, getManager().getStore(targetStoreUri.getStoreId()).getName());\r
+ return null;\r
+ }\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ } finally {\r
+ targetStoreUri.cleanUp();\r
+ }\r
+*/\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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 user.commons.StoreUri;\r
+\r
+public class NEXIO2TransferFromStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ Object[] result = null;\r
+ try {\r
+ Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
+ if (targetFile.toFile().exists()) {\r
+ logger.info(getMarker(), "Using previously retrived file {}", targetFile);\r
+ } else {\r
+ result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ }\r
+ return result;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.util.Arrays;\r
+import java.util.List;\r
+\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+\r
+public class NEXIO2TransferToStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ // try {\r
+ // String title = targetFileName;\r
+ // if (title.contains("."))\r
+ // title = title.substring(0, title.lastIndexOf("."));\r
+ // RemoteFile remoteFile = targetStoreUri.getFileWithContent(title + ".xml");\r
+ // if (remoteFile != null && remoteFile.getContent() != null) {\r
+ // logger.info("File already exists on NEXIO2 {}", targetFileName);\r
+ // return null;\r
+ // }\r
+ // } catch (Exception e) {\r
+ // logger.error(e.getMessage());\r
+ // } finally {\r
+ // targetStoreUri.cleanUp();\r
+ // }\r
+/*\r
+ try {\r
+ FTPClient client = ((FtpDirectoryLister) targetStoreUri.getLister()).connect();\r
+ logger.info(getMarker(), "Reading target file list");\r
+ List<String> fileNames = Arrays.asList(client.listNames());\r
+ logger.info(getMarker(), "Target file list reading completed, mediabase size is {}", fileNames.size());\r
+ String title = targetFileName.replace(".mxf", ".lxf");\r
+ boolean contains = fileNames.contains(title);\r
+ if (contains) {\r
+ logger.info(getMarker(), "File already exists {} on {}", title, getManager().getStore(targetStoreUri.getStoreId()).getName());\r
+ return null;\r
+ }\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ } finally {\r
+ targetStoreUri.cleanUp();\r
+ }\r
+*/\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\r
+import java.text.SimpleDateFormat;\r
+import java.time.Duration;\r
+import java.time.Instant;\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.DownloadableMedia;\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.MediaFile;\r
+\r
+public class NEXIOArchiveCheckerStep extends JobStep {\r
+ private static final String DOT_MXF = ".mxf";\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd-HHmmss");\r
+\r
+ private boolean check(Timestamp modified, Timestamp created, int duration, Media media, int videoFormat, int lastModifiedHours) {\r
+ String title = media.getTitle();\r
+\r
+ //formatum\r
+ if (!(videoFormat == 3 || videoFormat == 19)) {\r
+ logger.debug(getMarker(), "{} unsupported video format", videoFormat);\r
+ return false;\r
+ }\r
+\r
+ if (!checkModifiedByTime(title, modified, lastModifiedHours))\r
+ return false;\r
+\r
+ //utolso modositas\r
+ MediaFile mediaFile = getManager().getSystemMediaFile(media);\r
+ boolean isModified = true;\r
+ if (mediaFile == null) {\r
+ logger.info(getMarker(), "{} system media file not available", title);\r
+ return false;\r
+ }\r
+\r
+ String mcMod = df.format(mediaFile.getLastModified());\r
+ String nexioMod = df.format(modified);\r
+ isModified = mcMod.compareTo(nexioMod) < 0;\r
+ if (isModified) {\r
+ logger.info(getMarker(), "{} modification time: MC {} < NEXIO {}", title, mcMod, nexioMod);\r
+ return true;\r
+ }\r
+\r
+ boolean isLengthChanged = media.getLength() > 0 && Math.abs(media.getLength() - duration) > 3;\r
+ if (isLengthChanged) {\r
+ logger.info(getMarker(), "{} length: MC {} != NEXIO {}", title, media.getLength(), duration);\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
+ private boolean checkModifiedByTime(String title, Timestamp modified, int lastModifiedHours) {\r
+ //utolso modositas a mosthoz kepest\r
+ //The result of this method can be a negative period if the end is before the start.\r
+ long modifiedHours = Duration.between(modified.toInstant(), Instant.now()).toHours();\r
+ if (modifiedHours < 0) {\r
+ logger.info(getMarker(), "{} modification time greather than now", title);\r
+ return false;\r
+ }\r
+ if (modifiedHours < lastModifiedHours) {\r
+ logger.debug(getMarker(), "{} modification time is too cloose for now", title);\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ @StepEntry\r
+ public Object[] execute(String sourceStoreName, String escortStoreName, int lastModifiedHours) throws Exception {\r
+ Controller controller = null;\r
+\r
+ try {\r
+ getJobRuntime().setRelated(sourceStoreName + " archive");\r
+\r
+ StoreUri nexioStoreUri = getManager().getStoreUri(sourceStoreName, RemoteStoreProtocol.NEXIO);\r
+ StoreUri sourceStoreUri = getManager().getStoreUri(sourceStoreName, RemoteStoreProtocol.FTP);\r
+ StoreUri targetStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+ StoreUri escortStoreUri = getManager().getStoreUri(escortStoreName, RemoteStoreProtocol.LOCAL);\r
+ String outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+\r
+ logger.info(getMarker(), "Connecting mediabase {}", nexioStoreUri.toString());\r
+ if (nexioStoreUri.getPortNumber() == 0)\r
+ controller = new Controller(nexioStoreUri.getUri(), nexioStoreUri.getPortNumber());\r
+ else\r
+ controller = new Controller(nexioStoreUri.getUri());\r
+ controller.connect();\r
+ Mediabase mediabase = controller.getMediabase();\r
+\r
+ Iterator<Clip> clips = mediabase.getClips();\r
+ logger.info(getMarker(), "Processing clips");\r
+\r
+ processClips(sourceStoreName, sourceStoreUri, targetStoreUri, outputPath, clips, lastModifiedHours);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage() == null ? "Unknown error" : e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ setProgress(100);\r
+ if (controller != null)\r
+ controller.disconnect();\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private void processClips(String storeName, StoreUri sourceStoreUri, StoreUri targetStoreUri, String outputPath, Iterator<Clip> clips,\r
+ int lastModifiedHours) throws ClipNotFoundException, IOException, ProtocolException {\r
+ int processed = 0;\r
+ while (clips.hasNext()) {\r
+\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+\r
+ Clip clip = clips.next();\r
+\r
+ try {\r
+ String title = null;\r
+ Timestamp created = null;\r
+ Timestamp modified = null;\r
+ int frames = 0;\r
+ int videoFormat = 0;\r
+ frames = clip.getDuration();\r
+\r
+ //ures clip\r
+ if (frames == 1)\r
+ continue;\r
+\r
+ title = clip.getXid().get();\r
+ created = Timestamp.from(clip.getRecordDateTimestamp().toInstant());\r
+ modified = Timestamp.from(clip.getModifiedTimestamp().toInstant());\r
+ videoFormat = clip.getVideoFormat();\r
+\r
+ Media media = getManager().getMedia(title);\r
+ logger.debug(getMarker(), "Checking {}", title);\r
+ boolean createEscort = false;\r
+\r
+ long mediaId = 0;\r
+ if (media == null) {\r
+ if (checkModifiedByTime(title, modified, lastModifiedHours)) {\r
+ createEscort = true;\r
+ logger.info(getMarker(), "{} not archived yet", title);\r
+ }\r
+ } else {\r
+ mediaId = media.getId();\r
+ createEscort = check(modified, created, frames, media, videoFormat, lastModifiedHours);\r
+ }\r
+\r
+ if (createEscort && !title.contains("*")) {\r
+ String fileName = title + DOT_MXF;\r
+ DownloadableMedia downloadable = DownloadableMedia.create(title, fileName, modified, created, frames, 0, sourceStoreUri.getId(),\r
+ targetStoreUri.getId(), mediaId);\r
+ String escortFileName = storeName + "." + downloadable.getString("fileName");\r
+ if (EscortFiles.createMetadataIfNotExists(outputPath, escortFileName, downloadable.toPrettyString(""))) {\r
+ logger.info(getMarker(), "Archive status file created for {}", fileName);\r
+ } else {\r
+ logger.info(getMarker(), "Archive status file already exists for {}", fileName);\r
+ }\r
+\r
+ }\r
+\r
+ processed++;\r
+ if (processed % 100 == 0)\r
+ logger.info(getMarker(), "Processed {} records", processed);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ continue;\r
+ }\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\r
+import java.text.SimpleDateFormat;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.w3c.dom.Document;\r
+import org.w3c.dom.Node;\r
+import org.w3c.dom.NodeList;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+\r
+public class NEXIOMetadataPersisterStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String DOT_XML = ".xml";\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri targetStoreUri, String escortFile) throws Exception {\r
+ try {\r
+ Path escortFilePath = Paths.get(escortFile);\r
+ if (!escortFilePath.toFile().exists()) {\r
+ logger.error(getMarker(), "Status file does not exists {}", escortFilePath);\r
+ return null;\r
+ }\r
+\r
+ DownloadableMedia downloadable = EscortFiles.decode(escortFilePath);\r
+ if (!downloadable.containsKey("isNexio") || !downloadable.getBoolean("isNexio"))\r
+ return null;\r
+\r
+ if (!downloadable.containsKey("mediaId"))\r
+ throw new NullPointerException("No media ID found for " + downloadable.getString("title"));\r
+\r
+ Media media = getManager().getMedia(downloadable.getLong("mediaId"));\r
+ MediaFile mediaFile = getManager().getSystemMediaFile(media);\r
+ if (mediaFile == null)\r
+ throw new NullPointerException("No TSM media file found for " + downloadable.getString("title"));\r
+\r
+ RemoteFile remoteFile = targetStoreUri.getFileWithContent(downloadable.getString("title") + ".xml");\r
+\r
+ //TODO mediafile lastmodified = feltoltott file nexio xml lastmodified\r
+ Timestamp lastModified = getLastModified(remoteFile);\r
+ logger.info("Setting last modification time on {} to {}", downloadable.getString("title"), lastModified);\r
+ mediaFile.setLastModified(lastModified);\r
+ getManager().modify(mediaFile);\r
+\r
+ // if (!RemoteStoreProtocol.FTP.equals(targetStoreUri.getProtocol()))\r
+ // return null;\r
+\r
+ //\r
+ // String title = downloadable.getString("title");\r
+ // String fileName = downloadable.getString("fileName");\r
+ // Date created = downloadable.getDate("created");\r
+ // Date modified = downloadable.getDate("modified");\r
+ // byte[] metadata = EscortFiles.createNEXIODatesMeta(title, created, modified);\r
+ // uploadMeta(targetStoreUri, fileName, metadata);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ if (targetStoreUri != null)\r
+ targetStoreUri.cleanUp();\r
+ }\r
+ return null;\r
+ }\r
+\r
+ private Timestamp getLastModified(RemoteFile remoteFile) throws Exception {\r
+ Timestamp result = null;\r
+ Document document = EscortFiles.createNEXIOMeta(remoteFile.getContent());\r
+ Node firstChild = document.getFirstChild();\r
+ NodeList list = firstChild.getChildNodes();\r
+ for (int i = 0; i < list.getLength(); i++) {\r
+ Node item = list.item(i);\r
+ if (item.getNodeName().equals("ModifiedTimeStamp")) {\r
+ SimpleDateFormat df = new SimpleDateFormat("MM-dd-yyyy (HH:mm:ss)");\r
+ result = Timestamp.from(df.parse(item.getTextContent()).toInstant());\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ // private void uploadMeta(StoreUri storeUri, String fileName, byte[] metadata) throws Exception {\r
+ // logger.info(getMarker(), "Uploading metadata for {}", fileName);\r
+ // OutputStream outStream = null;\r
+ // try {\r
+ // FTPClient sourceFtp = ((FtpDirectoryLister) storeUri.getLister()).connect();\r
+ // outStream = sourceFtp.storeFileStream(fileName + DOT_XML);\r
+ // if (outStream == null)\r
+ // throw new NullPointerException("Can not create: " + fileName + DOT_XML + " on FTP. Reply is:" + sourceFtp.getReplyString());\r
+ // outStream.write(metadata);\r
+ // outStream.flush();\r
+ // } catch (Exception e) {\r
+ // logger.catching(e);\r
+ // throw e;\r
+ // } finally {\r
+ // if (outStream != null)\r
+ // outStream.close();\r
+ // storeUri.cleanUp();\r
+ // }\r
+ // }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.commons.io.FileUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+import org.apache.logging.log4j.MarkerManager;\r
+\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
+import user.commons.mediatool.MediaInfo;\r
+\r
+public class PASAPOOLTransferToStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String CODEC_PROFILE_HIGH = "HIGH";\r
+ private static final String CODEC_PROFILE_MAIN = "MAIN";\r
+ private static final String CODEC_PROFILE_422 = "4:2:2";\r
+ private static final String DISPLAY_ASPECT_16_9 = "16:9";\r
+ private static final String DISPLAY_ASPECT_4_3 = "4:3";\r
+ private StoreUri sourceStoreUri;\r
+ private String sourceFileName;\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ this.sourceStoreUri = sourceStoreUri;\r
+ this.sourceFileName = sourceFileName;\r
+ logMediaProfile();\r
+ long start = System.currentTimeMillis();\r
+ Object[] result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ RemoteFile remoteFile = sourceStoreUri.getRemoteFile(targetFileName);\r
+ if (remoteFile != null && remoteFile.getSize() > 0) {\r
+ long diff = (System.currentTimeMillis() - start) / 1000;\r
+ if (diff > 0) {\r
+ long bytesSpeed = remoteFile.getSize() / diff;\r
+ String speed = FileUtils.byteCountToDisplaySize(bytesSpeed);\r
+ logger.info(getMarker(), "{} size is {}, upload speed was {}/sec", targetFileName, FileUtils.byteCountToDisplaySize(remoteFile.getSize()), speed);\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ // HD\r
+ // height = 1080\r
+ // >PEABLEBEACH | \\10.170.100.21\media\BeachPool\r
+ private boolean isHD(MediaInfo mi) {\r
+ return mi.getHeight() == 1080;\r
+ }\r
+\r
+ // @Override\r
+ // protected StoreUri getTargetStoreUri() {\r
+ // StoreUri result = null;\r
+ // try {\r
+ // Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
+ // MediaInfo mi = new MediaInfo(filePath);\r
+ // mi.process();\r
+ //\r
+ // if (isHD(mi)) {\r
+ // result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
+ // return result;\r
+ // }\r
+ //\r
+ // if (isSD_HIGH_16_9(mi)) {\r
+ // result = getManager().getStoreUri("SELENIOPOOL_16_9", targetStoreUri.getProtocol());\r
+ // return result;\r
+ // }\r
+ //\r
+ // if (isSD_HIGH_4_3(mi)) {\r
+ // result = getManager().getStoreUri("SELENIOPOOL_4_3", targetStoreUri.getProtocol());\r
+ // return result;\r
+ // }\r
+ //\r
+ // if (isSD_MAIN_422(mi)) {\r
+ // result = getManager().getStoreUri("PEABLEBEACH", targetStoreUri.getProtocol());\r
+ // return result;\r
+ // }\r
+ // } catch (Exception e) {\r
+ // logger.error(getSessionMarker(), e.getMessage());\r
+ // result = targetStoreUri;\r
+ // }\r
+ // return result;\r
+ // }\r
+\r
+ // SD - HIGH@HIGH / 16:9\r
+ // height < 650\r
+ // profile=High\r
+ // aspect=16:9\r
+ // >SELENIOPOOL_16_9 | \\10.170.100.21\media\SelenioPool\16_9\r
+ private boolean isSD_HIGH_16_9(MediaInfo mi) {\r
+ String codecProfileName = mi.getCodecProfileName();\r
+ if (codecProfileName != null)\r
+ codecProfileName = codecProfileName.toUpperCase();\r
+ return mi.getHeight() < 650 && CODEC_PROFILE_HIGH.equals(codecProfileName) && DISPLAY_ASPECT_16_9.equals(mi.getDisplayAspect());\r
+ }\r
+\r
+ // SD - HIGH@HIGH / 4:3\r
+ // height < 650\r
+ // profile=High\r
+ // aspect=4:3\r
+ // >SELENIOPOOL_4_3 | \\10.170.100.21\media\SelenioPool\4_3\r
+ private boolean isSD_HIGH_4_3(MediaInfo mi) {\r
+ String codecProfileName = mi.getCodecProfileName();\r
+ if (codecProfileName != null)\r
+ codecProfileName = codecProfileName.toUpperCase();\r
+ return mi.getHeight() < 650 && CODEC_PROFILE_HIGH.equals(codecProfileName) && DISPLAY_ASPECT_4_3.equals(mi.getDisplayAspect());\r
+ }\r
+\r
+ // SD - MAIN/422@HIGH\r
+ // height < 650\r
+ // profile=Main || profile=4:2:2\r
+ // >PEABLEBEACH | \\10.170.100.21\media\BeachPool\r
+ private boolean isSD_MAIN_422(MediaInfo mi) {\r
+ String codecProfileName = mi.getCodecProfileName();\r
+ if (codecProfileName != null)\r
+ codecProfileName = codecProfileName.toUpperCase();\r
+ return mi.getHeight() < 650 && (CODEC_PROFILE_MAIN.equals(codecProfileName) || CODEC_PROFILE_422.equals(codecProfileName));\r
+ }\r
+\r
+ protected void logMediaProfile() {\r
+ Marker marker = MarkerManager.getMarker("MEDIAPROFILE");\r
+ try {\r
+ Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
+ MediaInfo mi = new MediaInfo(filePath);\r
+ mi.process();\r
+ logger.info(marker, "{} data : {} {} {}", sourceFileName, mi.getCodecProfileName(), mi.getHeight(), mi.getDisplayAspect());\r
+\r
+ if (isHD(mi)) {\r
+ logger.info(marker, "{} is HD", sourceFileName);\r
+ return;\r
+ }\r
+\r
+ if (isSD_HIGH_16_9(mi)) {\r
+ logger.info(marker, "{} is SD_HIGH_16_9", sourceFileName);\r
+ return;\r
+ }\r
+\r
+ if (isSD_HIGH_4_3(mi)) {\r
+ logger.info(marker, "{} is SD_HIGH_4_3", sourceFileName);\r
+ return;\r
+ }\r
+\r
+ if (isSD_MAIN_422(mi)) {\r
+ logger.info(marker, "{} is SD_MAIN_422", sourceFileName);\r
+ return;\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(marker, e.getMessage());\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.DataInputStream;\r
+import java.io.FileNotFoundException;\r
+import java.io.IOException;\r
+import java.io.StringReader;\r
+import java.net.URL;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Calendar;\r
+import java.util.Collection;\r
+import java.util.Date;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.TreeMap;\r
+\r
+import javax.xml.parsers.DocumentBuilder;\r
+import javax.xml.parsers.DocumentBuilderFactory;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.http.HttpEntity;\r
+import org.apache.http.HttpResponse;\r
+import org.apache.http.auth.AuthScope;\r
+import org.apache.http.auth.UsernamePasswordCredentials;\r
+import org.apache.http.client.methods.HttpPost;\r
+import org.apache.http.entity.StringEntity;\r
+import org.apache.http.impl.client.DefaultHttpClient;\r
+import org.apache.http.params.BasicHttpParams;\r
+import org.apache.http.params.HttpConnectionParams;\r
+import org.apache.http.params.HttpParams;\r
+import org.apache.http.protocol.HTTP;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.w3c.dom.Document;\r
+import org.w3c.dom.NamedNodeMap;\r
+import org.w3c.dom.Node;\r
+import org.w3c.dom.NodeList;\r
+import org.xml.sax.InputSource;\r
+\r
+public class PBQuery {\r
+ public class MMMedia {\r
+ private final String name;\r
+ private final String usage;\r
+\r
+ MMMedia(String name, String usage) {\r
+ this.name = name;\r
+ this.usage = usage;\r
+\r
+ }\r
+\r
+ public String getName() {\r
+ return name;\r
+ }\r
+\r
+ public String getUsage() {\r
+ return usage;\r
+ }\r
+ }\r
+\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final int CONNECTION_TIMEOUT = 5000;\r
+ private static final int SOCKET_TIMEOUT = 5000;\r
+ public static final String GETMEDIAUSAGEBYUTRANGE = "/getMediaUsageByUTRange";\r
+ public static final String GETCUSTOMVIEW = "/getCustomView";\r
+\r
+ public static final String SOAP_TEMPLATE_ROOT = System.getProperty("jobengine.soap.template.root", "/opt/mediacube/configuration/soap");\r
+\r
+ private static Document toDocument(String xml) {\r
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
+ DocumentBuilder builder = null;\r
+ try {\r
+ builder = factory.newDocumentBuilder();\r
+ Document doc = builder.parse(new InputSource(new StringReader(xml)));\r
+ return doc;\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ }\r
+ return null;\r
+ }\r
+\r
+ private SimpleDateFormat sdf_range = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:'00'");\r
+ private String primaryEndPoint;\r
+ private String primaryUserName;\r
+ private String primaryPassword;\r
+ private String secondaryEndPoint;\r
+ private String secondaryUserName;\r
+\r
+ private String secondaryPassword;\r
+\r
+ private int rangeForwardHours;\r
+\r
+ private String getAttribute(Node node, String name) {\r
+ String result = null;\r
+ if (node != null && node.hasAttributes()) {\r
+ NamedNodeMap attributes = node.getAttributes();\r
+ if (attributes != null) {\r
+ Node mediaNameNode = attributes.getNamedItem(name);\r
+ if (mediaNameNode != null)\r
+ result = mediaNameNode.getNodeValue();\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public Collection<MMMedia> getPossibelMissingMaterialNames(List<String> poolContent) throws Exception {\r
+ Map<String, MMMedia> result = querySortableMedias(poolContent);\r
+ queryOtherMedias(poolContent, result);\r
+\r
+ TreeMap<String, MMMedia> sortedUsages = new TreeMap<>();\r
+ for (MMMedia m : result.values()) {\r
+ //a TreeMap lehetove teszi: nincs duplikatum + a korabbi musorok elore kerulnek\r
+ sortedUsages.put(m.getUsage() + "." + m.getName(), m);\r
+ }\r
+\r
+ return sortedUsages.values();\r
+\r
+ }\r
+\r
+ public void init(String primaryEndPoint, String primaryUserName, String primaryPassword, String secondaryEndPoint, String secondaryUserName,\r
+ String secondaryPassword, int rangeForwardHours) throws Exception {\r
+ this.primaryEndPoint = primaryEndPoint;\r
+ this.primaryUserName = primaryUserName;\r
+ this.primaryPassword = primaryPassword;\r
+ this.secondaryEndPoint = secondaryEndPoint;\r
+ this.secondaryUserName = secondaryUserName;\r
+ this.secondaryPassword = secondaryPassword;\r
+ this.rangeForwardHours = rangeForwardHours;\r
+ }\r
+\r
+ private void putEarliest(Map<String, MMMedia> result, String mediaName, String usageTime) {\r
+ if (result.containsKey(mediaName)) {\r
+ MMMedia m = result.get(mediaName);\r
+ //az aktualis a korabbi idopont\r
+ if (usageTime.compareTo(m.getUsage()) < 0)\r
+ result.put(mediaName, new MMMedia(mediaName, usageTime));\r
+ } else\r
+ result.put(mediaName, new MMMedia(mediaName, usageTime));\r
+ }\r
+\r
+ public String query(String endPoint, String action, String soap, String user, String pwd) throws Exception {\r
+\r
+ HttpParams httpParameters = new BasicHttpParams();\r
+ HttpConnectionParams.setConnectionTimeout(httpParameters, CONNECTION_TIMEOUT);\r
+ HttpConnectionParams.setSoTimeout(httpParameters, SOCKET_TIMEOUT);\r
+ DefaultHttpClient httpclient = new DefaultHttpClient(httpParameters);\r
+ //http://10.170.100.61:18083\r
+\r
+ String result = null;\r
+ DataInputStream is = null;\r
+ try {\r
+ URL url = new URL(endPoint);\r
+ httpclient.getCredentialsProvider().setCredentials(new AuthScope(url.getHost(), url.getPort(), null, "Digest"),\r
+ new UsernamePasswordCredentials(user, pwd));\r
+\r
+ HttpPost httppost = new HttpPost(url.toURI());\r
+ httppost.setHeader("soapaction", action);\r
+ //Content-Type application/soap+xml; charset=utf-8; action="/getMediaUsageByUTRange"\r
+ httppost.setHeader("Content-Type", "text/xml; charset=utf-8");\r
+ HttpEntity entity = new StringEntity(soap.toString(), HTTP.UTF_8);\r
+ httppost.setEntity(entity);\r
+ logger.info("Executing call {}", action);\r
+ HttpResponse response = httpclient.execute(httppost);// calling server\r
+ HttpEntity r_entity = response.getEntity(); //get response\r
+ // Header[] headers = response.getAllHeaders();\r
+ // for (Header h : headers) {\r
+ // logger.info("Reponse Header", h.getName() + ": " + h.getValue());\r
+ // }\r
+ if (r_entity != null) {\r
+ byte[] bytes = new byte[(int) r_entity.getContentLength()];\r
+ if (r_entity.isStreaming()) {\r
+ is = new DataInputStream(r_entity.getContent());\r
+ is.readFully(bytes);\r
+ }\r
+ result = new String(bytes);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error("Exception while connecting to endpoint {}. System message is: {}", e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ if (is != null) {\r
+ try {\r
+ is.close();\r
+ } catch (IOException e) {\r
+ }\r
+ }\r
+ if (httpclient != null) {\r
+ httpclient.getConnectionManager().shutdown();\r
+ }\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+ public void queryOtherMedias(List<String> poolContent, Map<String, MMMedia> result) throws Exception {\r
+ String xml = null;\r
+ String soap = null;\r
+ Path template = Paths.get(SOAP_TEMPLATE_ROOT, GETCUSTOMVIEW);\r
+\r
+ if (!template.toFile().exists())\r
+ throw new FileNotFoundException(template.toString());\r
+ try {\r
+ soap = new String(Files.readAllBytes(template));\r
+ xml = query(primaryEndPoint, GETCUSTOMVIEW, soap, primaryUserName, primaryPassword);\r
+ } catch (Exception e1) {\r
+ try {\r
+ xml = query(secondaryEndPoint, GETCUSTOMVIEW, soap, secondaryUserName, secondaryPassword);\r
+ } catch (Exception e2) {\r
+ }\r
+ }\r
+\r
+ if (StringUtils.isBlank(xml)) {\r
+ logger.info("Query result is empty");\r
+ return;\r
+ }\r
+\r
+ Document document = toDocument(xml);\r
+ NodeList mediaNodes = document.getElementsByTagName("media");\r
+\r
+ if (mediaNodes == null || mediaNodes.getLength() == 0)\r
+ return;\r
+\r
+ for (int i = 0; i < mediaNodes.getLength(); i++) {\r
+ Node mediaNode = mediaNodes.item(i);\r
+ String mediaName = getAttribute(mediaNode, "mediaName");\r
+ if (StringUtils.isBlank(mediaName)) {\r
+ logger.info("Missing mediaName");\r
+ continue;\r
+ }\r
+\r
+ if (poolContent.contains(mediaName))\r
+ continue;\r
+\r
+ String usageTime = getAttribute(mediaNode, "earliestUsageTime");\r
+ putEarliest(result, mediaName, usageTime);\r
+ }\r
+\r
+ logger.info("Document done, items {}", mediaNodes.getLength());\r
+\r
+ }\r
+\r
+ public Map<String, MMMedia> querySortableMedias(List<String> poolContent) throws Exception {\r
+ Map<String, MMMedia> result = new HashMap<>();\r
+\r
+ String xml = null;\r
+ String soap = null;\r
+\r
+ Path template = Paths.get(SOAP_TEMPLATE_ROOT, GETMEDIAUSAGEBYUTRANGE);\r
+ if (!template.toFile().exists())\r
+ throw new FileNotFoundException(template.toString());\r
+\r
+ try {\r
+ long now = System.currentTimeMillis();\r
+ Calendar cal = Calendar.getInstance();\r
+ cal.setTimeInMillis(now);\r
+ cal.add(Calendar.HOUR_OF_DAY, rangeForwardHours);\r
+\r
+ String fromDateStr = sdf_range.format(new Date(now));\r
+ String toDateStr = sdf_range.format(cal.getTime());\r
+\r
+ soap = new String(Files.readAllBytes(template));\r
+ soap = soap.replace("{start}", fromDateStr);\r
+ soap = soap.replace("{end}", toDateStr);\r
+\r
+ xml = query(primaryEndPoint, GETMEDIAUSAGEBYUTRANGE, soap, primaryUserName, primaryPassword);\r
+ } catch (Exception e1) {\r
+ try {\r
+ xml = query(secondaryEndPoint, GETMEDIAUSAGEBYUTRANGE, soap, secondaryUserName, secondaryPassword);\r
+ } catch (Exception e2) {\r
+ }\r
+ }\r
+\r
+ if (StringUtils.isBlank(xml)) {\r
+ logger.info("Query result is empty");\r
+ return result;\r
+ }\r
+\r
+ Document document = toDocument(xml);\r
+ NodeList mediaNodes = document.getElementsByTagName("mediaUsage");\r
+\r
+ if (mediaNodes == null || mediaNodes.getLength() == 0)\r
+ return result;\r
+\r
+ for (int i = 0; i < mediaNodes.getLength(); i++) {\r
+ Node mediaNode = mediaNodes.item(i);\r
+ String mediaName = getAttribute(mediaNode, "mediaName");\r
+ String mediaType = getAttribute(mediaNode, "mediaType");\r
+ if (StringUtils.isBlank(mediaName)) {\r
+ logger.info("Missing mediaName");\r
+ continue;\r
+ }\r
+\r
+ if (!StringUtils.equals("Video", mediaType)) {\r
+ continue;\r
+ }\r
+\r
+ if (poolContent.contains(mediaName))\r
+ continue;\r
+\r
+ Node usageChild = mediaNode.getFirstChild();\r
+ if (usageChild == null) {\r
+ logger.info("Skipping {}, no media usage defined", mediaName);\r
+ continue;\r
+ }\r
+\r
+ NodeList usageNodes = usageChild.getChildNodes();\r
+ if (usageNodes == null || usageNodes.getLength() == 0) {\r
+ logger.info("Skipping {}, no media usage defined", mediaName);\r
+ continue;\r
+ }\r
+\r
+ for (int j = 0; j < usageNodes.getLength(); j++) {\r
+ Node mediaUsageNode = usageNodes.item(j);\r
+ String usageTime = getAttribute(mediaUsageNode, "earliestUsageTime");\r
+ logger.info("{}, {}", mediaName, usageTime);\r
+ putEarliest(result, mediaName, usageTime);\r
+ }\r
+\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.Collection;\r
+import java.util.LinkedHashSet;\r
+import java.util.List;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.ibm.nosql.json.api.BasicDBList;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.server.steps.PBQuery.MMMedia;\r
+\r
+public class PeableBeachMissingMaterialCheckerStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String appendExtension = System.getProperty("missingmaterial.appendextension", ".mxf");\r
+\r
+ @StepEntry\r
+ public Object[] execute(String escortStoreName, BasicDBList lookupStoreNames, String targetStoreName, String targetProtocol, String primaryEndPoint,\r
+ String primaryUserName, String primaryPassword, String secondaryEndPoint, String secondaryUserName, String secondaryPassword, int rangeForwardHours)\r
+ throws Exception {\r
+ StoreUri escortStoreUri = null;\r
+ try {\r
+ getJobRuntime().setRelated(targetStoreName + " restore");\r
+\r
+ escortStoreUri = getManager().getStoreUri(escortStoreName, RemoteStoreProtocol.LOCAL);\r
+ StoreUri sourceStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+ StoreUri targetStoreUri = getManager().getStoreUri(targetStoreName, Enum.valueOf(RemoteStoreProtocol.class, targetProtocol));\r
+\r
+ LinkedHashSet<String> poolContent = new LinkedHashSet<>();\r
+\r
+ int progress = 0;\r
+ int count = lookupStoreNames.size();\r
+ int processed = 0;\r
+\r
+ for (Object lookup : lookupStoreNames) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ return null;\r
+ }\r
+ String lookupStoreName = String.valueOf(lookup);\r
+\r
+ StoreUri lookupStoreUri = getManager().getStoreUri(lookupStoreName, Enum.valueOf(RemoteStoreProtocol.class, targetProtocol));\r
+ logger.info(getMarker(), "Checking pool {}", lookupStoreName);\r
+ List<String> lookupContent = getPoolContent(lookupStoreName, lookupStoreUri);\r
+ poolContent.addAll(lookupContent);\r
+ processed++;\r
+ progress = processed * 50 / count;\r
+ setProgress(progress);\r
+ }\r
+ /*\r
+ if (1 == 1) {\r
+\r
+ logger.info(getMarker(), "Kikapcsolva");\r
+ return null;\r
+ }\r
+ */\r
+\r
+ PBQuery query = new PBQuery();\r
+ query.init(primaryEndPoint, primaryUserName, primaryPassword, secondaryEndPoint, secondaryUserName, secondaryPassword, rangeForwardHours);\r
+ Collection<MMMedia> medias = query.getPossibelMissingMaterialNames(new ArrayList<>(poolContent));\r
+ logger.info(getMarker(), "API returned {} items", medias == null ? 0 : medias.size());\r
+\r
+ if (medias != null && medias.size() > 0) {\r
+ count = medias.size();\r
+ for (MMMedia media : medias) {\r
+ logger.info(getMarker(), "API response contains {}", media.getName());\r
+ }\r
+\r
+ for (MMMedia media : medias) {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ break;\r
+ }\r
+ processRecord(media, sourceStoreUri, targetStoreName, targetStoreUri, escortStoreUri);\r
+ processed++;\r
+ progress = 50 + (processed * 50 / count);\r
+ setProgress(progress);\r
+ }\r
+\r
+ }\r
+ setProgress(100);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ if (escortStoreUri != null)\r
+ escortStoreUri.cleanUp();\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private List<String> getPoolContent(String storeName, StoreUri targetStoreUri) throws Exception {\r
+ List<String> poolContent = new ArrayList<>();\r
+\r
+ FtpDirectoryLister lister = (FtpDirectoryLister) targetStoreUri.getLister();\r
+ FTPClient client = lister.connect();\r
+ logger.info(getMarker(), "Working dir is {}", client.printWorkingDirectory());\r
+ String[] listNames = client.listNames();\r
+ targetStoreUri.cleanUp();\r
+\r
+ if (listNames != null) {\r
+ List<String> remoteFileNames = Arrays.asList(listNames);\r
+ logger.info(getMarker(), "Remote file list size :{}", remoteFileNames.size());\r
+ for (String name : remoteFileNames) {\r
+ try {\r
+ if (name.toLowerCase().endsWith(".mxf")) {\r
+ int pos = name.lastIndexOf(".");\r
+ if (pos > -1) {\r
+ name = name.substring(0, pos);\r
+ //logger.info(getMarker(), "Adding {}", name);\r
+ poolContent.add(name);\r
+ }\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ }\r
+\r
+ }\r
+ }\r
+\r
+ // List<RemoteFile> remoteFiles = targetStoreUri.getRemoteFiles();\r
+ // if (remoteFiles != null) {\r
+ // logger.info(getMarker(), "Remote file list size :{}", remoteFiles.size());\r
+ // for (RemoteFile rf : remoteFiles) {\r
+ // try {\r
+ // String name = rf.getName();\r
+ // if (name.toLowerCase().endsWith(".mxf")) {\r
+ // int pos = name.lastIndexOf(".");\r
+ // if (pos > -1) {\r
+ // name = name.substring(0, pos);\r
+ // //logger.info(getMarker(), "Adding {}", name);\r
+ // poolContent.add(name);\r
+ // }\r
+ // }\r
+ // } catch (Exception e) {\r
+ // logger.error(e.getMessage());\r
+ // }\r
+ //\r
+ // }\r
+ // }\r
+ logger.info(getMarker(), "Pool {} contains {} items", storeName, poolContent == null ? 0 : poolContent.size());\r
+ return poolContent;\r
+ }\r
+\r
+ //csak visszaterunk\r
+ private String normalizeName(String mediaName) {\r
+ String result = mediaName;\r
+ if (StringUtils.isNotBlank(appendExtension))\r
+ result += appendExtension;\r
+ // if (StringUtils.isNotBlank(mediaName)) {\r
+ // result = mediaName.trim().toLowerCase();\r
+ // }\r
+ return result;\r
+ }\r
+\r
+ private void processRecord(MMMedia mmedia, StoreUri sourceStoreUri, String targetStoreName, StoreUri targetStoreUri, StoreUri escortStoreUri) {\r
+ //TODO kisbetu/nagybetu problema kezelese\r
+\r
+ Media media = null;\r
+ //duplikatum miatt\r
+ try {\r
+ media = getManager().getMedia(mmedia.getName());\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), "Can't identify missing material {}. System message is: {}", mmedia.getName(), e.getMessage());\r
+ return;\r
+ }\r
+\r
+ String fileName = normalizeName(mmedia.getName());\r
+\r
+ if (media == null) {\r
+ logger.error(getMarker(), "File {} not archived yet", mmedia.getName());\r
+ return;\r
+ }\r
+\r
+ DownloadableMedia downloadable = DownloadableMedia.create(mmedia.getName(), fileName, media.getModified(), media.getCreated(), media.getLength(), 0L,\r
+ sourceStoreUri.getId(), targetStoreUri.getId(), media.getId());\r
+ downloadable.put("priority", 50);\r
+ String usage = mmedia.getUsage();\r
+ usage = usage.replace("-", "").replace(":", "");\r
+ String escortFileName = usage + "." + targetStoreName + "." + fileName;\r
+ Path outputPath = null;\r
+ try {\r
+ outputPath = Paths.get(escortStoreUri.toString(true));\r
+ boolean exsists = statusFileExists(outputPath, fileName);\r
+ if (exsists)\r
+ return;\r
+ EscortFiles.createMetadata(outputPath.toString(), escortFileName, downloadable.toPrettyString(""));\r
+ logger.info(getMarker(), "Status file created {}", escortFileName);\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), "Can't create status file {}", Paths.get(outputPath.toString(), escortFileName));\r
+ }\r
+\r
+ }\r
+\r
+ private boolean statusFileExists(Path outputPath, String fileName) {\r
+ boolean exsists = false;\r
+ Path statusPath = Paths.get(outputPath.toString(), EscortFiles.STATUSFOLDER);\r
+ try (DirectoryStream<Path> p = Files.newDirectoryStream(statusPath, "*" + fileName + EscortFiles.DOT_JSON)) {\r
+ if (p.iterator().hasNext()) {\r
+ logger.info(getMarker(), "Status file for {} already exists", fileName);\r
+ exsists = true;\r
+ }\r
+\r
+ } catch (Exception e1) {\r
+ logger.error(getSessionMarker(), e1.getMessage());\r
+ }\r
+ return exsists;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Paths;\r
+import java.util.List;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.ArchivedMedia;\r
+import user.jobengine.db.Media;\r
+\r
+public class RegisterUserRestoreStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String appendExtension = System.getProperty("missingmaterial.appendextension", ".mxf");\r
+\r
+ @StepEntry\r
+ public Object[] execute(String escortStoreName, String targetStoreName, List<ArchivedMedia> basket, String recipient) throws Exception {\r
+ StoreUri escortStoreUri = null;\r
+ try {\r
+ escortStoreUri = getManager().getStoreUri(escortStoreName, RemoteStoreProtocol.LOCAL);\r
+ StoreUri targetStoreUri = getManager().getStore(targetStoreName).getTargetStoreUri();\r
+ StoreUri sourceStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+ int processed = 0;\r
+ for (ArchivedMedia media : basket) {\r
+ processRecord(media, targetStoreName, sourceStoreUri, targetStoreUri, escortStoreUri, recipient);\r
+ processed++;\r
+ int progress = processed * 100 / basket.size();\r
+ setProgress(progress);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ if (escortStoreUri != null)\r
+ escortStoreUri.cleanUp();\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private void processRecord(ArchivedMedia archivedMedia, String targetStoreName, StoreUri sourceStoreUri, StoreUri targetStoreUri, StoreUri escortStoreUri,\r
+ String recipient) {\r
+ Media media = archivedMedia.getMedia();\r
+\r
+ String fileName = media.getTitle();\r
+ if (StringUtils.isNotBlank(appendExtension))\r
+ fileName += appendExtension;\r
+\r
+ DownloadableMedia downloadable = DownloadableMedia.create(media.getTitle(), fileName, media.getModified(), media.getCreated(), media.getLength(), 0L,\r
+ sourceStoreUri.getId(), targetStoreUri.getId(), media.getId());\r
+ downloadable.put("recipient", recipient);\r
+ downloadable.put("skipValidation", true);\r
+ String escortFileName = targetStoreName + "." + downloadable.getString("fileName");\r
+ String outputPath = null;\r
+ try {\r
+ outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+ if (EscortFiles.createMetadataIfNotExists(outputPath, escortFileName, downloadable.toPrettyString("")))\r
+ logger.info(getSessionMarker(), "Status file created {}", escortFileName);\r
+ else\r
+ logger.info(getSessionMarker(), "Status file already exists {}", escortFileName);\r
+ } catch (Exception e) {\r
+ logger.error("Can't create escort file {}", Paths.get(outputPath.toString(), escortFileName));\r
+ }\r
+\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import com.ibm.nosql.json.api.BasicDBList;\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Media;\r
+\r
+public class RegisterVODRestoreStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String appendExtension = System.getProperty("missingmaterial.appendextension", ".mxf");\r
+\r
+ @StepEntry\r
+ public Object[] execute(String targetStoreName, BasicDBList basket) throws Exception {\r
+ try {\r
+ StoreUri sourceStoreUri = getManager().getStoreUri("TSM", RemoteStoreProtocol.TSM);\r
+\r
+ StoreUri targetStoreUri = getManager().getStore(targetStoreName).getTargetStoreUri();\r
+ StoreUri escortStoreUri = getManager().getStoreUri("MEDIACUBE_UPLOADS", RemoteStoreProtocol.LOCAL);\r
+ int processed = 0;\r
+ for (int i = 0; i < basket.size(); i++) {\r
+ BasicDBObject item = (BasicDBObject) basket.get(i);\r
+ //logger.info(item.toPrettyString());\r
+ processRecord(targetStoreName, sourceStoreUri, targetStoreUri, escortStoreUri, item);\r
+ processed++;\r
+ int progress = processed * 100 / basket.size();\r
+ setProgress(progress);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error(getSessionMarker(), e.getMessage());\r
+ throw e;\r
+ } finally {\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private void processRecord(String targetStoreName, StoreUri sourceStoreUri, StoreUri targetStoreUri, StoreUri escortStoreUri, BasicDBObject item) {\r
+ String mediaTitle = item.getString("title");\r
+ String relativeTargetPath = item.getString("path");\r
+\r
+ Media media = getManager().getMedia(mediaTitle);\r
+ \r
+ if (media == null) {\r
+ logger.error("Media {} is not available", mediaTitle);\r
+ return;\r
+ }\r
+ \r
+ String fileName = media.getTitle();\r
+ if (StringUtils.isNotBlank(appendExtension))\r
+ fileName += appendExtension;\r
+\r
+ DownloadableMedia downloadable = DownloadableMedia.create(media.getTitle(), fileName, media.getModified(), media.getCreated(), media.getLength(), 0L,\r
+ sourceStoreUri.getId(), targetStoreUri.getId(), media.getId());\r
+ //downloadable.put("skipValidation", true);\r
+ downloadable.put("relativeTargetPath", relativeTargetPath);\r
+ String escortFileName = targetStoreName + "." + downloadable.getString("fileName");\r
+ String outputPath = null;\r
+ try {\r
+ outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+ if (EscortFiles.createMetadataIfNotExists(outputPath, escortFileName, downloadable.toPrettyString("")))\r
+ logger.info(getSessionMarker(), "Status file created {}", escortFileName);\r
+ else\r
+ logger.info(getSessionMarker(), "Status file already exists {}", escortFileName);\r
+ } catch (Exception e) {\r
+ logger.error("Can't create escort file {}", Paths.get(outputPath.toString(), escortFileName));\r
+ }\r
+\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.JobStatus;\r
+import user.commons.MediaCubeMarker;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class ServerStatusReportStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(String tempStoreName, String template, String expectedColorSpace, int limit) throws Exception {\r
+ IJobEngine engine = getEngine();\r
+ int jobCount = 0;\r
+ StringBuilder sb = new StringBuilder();\r
+ Map<Long, IJobRuntime> jobs = engine.getJobs();\r
+ if (jobs != null) {\r
+ Set<Long> keys = jobs.keySet();\r
+ jobCount = keys.size();\r
+ for (Long key : keys) {\r
+ IJobRuntime runtime = jobs.get(key);\r
+ if (JobStatus.SUSPENDED.equals(runtime.getStatus()))\r
+ sb.append(runtime.getRelated() + " felfüggesztve: " + runtime.getDescription() + "</br>");\r
+ }\r
+ }\r
+ MediaCubeMarker marker = new MediaCubeMarker();\r
+ marker.setSubject(String.format("[%d db] AMC MediaCube feldolgozás", jobCount));\r
+ logger.info(marker, sb.toString());\r
+ return null;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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 user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Store;\r
+\r
+public class TransferStep extends JobStep {\r
+ private static final String DOT_PART = ".part";\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final boolean simulateTransferToTSM = Boolean.parseBoolean(System.getProperty("test.simulate.transfer.tsm", "false"));\r
+ protected StoreUri targetStoreUri;\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ try {\r
+ this.targetStoreUri = targetStoreUri;\r
+ getJobRuntime().setCancelable(false);\r
+\r
+ Store sourceStore = getManager().getStore(sourceStoreUri.getStoreId());\r
+ Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+\r
+ String description = String.format("%s -> %s : %s", sourceStore.getName(), targetStore.getName(), sourceFileName);\r
+ getJobRuntime().setDescription(description);\r
+\r
+ //logger.info(getSessionMarker(), String.valueOf(isSimulateTSMWrite(sourceStoreUri, targetStoreUri)));\r
+ if (isSimulateTSMWrite(sourceStoreUri, targetStoreUri)) {\r
+ logger.info(getMarker(), "Skipping real TSM write of {} from {} to {}", sourceFileName, sourceStoreUri, targetStoreUri);\r
+ return null;\r
+ }\r
+\r
+ sourceStoreUri.addProgressListener(e -> setProgress(e.getProgress()));\r
+\r
+ this.targetStoreUri = getTargetStoreUri();\r
+ tryCopy(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}.", sourceFileName, sourceStoreUri, targetStoreUri);\r
+ throw e;\r
+ // logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}. Retrying after 3 seconds.", sourceFileName, sourceStoreUri,\r
+ // targetStoreUri);\r
+\r
+ // try {\r
+ // Thread.sleep(3000);\r
+ // tryCopy(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ // } catch (Exception e1) {\r
+ // logger.error(getSessionMarker(), "Error in transfer of {} when copying from {} to {}. System message is: {}", sourceFileName, sourceStoreUri,\r
+ // targetStoreUri, e1.getMessage());\r
+ // throw e1;\r
+ // }\r
+ } finally {\r
+ if (sourceStoreUri != null)\r
+ sourceStoreUri.cleanUp();\r
+ if (targetStoreUri != null)\r
+ targetStoreUri.cleanUp();\r
+ }\r
+ return null;\r
+ }\r
+\r
+ protected StoreUri getTargetStoreUri() {\r
+ return targetStoreUri;\r
+ }\r
+\r
+ protected String getTmpExtension() {\r
+ return DOT_PART;\r
+ }\r
+\r
+ private boolean isSimulateTSMWrite(StoreUri sourceStoreUri, StoreUri targetStoreUri) {\r
+ return simulateTransferToTSM && (RemoteStoreProtocol.TSM.equals(targetStoreUri.getProtocol()));\r
+ }\r
+\r
+ private void tryCopy(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ String currentTargetFileName = targetFileName;\r
+\r
+ boolean renameAfterCopy = false;\r
+ if (getTmpExtension() != null && RemoteStoreProtocol.LOCAL.equals(targetStoreUri.getProtocol())) {\r
+ currentTargetFileName += getTmpExtension();\r
+ renameAfterCopy = true;\r
+ }\r
+\r
+ sourceStoreUri.transferFrom(targetStoreUri, sourceFileName, currentTargetFileName);\r
+ logger.info(getMarker(), "Transfer of {} completed from {} to {}", sourceFileName, sourceStoreUri, targetStoreUri);\r
+\r
+ if (renameAfterCopy) {\r
+ Path tmpTargetFile = Paths.get(targetStoreUri.toString(true), currentTargetFileName);\r
+ Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
+ tmpTargetFile.toFile().renameTo(targetFile.toFile());\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\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 user.commons.StoreUri;\r
+\r
+public class TSMTransferFromStep extends TransferStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ Object[] result = null;\r
+ Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
+ if (targetFile.toFile().exists()) {\r
+ logger.info(getMarker(), "Using previously retrived file {}", targetFile);\r
+ } else {\r
+ result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+ return result;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class TSMTransferToStep extends TransferStep {\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.IJob;\r
+import user.commons.JobStatus;\r
+import user.commons.ListUtils;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class TestForkCancelableStep 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 = "cancelable.xml";\r
+ private static final Logger logger = LogManager.getLogger();\r
+ int count = 1;\r
+\r
+ @StepEntry\r
+ public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
+ //jobRuntime.forkPrepare();\r
+ for (int i = 0; i < count; i++) {\r
+ //jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, CHILD_TITLE, ListUtils.asMap("itemID", i));\r
+ // IJobRuntime runtime = jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, "JOB " + i, ListUtils.asMap("param", i));\r
+ IJobRuntime runtime = getEngine().submit(null, e -> {\r
+ if (e.getStatus().equals(JobStatus.CANCELED) || e.getStatus().equals(JobStatus.SUSPENDED))\r
+ logger.info("Cleanup occured because status is {} {}", e.getStatus(), ((IJob) e.getSource()).getId());\r
+ }, CHILD_TEMPLATE, "JOB " + i, 0, IJobEngine.DEFAULT_OWNER, ListUtils.asMap("param", i));\r
+\r
+ runtime.setRelated("TEST" + runtime.getId());\r
+ }\r
+\r
+ // jobRuntime.forkWaitComplete();\r
+ logger.info("Done");\r
+ return null;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
+import org.apache.commons.net.ftp.FTPClient;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.FtpDirectoryLister;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.db.Store;\r
+\r
+public class TransferStep extends JobStep {\r
+ private static final String DOT_PART = ".part";\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final boolean simulateTransferToTSM = Boolean.parseBoolean(System.getProperty("test.simulate.transfer.tsm", "false"));\r
+ protected StoreUri targetStoreUri;\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ try {\r
+ this.targetStoreUri = targetStoreUri;\r
+ getJobRuntime().setCancelable(false);\r
+\r
+ Store sourceStore = getManager().getStore(sourceStoreUri.getStoreId());\r
+ Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+\r
+ String description = String.format("%s -> %s : %s", sourceStore.getName(), targetStore.getName(), sourceFileName);\r
+ getJobRuntime().setDescription(description);\r
+\r
+ //logger.info(getSessionMarker(), String.valueOf(isSimulateTSMWrite(sourceStoreUri, targetStoreUri)));\r
+ if (isSimulateTSMWrite(sourceStoreUri, targetStoreUri)) {\r
+ logger.info(getMarker(), "Skipping real TSM write of {} from {} to {}", sourceFileName, sourceStoreUri, targetStoreUri);\r
+ return null;\r
+ }\r
+\r
+ sourceStoreUri.addProgressListener(e -> setProgress(e.getProgress()));\r
+\r
+ this.targetStoreUri = getTargetStoreUri();\r
+ tryCopy(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}.", sourceFileName, sourceStoreUri, targetStoreUri);\r
+ throw e;\r
+ // logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}. Retrying after 3 seconds.", sourceFileName, sourceStoreUri,\r
+ // targetStoreUri);\r
+\r
+ // try {\r
+ // Thread.sleep(3000);\r
+ // tryCopy(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ // } catch (Exception e1) {\r
+ // logger.error(getSessionMarker(), "Error in transfer of {} when copying from {} to {}. System message is: {}", sourceFileName, sourceStoreUri,\r
+ // targetStoreUri, e1.getMessage());\r
+ // throw e1;\r
+ // }\r
+ } finally {\r
+ if (sourceStoreUri != null)\r
+ sourceStoreUri.cleanUp();\r
+ if (targetStoreUri != null)\r
+ targetStoreUri.cleanUp();\r
+ }\r
+ return null;\r
+ }\r
+\r
+ protected StoreUri getTargetStoreUri() {\r
+ return targetStoreUri;\r
+ }\r
+\r
+ protected String getTmpExtension() {\r
+ return DOT_PART;\r
+ }\r
+\r
+ private boolean isSimulateTSMWrite(StoreUri sourceStoreUri, StoreUri targetStoreUri) {\r
+ return simulateTransferToTSM && (RemoteStoreProtocol.TSM.equals(targetStoreUri.getProtocol()));\r
+ }\r
+\r
+ private void tryCopy(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ String currentTargetFileName = targetFileName;\r
+\r
+ boolean renameAfterCopy = false;\r
+ boolean renameAfterFTP = false;\r
+ if (getTmpExtension() != null) {\r
+ if (RemoteStoreProtocol.LOCAL.equals(targetStoreUri.getProtocol())) {\r
+ currentTargetFileName += getTmpExtension();\r
+ renameAfterCopy = true;\r
+ }\r
+ Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+\r
+ if (RemoteStoreProtocol.FTP.equals(targetStoreUri.getProtocol()) && !"NEXIO1".equals(targetStore.getName())\r
+ && !"NEXIO2".equals(targetStore.getName())) {\r
+ currentTargetFileName += getTmpExtension();\r
+ renameAfterFTP = true;\r
+ }\r
+ }\r
+\r
+ sourceStoreUri.transferFrom(targetStoreUri, sourceFileName, currentTargetFileName);\r
+\r
+ logger.info(getMarker(), "Transfer completed from {} as {} to {} as {}", sourceFileName, sourceStoreUri, targetStoreUri, currentTargetFileName);\r
+\r
+ if (renameAfterCopy) {\r
+ Path tmpTargetFile = Paths.get(targetStoreUri.toString(true), currentTargetFileName);\r
+ Path targetFile = Paths.get(targetStoreUri.toString(true), targetFileName);\r
+ try {\r
+ logger.info(getMarker(), "Renaming LOCAL file from {} to {} on {}", currentTargetFileName, targetFileName, sourceStoreUri);\r
+ tmpTargetFile.toFile().renameTo(targetFile.toFile());\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ }\r
+ }\r
+ if (renameAfterFTP) {\r
+ try {\r
+ FtpDirectoryLister lister = (FtpDirectoryLister) targetStoreUri.getLister();\r
+ FTPClient client = lister.connect();\r
+ logger.info(getMarker(), "Renaming FTP file from {} to {} on {}", currentTargetFileName, targetFileName, sourceStoreUri);\r
+ client.rename(currentTargetFileName, targetFileName);\r
+ } catch (Exception e) {\r
+ logger.error(getMarker(), e.getMessage());\r
+ } finally {\r
+ targetStoreUri.cleanUp();\r
+ }\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class TransferToFTPStep extends TransferStep {\r
+ @Override\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import user.commons.StoreUri;\r
+\r
+public class VODTransferToStep extends TransferStep {\r
+ private String relativeTargetPath;\r
+\r
+ @Override\r
+ protected StoreUri configureTargetUri(StoreUri targetStoreUri) {\r
+ targetStoreUri.setRootPath(relativeTargetPath);\r
+ return targetStoreUri;\r
+ }\r
+\r
+ @StepEntry\r
+ public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String relativeTargetPath, String targetFileName)\r
+ throws Exception {\r
+ this.relativeTargetPath = relativeTargetPath;\r
+ return super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
+ }\r
+\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="tsmFileName" type="java.lang.String"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tsmFileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FILEZILLA_AVIDTransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="NEXIOMetadataPersisterStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TransferStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="TSMTransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="MetadataPersisterStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="tsmFileName" type="java.lang.String"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tsmFileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FILEZILLA_PASARESTORETransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="NEXIOMetadataPersisterStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
<declarations>\r
<parameters>\r
<parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
</parameters>\r
</declarations>\r
<commands>\r
- <calljobstep type="TransferStep.java" weight="5">\r
+ <calljobstep type="NEXIO1TransferFromStep.java" weight="5">\r
<inputs>\r
<input>\r
<parameter name="sourceStoreUri" />\r
</input>\r
</inputs>\r
</calljobstep>\r
- <calljobstep type="TransferToTSMStep.java" weight="5">\r
+ <calljobstep type="TSMTransferToStep.java" weight="5">\r
<inputs>\r
<input>\r
<parameter name="tempStoreUri" />\r
</parameters>\r
</declarations>\r
<commands>\r
- <calljobstep type="TransferFromTSMStep.java" weight="5">\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
<inputs>\r
<input>\r
<parameter name="sourceStoreUri" />\r
</input>\r
</inputs>\r
</calljobstep>\r
- <calljobstep type="TransferStep.java" weight="5">\r
+ <calljobstep type="NEXIO1TransferToStep.java" weight="5">\r
<inputs>\r
<input>\r
<parameter name="tempStoreUri" />\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="NEXIO2TransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="TSMTransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="MetadataPersisterStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="tsmFileName" type="java.lang.String"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tsmFileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="NEXIO2TransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="NEXIOMetadataPersisterStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="tsmFileName" type="java.lang.String"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tsmFileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="PASAPOOLTransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="NEXIOMetadataPersisterStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="tsmFileName" type="java.lang.String"/>\r
+ <parameter name="fileName" type="java.lang.String"/>\r
+ <parameter name="tempStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="targetStoreUri" type="user.commons.StoreUri"/>\r
+ <parameter name="relativeTargetPath" type="java.lang.String"/>\r
+ <parameter name="expectedFrameNumber" type="java.lang.Long"/>\r
+ <parameter name="expectedSize" type="java.lang.Long"/>\r
+ <parameter name="expectedColorSpace" type="java.lang.String"/>\r
+ <parameter name="escortFile" type="java.lang.String"/>\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep type="TSMTransferFromStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tsmFileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileValidatorStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedFrameNumber" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedSize" />\r
+ </input>\r
+ <input>\r
+ <parameter name="expectedColorSpace" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="VODTransferToStep.java" weight="5">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="relativeTargetPath" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ <calljobstep type="FileCleanupStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="tempStoreUri" />\r
+ </input>\r
+ <input>\r
+ <parameter name="fileName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortFile" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
+ <declarations>\r
+ <parameters>\r
+ <parameter name="param" type="java.lang.Integer" />\r
+ </parameters>\r
+ </declarations>\r
+ <commands>\r
+ <calljobstep remote="true" type="CancelableStep.java" weight="1" >\r
+ <inputs>\r
+ <input>\r
+ <parameter name="param" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+ </commands>\r
+</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Hiányzó PROXY videók pótlása">\r
+<jobtemplate useSessionLog="false">\r
<declarations>\r
<parameters>\r
+ <parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
+ <parameter name="deleteSource" type="java.lang.Boolean"/>\r
+ <parameter name="killDateDays" type="java.lang.Integer"/>\r
+ <parameter name="successRecipient" type="java.lang.String" />\r
<parameter name="localHiresPath" type="java.lang.String" />\r
<parameter name="globalHiresPath" type="java.lang.String" />\r
<parameter name="localLowresPath" type="java.lang.String" />\r
<parameter name="transcoderTemplateName" type="java.lang.String" />\r
<parameter name="localRetrievePath" type="java.lang.String" />\r
<parameter name="globalRetrievePath" type="java.lang.String" />\r
+ <parameter name="targetNamePattern" type="java.lang.String" />\r
</parameters>\r
<variables>\r
- <variable name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
- <variable name="targetNamePattern" type="java.lang.String" />\r
<variable name="archiveItem" type="user.jobengine.server.steps.ArchiveItem" />\r
- <variable name="killDateDays" type="java.lang.Integer"/>\r
- <variable name="successRecipient" type="java.lang.String" />\r
- <variable name="deleteSource" type="java.lang.Boolean"/>\r
</variables>\r
</declarations>\r
<commands>\r
- <calljobstep type="user.jobengine.server.steps.CreateMissingLowresStep" weight="1">\r
+ <calljobstep type="user.jobengine.server.steps.CreateArchiveItemStep" weight="1">\r
<inputs>\r
+ <input>\r
+ <parameter name="mediaCubeMedia" />\r
+ </input>\r
<input>\r
<parameter name="localHiresPath" />\r
</input>\r
</inputs>\r
<outputs>\r
- <output>\r
- <variable name="mediaCubeMedia" />\r
- </output>\r
<output>\r
<variable name="archiveItem" />\r
</output>\r
- <output>\r
- <variable name="targetNamePattern" />\r
- </output>\r
- <output>\r
- <variable name="successRecipient" />\r
- </output>\r
- <output>\r
- <variable name="killDateDays" />\r
- </output>\r
- <output>\r
- <variable name="deleteSource" />\r
- </output>\r
</outputs>\r
</calljobstep>\r
<calljobstep type="user.jobengine.server.steps.TSMRestoreStep" weight="1">\r
<inputs>\r
<input>\r
- <variable name="mediaCubeMedia" />\r
+ <parameter name="mediaCubeMedia" />\r
</input>\r
<input>\r
<parameter name="localHiresPath" />\r
</input>\r
<input>\r
- <variable name="targetNamePattern" />\r
+ <parameter name="targetNamePattern" />\r
</input>\r
<input>\r
- <variable name="successRecipient" />\r
+ <parameter name="successRecipient" />\r
</input>\r
<input>\r
- <variable name="killDateDays" />\r
+ <parameter name="killDateDays" />\r
</input>\r
<input>\r
<parameter name="localRetrievePath" />\r
<variable name="archiveItem" />\r
</input>\r
<input>\r
- <variable name="mediaCubeMedia" />\r
+ <parameter name="mediaCubeMedia" />\r
</input>\r
</inputs>\r
</calljobstep>\r
<variable name="archiveItem" />\r
</input>\r
<input>\r
- <variable name="mediaCubeMedia" />\r
+ <parameter name="mediaCubeMedia" />\r
</input>\r
<input>\r
<parameter name="transcoderAddress" />\r
<parameter name="localLowresPath" />\r
</input>\r
<input>\r
- <variable name="deleteSource" />\r
+ <parameter name="deleteSource" />\r
</input>\r
</inputs>\r
</calljobstep>\r
<calljobstep type="user.jobengine.server.steps.UpdateGhostMediaData" weight="1">\r
<inputs>\r
<input>\r
- <variable name="mediaCubeMedia" />\r
+ <parameter name="mediaCubeMedia" />\r
</input>\r
</inputs>\r
</calljobstep>\r
<?xml version="1.0" encoding="UTF-8"?>\r
<!-- Egy server egy mappajat vegigolvasva, megkeresi azokat a fajlokat amik valtoztak, es a tarolo valamint a fajl nevebol kepez egy statusz fajlt. -->\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
<declarations>\r
<parameters>\r
<parameter name="sourceStoreName" type="java.lang.String"/>\r
<?xml version="1.0" encoding="UTF-8"?>\r
<!-- A VIC fajlok tartalma alapjan a hianyzo media fajlok nevebol kepez statusz fajlokat. -->\r
-<jobtemplate multiInstance="true" useSessionLog="false">\r
+<jobtemplate useSessionLog="false">\r
<declarations>\r
<parameters>\r
<parameter name="vicFiles" type="com.ibm.nosql.json.api.BasicDBList"/>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- A VIC fajlok tartalma alapjan a hianyzo media fajlok nevebol kepez statusz fajlokat. -->\r
+<jobtemplate useSessionLog="false">\r
+<declarations>\r
+ <parameters>\r
+ <parameter name="vicFiles" type="com.ibm.nosql.json.api.BasicDBList"/>\r
+ <parameter name="escortStoreName" type="java.lang.String"/>\r
+ <parameter name="targetStoreName" type="java.lang.String"/>\r
+ <parameter name="targetProtocol" type="java.lang.String"/>\r
+ </parameters>\r
+</declarations>\r
+<commands>\r
+ <calljobstep type="HarrisMissingMaterialCheckerStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="vicFiles" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortStoreName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetStoreName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="targetProtocol" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
<!-- A NEXIO server-t lekerdezve, megkeresi azokat a fajlokat amik valtoztak, es a tarolo valamint a fajl nevebol kepez egy statusz fajlt. -->\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate useSessionLog="false">\r
<declarations>\r
<parameters>\r
<parameter name="sourceStoreName" type="java.lang.String"/>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- A NEXIO server-t lekerdezve, megkeresi azokat a fajlokat amik valtoztak, es a tarolo valamint a fajl nevebol kepez egy statusz fajlt. -->\r
+<jobtemplate useSessionLog="false">\r
+<declarations>\r
+ <parameters>\r
+ <parameter name="sourceStoreName" type="java.lang.String"/>\r
+ <parameter name="escortStoreName" type="java.lang.String"/>\r
+ <parameter name="lastModifiedHours" type="java.lang.Integer"/>\r
+ </parameters>\r
+</declarations>\r
+<commands>\r
+ <calljobstep type="NEXIOArchiveCheckerStep.java" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="sourceStoreName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="escortStoreName" />\r
+ </input>\r
+ <input>\r
+ <parameter name="lastModifiedHours" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate useSessionLog="false">\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
<declarations>\r
<parameters>\r
<parameter name="escortStoreName" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="false">\r
<commands>\r
<calljobstep type="TestForkCancelableStep.java" weight="1" />\r
</commands>\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate>\r
<declarations>\r
<parameters>\r
<parameter name="source" type="java.lang.String"/>\r
</parameters>\r
</declarations>\r
<commands>\r
- <calljobstep type="DirMXFValidatorStep.java" weight="5">\r
+ <calljobstep type="DirMXFValidatorStep.java" weight="1">\r
<inputs>\r
<input>\r
<parameter name="source" />\r
--- /dev/null
+@echo off\r
+if exist tmp rmdir tmp /s /q\r
+mkdir tmp\r
+java ^\r
+-Dclean ^\r
+-Dorg.eclipse.epp.logging.aeri.skipReports=true ^\r
+-Declipse.ignoreApp=true ^\r
+-Dosgi.noShutdown=true ^\r
+-Dlog4j.configurationFile=settings/log4j2.xml ^\r
+-Djetty.home=settings/test-jetty ^\r
+-Djetty.etc.config.urls=jetty.xml,jetty-ssl.xml,jetty-ssl-context.xml,jetty-http.xml,jetty-https.xml ^\r
+-Djava.io.tmpdir=tmp ^\r
+-Dfile.encoding=UTF-8 ^\r
+-Dgosh.home=configuration ^\r
+-jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar ^\r
+-Xms512m ^\r
+-Xmx1024m ^\r
+-console\r
--- /dev/null
+datasource:\r
+ mediacube:\r
+ url: jdbc:db2://192.168.0.16:50000/mc\r
+ user: db2admin\r
+ password: password\r
+ external-indexer: false\r
+ simple-search: true\r
+ login-timeout: 3\r
+ pool-size: 10\r
+ mediacube-nosql:\r
+ url: jdbc:db2://192.168.0.16:50000/mc\r
+ user: db2admin\r
+ password: password\r
+ schema: test\r
+ login-timeout: 3\r
+services:\r
+ ffmpeg:\r
+ execurable-location: /opt/ffmpeg/ffmpeg \r
+ mediacube:\r
+ proxy-root: /opt\r
+ nexio:\r
+ disabled: true\r
+jobs:\r
+ validate-transfers: false\r
+ copy-buffer-size: 32768\r
+ scheduled-execution-disabled: true\r
+tsm:\r
+ randomize-archives: false \r
+ delimiter: \\r
+ node-name: PASANODE\r
+ fs-name: NEXIO\r
+ alternate-fs-name: PASA\r
+ hl-name: \\r
+
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<Configuration status="ERROR" monitorInterval="10" packages="user.commons.log4j2.appender">\r
+ <Properties>\r
+ <Property name="logPath">log</Property>\r
+ <Property name="fileName">${logPath}/mediacube.log</Property>\r
+ <Property name="filePattern">${logPath}/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ <Property name="markeredFileName">${logPath}/markered-mediacube.log</Property>\r
+ <Property name="markeredFilePattern">${logPath}/$${date:yyyy-MM}/markered-mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ <Property name="fileName.err">${logPath}/mediacube-err.log</Property>\r
+ <Property name="filePattern.err">${logPath}/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ </Properties>\r
+ <Appenders>\r
+ <File name="MediaProfile" fileName="${logPath}/mediaprofile.log">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIAPROFILE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %msg%n" />\r
+ </File>\r
+ \r
+ <Console name="Console" target="SYSTEM_OUT">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="DENY" onMismatch="NEUTRAL" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" />\r
+ </Console>\r
+ <Console name="MarkeredConsole" target="SYSTEM_ERR">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %markerSimpleName - %msg (%F:%L)%n" />\r
+ </Console>\r
+ <HTMLMailAppender name="MarkeredMail" subject="MediaCube rendszerüzenet" to="vasary@elgekko.net" from="broadcast.service-ce@amcnetworks.com" smtpHost="10.160.60.165"\r
+ smtpPort="125" smtpProtocol="smtp" smtpDebug="false" ignoreExceptions="false" bufferSize="1">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss} %-5level - %msg %n" />\r
+ </HTMLMailAppender>\r
+ <RollingFile name="MarkeredRollingFile" fileName="${markeredFileName}" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE FILELOG" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile1" fileName="${logPath}/nexio1-archive-checker.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="NEXIO1 archiválás előkészítése" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %msg %n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile2" fileName="${logPath}/nexio2-archive-checker.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="NEXIO2 archiválás előkészítése" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %msg %n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile3" fileName="${logPath}/fork-validate-and-archive.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="Kötegelt validálás és archiválás" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile4" fileName="${logPath}/harris1-missingmaterial-checker.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="HARRIS1 missing material lekérdezés" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %msg %n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile5" fileName="${logPath}/harris2-missingmaterial-checker.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="HARRIS2 missing material lekérdezés" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %msg %n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile6" fileName="${logPath}/peablebeach-missingmaterial-checker.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="PEABLEBEACH missing material lekérdezés" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile7" fileName="${logPath}/fork-validate-and-restore.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="Kötegelt validálás és visszatöltés" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile8" fileName="${logPath}/validate-and-archive.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="Archiválás" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="MarkeredRollingFile9" fileName="${logPath}/validate-and-restore.log" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="Visszatöltés" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="RollingFile" fileName="${fileName}" filePattern="${filePattern}">\r
+ <Filters>\r
+ <!-- <MarkerFilter marker="MEDIACUBE" onMatch="DENY" onMismatch="NEUTRAL" /> -->\r
+ <MarkerFilter marker="MEDIACUBE FILELOG" onMatch="DENY" onMismatch="NEUTRAL" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %level %logger{1}.%M %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="RollingFileExceptions" fileName="${fileName.err}" filePattern="${filePattern.err}">\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %logger{1}.%M %msg (%F:%L)%n %throwable" />\r
+ <Filters>\r
+ <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ \r
+ </Appenders>\r
+ <Loggers>\r
+ <Root level="INFO">\r
+ <AppenderRef ref="MediaProfile" />\r
+ <AppenderRef ref="Console" />\r
+ <AppenderRef ref="MarkeredConsole" />\r
+ <AppenderRef ref="RollingFile" />\r
+ <AppenderRef ref="RollingFileExceptions" />\r
+ <AppenderRef ref="MarkeredRollingFile" />\r
+ <AppenderRef ref="MarkeredRollingFile1" />\r
+ <AppenderRef ref="MarkeredRollingFile2" />\r
+ <AppenderRef ref="MarkeredRollingFile3" />\r
+ <AppenderRef ref="MarkeredRollingFile4" />\r
+ <AppenderRef ref="MarkeredRollingFile5" />\r
+ <AppenderRef ref="MarkeredRollingFile6" />\r
+ <AppenderRef ref="MarkeredRollingFile7" />\r
+ <AppenderRef ref="MarkeredRollingFile8" />\r
+ <AppenderRef ref="MarkeredRollingFile9" />\r
+ <AppenderRef ref="MarkeredMail" />\r
+ </Root>\r
+ <Logger name="org.zkoss" level="ERROR" additivity="false" />\r
+ <Logger name="org.quartz" level="ERROR" additivity="false" />\r
+ <Logger name="org.eclipse.jetty.osgi.boot" level="ERROR" additivity="false" />\r
+ <Logger name="user.commons.pool" level="DEBUG" additivity="false" />\r
+ </Loggers>\r
+</Configuration>\r
{\r
"jobQueuePollInterval": 1000,\r
+ "targetRestoreFilters": [\r
+ "FILEZILLA_AVID", "FILEZILLA_PASARESTORE"\r
+ ],\r
"topTypeFilters": [\r
{\r
"name": "Hír bejátszó",\r
],\r
"authentication": {\r
"authEnabled": true,\r
- "adHost": "intra.mediavivantis.hu",\r
+ "adHost": "intra.amc.hu",\r
"adNonSecurePort": 3268,\r
- "adBaseDn": "DC=intra,DC=mediavivantis,DC=hu",\r
+ "adBaseDn": "DC=intra,DC=amc,DC=hu",\r
"adAdminMap": [\r
- "G_MV_U_MUSZAK",\r
- "G_MV_U_INGEST"\r
+ "INFORMATIKUSOK",\r
+ "MUSZAKVEZETOK"\r
],\r
"adSubmitterMap": [\r
- "G_ECH_U_INFORMATIKUSOK",\r
- "G_ECH_U_MUSZAKVEZETOK",\r
- "ECH-ISILON-ADMINS"\r
+ "INFORMATIKUSOK",\r
+ "MUSZAKVEZETOK"\r
],\r
"adEditorMap": [\r
- "G_ECH_U_INFORMATIKUSOK",\r
- "G_ECH_U_MUSZAKVEZETOK",\r
- "ECH-ISILON-ADMINS"\r
+ "INFORMATIKUSOK",\r
+ "MUSZAKVEZETOK"\r
],\r
"localAccounts": [\r
{\r
"password" : "5F4DCC3B5AA765D61D8327DEB882CF99",\r
"email" : null\r
},\r
+ {\r
+ "user" : "user1",\r
+ "password" : "5F4DCC3B5AA765D61D8327DEB882CF99",\r
+ "email" : null\r
+ },\r
{\r
"user" : "lebony",\r
"password" : "4E25B117B14D86D7DCECB4E433CF932C",\r
"email" : null\r
},\r
+ {\r
+ "user" : "editor",\r
+ "password" : "5AEE9DBD2A188839105073571BEE1B1F",\r
+ "email" : null\r
+ },\r
{\r
"user" : "root",\r
"password" : "5F4DCC3B5AA765D61D8327DEB882CF99",\r
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- =============================================================== -->
+<!-- Create the deployment manager -->
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+<!-- The deplyment manager handles the lifecycle of deploying web -->
+<!-- applications. Apps are provided by instances of the -->
+<!-- AppProvider interface. -->
+<!-- =============================================================== -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <Call name="addBean">
+ <Arg>
+ <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
+ <Set name="contexts">
+ <Ref refid="Contexts" />
+ </Set>
+ <Call name="setContextAttribute">
+ <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
+ <Arg>.*/[^/]*servlet-api-[^/]*\.jar$|.*/javax.servlet.jsp.jstl-.*\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\.jar$</Arg>
+ </Call>
+
+ <!-- Add a customize step to the deployment lifecycle -->
+ <!-- uncomment and replace DebugBinding with your extended AppLifeCycle.Binding class
+ <Call name="insertLifeCycleNode">
+ <Arg>deployed</Arg>
+ <Arg>starting</Arg>
+ <Arg>customise</Arg>
+ </Call>
+ <Call name="addLifeCycleBinding">
+ <Arg>
+ <New class="org.eclipse.jetty.deploy.bindings.DebugBinding">
+ <Arg>customise</Arg>
+ </New>
+ </Arg>
+ </Call> -->
+
+ <Call id="webappprovider" name="addAppProvider">
+ <Arg>
+ <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
+ <Set name="monitoredDirName">
+ <Property>
+ <Name>jetty.deploy.monitoredPath</Name>
+ <Default>
+ <Property name="jetty.base" default="." />/<Property name="jetty.deploy.monitoredDir" deprecated="jetty.deploy.monitoredDirName" default="."/>
+ </Default>
+ </Property>
+ </Set>
+ <Set name="defaultsDescriptor">
+ <Property>
+ <Name>jetty.deploy.defaultsDescriptorPath</Name>
+ <Default>
+ <Property name="jetty.home" default="." />/etc/webdefault.xml
+ </Default>
+ </Property>
+ </Set>
+ <Set name="scanInterval"><Property name="jetty.deploy.scanInterval" default="1"/></Set>
+ <Set name="extractWars"><Property name="jetty.deploy.extractWars" default="true"/></Set>
+ <Set name="configurationManager">
+ <New class="org.eclipse.jetty.deploy.PropertiesConfigurationManager">
+ <!-- file of context configuration properties
+ <Set name="file"><SystemProperty name="jetty.base"/>/etc/some.properties</Set>
+ -->
+ <!-- set a context configuration property
+ <Call name="put"><Arg>name</Arg><Arg>value</Arg></Call>
+ -->
+ </New>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ </New>
+ </Arg>
+ </Call>
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server" -->
+<!-- by adding a HTTP connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Add a HTTP Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with a single -->
+ <!-- HttpConnectionFactory instance using the common httpConfig -->
+ <!-- instance defined in jetty.xml -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New id="httpConnector" class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="acceptors" type="int"><Property name="jetty.http.acceptors" deprecated="http.acceptors" default="-1"/></Arg>
+ <Arg name="selectors" type="int"><Property name="jetty.http.selectors" deprecated="http.selectors" default="-1"/></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config">
+ <New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Arg>
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <!-- This says... Redirect to https://host:8443 if server returns "NOT SECURE" error -->
+ <Set name="secureScheme">https</Set>
+ <Set name="securePort">8444</Set>
+ </New>
+ </Arg>
+ <Call name="addCustomizer">
+ <Arg>
+ <New class="org.eclipse.jetty.server.SecureRequestCustomizer" />
+ </Arg>
+ </Call>
+ </New>
+ </Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.http.host" deprecated="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.http.port" deprecated="jetty.port" default="9080" /></Set>
+ <Set name="idleTimeout"><Property name="jetty.http.idleTimeout" deprecated="http.timeout" default="30000"/></Set>
+ <Set name="soLingerTime"><Property name="jetty.http.soLingerTime" deprecated="http.soLingerTime" default="-1"/></Set>
+ <Set name="acceptorPriorityDelta"><Property name="jetty.http.acceptorPriorityDelta" deprecated="http.acceptorPriorityDelta" default="0"/></Set>
+ <Set name="acceptQueueSize"><Property name="jetty.http.acceptQueueSize" deprecated="http.acceptQueueSize" default="0"/></Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server" -->
+<!-- by adding a HTTP connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Add a HTTP Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with a single -->
+ <!-- HttpConnectionFactory instance using the common httpConfig -->
+ <!-- instance defined in jetty.xml -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="httpConfig" /></Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.http.host" /></Set>
+ <Set name="port"><Property name="jetty.http.port" default="9080" /></Set>
+ <Set name="idleTimeout"><Property name="jetty.http.idleTimeout" default="30000"/></Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
</Arg>
<Set name="host"><Property name="jetty.ssl.host" deprecated="jetty.host" /></Set>
- <Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="8443" /></Set>
+ <Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="444" /></Set>
<Set name="idleTimeout"><Property name="jetty.ssl.idleTimeout" deprecated="ssl.timeout" default="30000"/></Set>
<Set name="soLingerTime"><Property name="jetty.ssl.soLingerTime" deprecated="ssl.soLingerTime" default="-1"/></Set>
<Set name="acceptorPriorityDelta"><Property name="jetty.ssl.acceptorPriorityDelta" deprecated="ssl.acceptorPriorityDelta" default="0"/></Set>
<!-- =========================================================== -->
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme"><Property name="jetty.httpConfig.secureScheme" default="https" /></Set>
- <Set name="securePort"><Property name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" default="8443" /></Set>
+ <Set name="securePort"><Property name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" default="8444" /></Set>
<Set name="outputBufferSize"><Property name="jetty.httpConfig.outputBufferSize" deprecated="jetty.output.buffer.size" default="32768" /></Set>
<Set name="outputAggregationSize"><Property name="jetty.httpConfig.outputAggregationSize" deprecated="jetty.output.aggregation.size" default="8192" /></Set>
<Set name="requestHeaderSize"><Property name="jetty.httpConfig.requestHeaderSize" deprecated="jetty.request.header.size" default="8192" /></Set>
-#2021-02-06\r
-osgi.bundles=reference\:file\:cglib_2.2.2.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-annotations_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-core_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-databind_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.datatype.jackson-datatype-joda_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-base_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.module.jackson-module-jaxb-annotations_2.4.5.jar@4,\\r
-reference\:file\:com.ibm.db2.jcc_1.4.0.jar@4,\\r
-reference\:file\:com.ibm.nosql_4.19.26.jar@4,\\r
-reference\:file\:com.microsoft.sqlserver.sqljdbc_6.0.8112.100.jar@4,\\r
-reference\:file\:com.sun.jna_4.2.0.jar@4,\\r
-reference\:file\:groovy_3.0.3.jar@4,\\r
-reference\:file\:io.humble.video-arch-x86_64-pc-linux-gnu6_0.2.1.jar@4,\\r
-reference\:file\:io.humble.video-arch-x86_64-w64-mingw32_0.2.1.jar@4,\\r
-reference\:file\:io.humble.video-noarch_0.2.1.jar@4,\\r
-reference\:file\:javax.annotation-api_1.2.0.jar@4,\\r
-reference\:file\:javax.mail_1.5.0.b01.jar@4,\\r
-reference\:file\:javax.servlet-api_3.1.0.jar@4,\\r
-reference\:file\:javax.ws.rs-api_2.0.1.jar@4,\\r
-reference\:file\:jcifs_1.3.17.jar@4,\\r
-reference\:file\:joda-time_2.2.0.jar@4,\\r
-reference\:file\:junit_4.12.0.jar@4,\\r
-reference\:file\:org.apache.aries.spifly.dynamic.bundle_1.0.8.jar@4,\\r
-reference\:file\:org.apache.aries.util_1.0.0.jar@4,\\r
-reference\:file\:org.apache.commons.beanutils_1.8.3.jar@4,\\r
-reference\:file\:org.apache.commons.codec_1.6.0.v201305230611.jar@4,\\r
-reference\:file\:org.apache.commons.collections_3.2.2.v201511171945.jar@4,\\r
-reference\:file\:org.apache.commons.digester_3.2.0.jar@4,\\r
-reference\:file\:org.apache.commons.io_2.6.0.jar@4,\\r
-reference\:file\:org.apache.commons.lang_2.6.0.v201404270220.jar@4,\\r
-reference\:file\:org.apache.commons.net_3.6.0.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.command_0.10.0.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.shell_0.10.0.v201212101605.jar@4,\\r
-reference\:file\:org.apache.httpcomponents.httpclient_4.5.2.v20161115-1643.jar@4,\\r
-reference\:file\:org.apache.httpcomponents.httpcore_4.4.4.v20161115-1643.jar@4,\\r
-reference\:file\:org.apache.logging.log4j.api_2.8.2.jar@1\:start,\\r
-reference\:file\:org.apache.logging.log4j.core_2.8.2.jar@4,\\r
-reference\:file\:org.apache.logging.log4j.slf4j-impl_2.8.2.jar@4,\\r
-reference\:file\:org.apache.servicemix.bundles.quartz_2.3.0.2.jar@4,\\r
-reference\:file\:org.eclipse.equinox.common_3.8.0.v20160509-1230.jar@2\:start,\\r
-reference\:file\:org.eclipse.equinox.console_1.1.200.v20150929-1405.jar@4,\\r
-reference\:file\:org.eclipse.equinox.ds_1.4.400.v20160226-2036.jar@1\:start,\\r
-reference\:file\:org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar@4,\\r
-reference\:file\:org.eclipse.equinox.util_1.0.500.v20130404-1337.jar@4,\\r
-reference\:file\:org.eclipse.jetty.client_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.deploy_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.http_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.io_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.osgi.boot_9.3.9.v20160517.jar@4\:start,\\r
-reference\:file\:org.eclipse.jetty.schemas_3.1.0.jar@4,\\r
-reference\:file\:org.eclipse.jetty.security_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.server_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.servlet_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.util_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.webapp_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.api_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.client_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.common_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.server_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.servlet_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.xml_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.osgi.services_3.2.100.v20100503.jar@4,\\r
-reference\:file\:org.hamcrest.core_1.3.0.v201303031735.jar@4,\\r
-reference\:file\:org.jboss.resteasy.client_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxb-provider_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxrs_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxrs-api_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jmock_2.6.0.jar@4,\\r
-reference\:file\:org.jmock.junit4_2.6.0.jar@4,\\r
-reference\:file\:org.mybatis.mybatis_3.5.2.jar@4,\\r
-reference\:file\:org.objectweb.asm_5.1.0.v20160914-0701.jar@4,\\r
-reference\:file\:org.objectweb.asm.commons_5.0.1.v201404251740.jar@4,\\r
-reference\:file\:org.objectweb.asm.tree_5.1.0.v20160914-0701.jar@4,\\r
-reference\:file\:org.omnifaces_3.4.1.jar@4,\\r
-reference\:file\:org.slf4j.jcl_1.7.2.v20130115-1340.jar@4,\\r
-reference\:file\:slf4j.api_1.7.24.jar@4,\\r
-reference\:file\:slf4j.simple_1.7.2.jar@4,\\r
-reference\:file\:user.commons.log4j2_1.0.0.jar@4,\\r
-reference\:file\:user.commons.zk_8.0.3.jar@4,\\r
-reference\:file\:user.jobengine.osgi.commons_1.0.0.jar@4\:start,\\r
-reference\:file\:user.jobengine.osgi.db_1.0.0.jar@4,\\r
-reference\:file\:user.jobengine.osgi.server_1.0.0.jar@4,\\r
-reference\:file\:user.jobengine.osgi.services_1.0.0.jar@4,\\r
-reference\:file\:user.mediacube.gui_1.0.0.jar@4,\\r
-reference\:file\:user.mediacube.metadata_1.0.0.jar@4,\\r
-reference\:file\:user.tsm.client_1.2.0.jar@4\r
+#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser\r
+#Wed Feb 10 16:05:17 CET 2021\r
+osgi.bundles=reference\:file\:cglib_2.2.2.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-annotations_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-core_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-databind_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.datatype.jackson-datatype-joda_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-base_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.module.jackson-module-jaxb-annotations_2.4.5.jar@4,reference\:file\:com.ibm.db2.jcc_1.4.0.jar@4,reference\:file\:com.ibm.nosql_4.19.26.jar@4,reference\:file\:com.microsoft.sqlserver.sqljdbc_6.0.8112.100.jar@4,reference\:file\:com.sun.jna_4.2.0.jar@4,reference\:file\:groovy_3.0.3.jar@4,reference\:file\:io.humble.video-arch-x86_64-pc-linux-gnu6_0.2.1.jar@4,reference\:file\:io.humble.video-arch-x86_64-w64-mingw32_0.2.1.jar@4,reference\:file\:io.humble.video-noarch_0.2.1.jar@4,reference\:file\:javax.annotation-api_1.2.0.jar@4,reference\:file\:javax.mail_1.5.0.b01.jar@4,reference\:file\:javax.servlet-api_3.1.0.jar@4,reference\:file\:javax.ws.rs-api_2.0.1.jar@4,reference\:file\:jcifs_1.3.17.jar@4,reference\:file\:joda-time_2.2.0.jar@4,reference\:file\:junit_4.12.0.jar@4,reference\:file\:org.apache.aries.spifly.dynamic.bundle_1.0.8.jar@4,reference\:file\:org.apache.aries.util_1.0.0.jar@4,reference\:file\:org.apache.commons.beanutils_1.8.3.jar@4,reference\:file\:org.apache.commons.collections_3.2.2.jar@4,reference\:file\:org.apache.commons.digester_3.2.0.jar@4,reference\:file\:org.apache.commons.io_2.6.0.jar@4,reference\:file\:org.apache.commons.lang_2.6.0.jar@4,reference\:file\:org.apache.commons.net_3.6.0.jar@4,reference\:file\:org.apache.felix.gogo.command_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.runtime_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.shell_0.12.0.jar@4,reference\:file\:org.apache.httpcomponents.httpclient_4.2.6.jar@4,reference\:file\:org.apache.httpcomponents.httpcore_4.2.5.jar@4,reference\:file\:org.apache.logging.log4j.api_2.8.2.jar@1\:start,reference\:file\:org.apache.logging.log4j.core_2.8.2.jar@4,reference\:file\:org.apache.logging.log4j.slf4j-impl_2.8.2.jar@4,reference\:file\:org.apache.servicemix.bundles.quartz_2.3.0.2.jar@4,reference\:file\:org.eclipse.equinox.common_3.8.0.v20160509-1230.jar@2\:start,reference\:file\:org.eclipse.equinox.console_1.1.200.v20150929-1405.jar@4,reference\:file\:org.eclipse.equinox.ds_1.4.400.v20160226-2036.jar@1\:start,reference\:file\:org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar@4,reference\:file\:org.eclipse.equinox.util_1.0.500.v20130404-1337.jar@4,reference\:file\:org.eclipse.jetty.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.deploy_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.http_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.io_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.osgi.boot_9.3.9.v20160517.jar@4\:start,reference\:file\:org.eclipse.jetty.schemas_3.1.0.jar@4,reference\:file\:org.eclipse.jetty.security_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.util_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.webapp_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.api_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.common_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.xml_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.osgi.services_3.2.100.v20100503.jar@4,reference\:file\:org.hamcrest.core_1.3.0.jar@4,reference\:file\:org.jboss.resteasy.client_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxb-provider_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs-api_3.0.11.Final.jar@4,reference\:file\:org.jmock_2.6.0.jar@4,reference\:file\:org.jmock.junit4_2.6.0.jar@4,reference\:file\:org.mybatis.mybatis_3.5.2.jar@4,reference\:file\:org.objectweb.asm_5.0.1.jar@4,reference\:file\:org.objectweb.asm.commons_5.0.1.jar@4,reference\:file\:org.objectweb.asm.tree_5.0.1.jar@4,reference\:file\:org.omnifaces_3.4.1.jar@4,reference\:file\:slf4j.api_1.7.24.jar@4,reference\:file\:slf4j.simple_1.7.2.jar@4,reference\:file\:user.commons.log4j2_1.0.0.jar@4,reference\:file\:user.commons.zk_8.0.3.jar@4,reference\:file\:user.jobengine.osgi.commons_1.0.0.jar@4\:start,reference\:file\:user.jobengine.osgi.db_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.server_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.services_1.0.0.jar@4,reference\:file\:user.mediacube.gui_1.0.0.jar@4,reference\:file\:user.mediacube.metadata_1.0.0.jar@4,reference\:file\:user.tsm.client_1.2.0.jar@4\r
equinox.use.ds=true\r
osgi.bundles.defaultStartLevel=4\r
osgi.framework=file\:plugins/org.eclipse.osgi_3.11.2.v20161107-1947.jar\r
+osgi.framework.extensions=\r
+eclipse.p2.data.area=@config.dir/../p2\r
+eclipse.p2.profile=DefaultProfile\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Felhasználói archiválás">\r
+<jobtemplate name="Felhasználói archiválás" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="sourcePath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Anyag archiválása" multiInstance="true">\r
+<jobtemplate name="Anyag archiválása" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="archiveItem" type="user.jobengine.server.steps.ArchiveItem" />\r
<variable name="mediaCubeMedia" />\r
</input>\r
</inputs>\r
+ </calljobstep>\r
+ <calljobstep type="user.jobengine.server.steps.HLSProxyStep" weight="2">\r
+ <inputs>\r
+ <input>\r
+ <parameter name="archiveItem" />\r
+ </input>\r
+ <input>\r
+ <variable name="mediaCubeMedia" />\r
+ </input>\r
+ </inputs>\r
</calljobstep> \r
</commands>\r
</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Felhasználói archiválás">\r
+<jobtemplate name="Felhasználói archiválás" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="sourcePath" type="java.lang.String" />\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Felhasználói archiválás" useSessionLog="false">\r
- <declarations>\r
- <parameters>\r
- <parameter name="sourcePath" type="java.lang.String" />\r
- <parameter name="killDateDays" type="java.lang.Integer" />\r
- <parameter name="limit" type="java.lang.Integer" />\r
- </parameters>\r
- </declarations>\r
- <commands>\r
- <calljobstep id="step1" type="ArchiveRecursive.java" weight="1">\r
- <inputs>\r
- <input>\r
- <parameter name="sourcePath" />\r
- </input>\r
- <input>\r
- <parameter name="killDateDays" />\r
- </input>\r
- <input>\r
- <parameter name="limit" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true">\r
+<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="basket" type="java.util.ArrayList" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
<jobtemplate multiInstance="true" useSessionLog="true">\r
- <declarations>\r
- <parameters>\r
- <parameter name="param" type="java.lang.Integer" />\r
- </parameters>\r
- <variables>\r
- <variable name="var" type="java.lang.Integer" />\r
- </variables>\r
- </declarations>\r
<commands>\r
- <calljobstep remote="true" type="CancelableStep.java" weight="1" >\r
- <inputs>\r
- <input>\r
- <parameter name="param" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- <calljobstep remote="true" type="CancelableStep.java" weight="1" >\r
- <inputs>\r
- <input>\r
- <variable name="var" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
+ <calljobstep id="step1" type="user.jobengine.server.steps.CancelableStep" weight="1" />\r
</commands>\r
</jobtemplate>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Általános file másolás" multiInstance="true">\r
- <declarations>\r
- <parameters>\r
- <parameter name="sourceProtocol" type="java.lang.String"/>\r
- <parameter name="sourcePath" type="java.lang.String"/>\r
- <parameter name="sourceFileName" type="java.lang.String"/>\r
- <parameter name="targetProtocol" type="java.lang.String"/>\r
- <parameter name="targetPath" type="java.lang.String"/>\r
- <parameter name="targetFileName" type="java.lang.String"/>\r
- <parameter name="killDateDays" type="java.lang.Integer" />\r
- </parameters>\r
- </declarations>\r
- <commands>\r
- <calljobstep type="FileCopyStep.java" weight="1">\r
- <inputs>\r
- <input>\r
- <parameter name="sourceProtocol" />\r
- </input>\r
- <input>\r
- <parameter name="sourcePath" />\r
- </input>\r
- <input>\r
- <parameter name="sourceFileName" />\r
- </input>\r
- <input>\r
- <parameter name="targetProtocol" />\r
- </input>\r
- <input>\r
- <parameter name="targetPath" />\r
- </input>\r
- <input>\r
- <parameter name="targetFileName" />\r
- </input>\r
- <input>\r
- <parameter name="killDateDays" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="NEXIO anyagok törlése">\r
+<jobtemplate name="NEXIO anyagok törlése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<!-- A host név 'nexio.host' rendszerparaméter -->\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="NEXIO anyagok törlése">\r
+<jobtemplate name="NEXIO anyagok törlése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<!-- A host név 'nexio.host' rendszerparaméter -->\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate>\r
+<jobtemplate name="Hiányzó PROXY videók pótlása" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
</input>\r
</inputs>\r
</calljobstep>\r
- <calljobstep type="user.jobengine.server.steps.UpdateGhostMediaData" weight="1">\r
+ <calljobstep type="user.jobengine.server.steps.UpdateGhostMediaDataStep" weight="1">\r
<inputs>\r
<input>\r
<parameter name="mediaCubeMedia" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Anyagok törlése" multiInstance="true">\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="sourcePath" type="java.lang.String"/>\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="NEXIO anyagok törlése">\r
+<jobtemplate name="NEXIO anyagok törlése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<!-- A host név 'nexio.host' rendszerparaméter -->\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Anyagok törlése" multiInstance="true">\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="sourcePath" type="java.lang.String"/>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Duplikátumok törlése" multiInstance="true">\r
- <declarations>\r
- <parameters>\r
- <parameter name="limit" type="java.lang.Integer"/>\r
- </parameters>\r
- </declarations>\r
- <commands>\r
- <calljobstep id="id1" type="user.jobengine.server.steps.DuplicateRemoverStep" weight="1">\r
- <inputs>\r
- <input>\r
- <parameter name="limit" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="itemID" type="java.lang.Long"/>\r
</input>\r
</inputs>\r
<commands>\r
- <calljobstep id="step2" type="user.jobengine.server.steps.FakeStep" weight="1">\r
+ <calljobstep id="step2" type="user.jobengine.server.steps.Fake1Step" weight="1">\r
<inputs>\r
<input>\r
<parameter name="itemID" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true" useSessionLog="false">\r
+<jobtemplate multiInstance="true" useSessionLog="true">\r
<commands>\r
- <calljobstep type="FakeNoParamsStep.java" weight="1" />\r
+ <calljobstep type="user.jobengine.server.steps.FakeNoParamsStep" weight="1" />\r
</commands>\r
</jobtemplate>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true" name="Fake">\r
-<declarations>\r
- <parameters>\r
- <parameter name="itemID" type="java.lang.Long"/>\r
- </parameters>\r
- <parameters>\r
- <parameter name="iter" type="java.lang.Iterable"/>\r
- </parameters>\r
- <variables>\r
- <variable name="resultID" type="java.lang.Long"/>\r
- <variable name="resultID1" type="java.lang.Long"/>\r
- </variables>\r
-</declarations>\r
-<commands>\r
- <calljobstep type="FakeStep.java" weight="5" forEach="iter">\r
- <inputs>\r
- <input>\r
- <parameter name="itemID" />\r
- </input>\r
- <input>\r
- <parameter name="iter" />\r
- </input>\r
- </inputs>\r
- <outputs>\r
- <output>\r
- <variable name="resultID" />\r
- </output>\r
- <output>\r
- <variable name="resultID1" />\r
- </output>\r
- </outputs>\r
- </calljobstep>\r
- <calljobstep type="MergeStep.java" weight="1">\r
- <inputs>\r
- <input>\r
- <variable name="resultID" />\r
- </input>\r
- <input>\r
- <variable name="resultID1" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
-</commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true" name="Fake">\r
+<jobtemplate multiInstance="true" name="Fake" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="itemID" type="java.lang.Long"/>\r
</parameters>\r
<variables>\r
<variable name="resultID" type="java.lang.Long"/>\r
- <variable name="resultID1" type="java.lang.Long"/>\r
</variables>\r
</declarations>\r
<commands>\r
- <calljobstep type="FakeStep.java" weight="1">\r
+ <calljobstep id="step1" type="user.jobengine.server.steps.FakeStep" weight="1">\r
<inputs>\r
<input>\r
<parameter name="itemID" />\r
<output>\r
<variable name="resultID" />\r
</output>\r
- <output>\r
- <variable name="resultID1" />\r
- </output>\r
</outputs>\r
</calljobstep>\r
</commands>\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="MORPHEUS 'missing materials' importálása">\r
+<jobtemplate name="MORPHEUS 'missing materials' importálása" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="daysBeforeNow" type="java.lang.Integer"/>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="HSM migráció">\r
- <declarations>\r
- <parameters>\r
- <parameter name="sourceLocation" type="java.lang.String" />\r
- <parameter name="targetLocation" type="java.lang.String" />\r
- </parameters>\r
- </declarations>\r
- <commands>\r
- <calljobstep id="step1" type="user.jobengine.server.steps.HSMMigrateStep" weight="1">\r
- <inputs>\r
- <input>\r
- <parameter name="sourceLocation" />\r
- </input>\r
- <input>\r
- <parameter name="targetLocation" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Archivált anyag visszatöltése">\r
+<jobtemplate name="Archivált anyag visszatöltése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="MORPHEUS anyagok visszatöltése">\r
+<jobtemplate name="MORPHEUS anyagok visszatöltése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="sourcePath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true">\r
+<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="localRetrievePath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="TRAFFIC anyagok visszatöltése">\r
+<jobtemplate name="TRAFFIC anyagok visszatöltése" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="dbUrl" type="java.lang.String" />\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Archivált anyag visszatöltése" multiInstance="true" useSessionLog="false">\r
- <declarations>\r
- <parameters>\r
- <parameter name="mediaId" type="java.lang.Long" />\r
- <parameter name="targetPath" type="java.lang.String" />\r
- </parameters>\r
- </declarations>\r
- <commands>\r
- <calljobstep type="TSMSimpleRestoreStep.java" weight="1">\r
- <inputs>\r
- <input>\r
- <parameter name="mediaId" />\r
- </input>\r
- <input>\r
- <variable name="targetPath" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="true">\r
<commands>\r
<calljobstep id="step1" type="user.jobengine.server.steps.SubmitChildStep" weight="1" />\r
</commands>\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="OCTOPUS adatok szinkronizálása" service="true">\r
+<jobtemplate name="OCTOPUS adatok szinkronizálása" service="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="includeArchived" type="java.lang.Boolean" />\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="false" useSessionLog="false">\r
- <declarations>\r
- <parameters>\r
- <parameter name="sourceStoreName" type="java.lang.String" />\r
- <parameter name="targetStoreName" type="java.lang.String" />\r
- </parameters>\r
- </declarations>\r
- <commands>\r
-<!-- <calljobstep type="user.jobengine.server.steps.SyncSubtitlesStep" weight="1" > -->\r
- <calljobstep type="SyncSubtitlesStep.java" weight="1" >\r
- <inputs>\r
- <input>\r
- <parameter name="sourceStoreName" />\r
- </input>\r
- <input>\r
- <parameter name="targetStoreName" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Felhasználói archiválás">\r
+<jobtemplate name="Felhasználói archiválás" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="webPath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="MORPHEUS 'missing materials' importálása">\r
+<jobtemplate name="MORPHEUS 'missing materials' importálása" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="csvFilePath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="Hiányzó hosszak pótlása">\r
+<jobtemplate name="Hiányzó hosszak pótlása" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="localHiresPath" type="java.lang.String" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate name="MORPHEUS 'missing material' visszatöltése" multiInstance="true">\r
+<jobtemplate name="MORPHEUS 'missing material' visszatöltése" multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="material" type="com.ibm.nosql.json.api.BasicDBObject" />\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true">\r
+<jobtemplate multiInstance="true" useSessionLog="true">\r
<declarations>\r
<parameters>\r
<parameter name="p1" type="java.lang.Long"/>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate>\r
- <declarations>\r
- <parameters>\r
- <parameter name="masterAddress" type="java.lang.String"/>\r
- </parameters>\r
- </declarations>\r
-\r
- <commands>\r
- <calljobstep remote="true" id="step1" type="user.jobengine.server.steps.WorkerKeepAliveStep" weight="1" >\r
- <inputs>\r
- <input>\r
- <parameter name="masterAddress" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
- </commands>\r
-</jobtemplate>
\ No newline at end of file
-:-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 ^\r
-\r
-\r
@echo off\r
if exist tmp rmdir tmp /s /q\r
mkdir tmp\r
-Dorg.eclipse.epp.logging.aeri.skipReports=true ^\r
-Declipse.ignoreApp=true ^\r
-Dosgi.noShutdown=true ^\r
--Dlog4j.configurationFile=configuration/log4j2.xml ^\r
--Djobengine.maestro.config=configuration/maestro.json ^\r
--Djobengine.mediacube.config=configuration/mediacube.json ^\r
--Djetty.home=configuration/jetty ^\r
+-Dlog4j.configurationFile=settings/log4j2.xml ^\r
+-Djetty.home=settings/test-jetty ^\r
-Djetty.etc.config.urls=jetty.xml,jetty-ssl.xml,jetty-ssl-context.xml,jetty-http.xml,jetty-https.xml ^\r
-Djava.io.tmpdir=tmp ^\r
--Djobengine.jobsteps.root=jobs/executors ^\r
--Djobengine.jobtemplates.root=jobs/templates ^\r
--Djobengine.jobscheduling.config=jobs/schedules.json ^\r
--Djobengine.jobsteps.config=jobs/executors.xml ^\r
--Djobengine.jobsteps.groovy.root=jobs/steps ^\r
--Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc ^\r
--Djobengine.db.user=db2admin ^\r
--Djobengine.db.password=password ^\r
--Djobengine.db.loginTimeout=3 ^\r
--Djobengine.nosql.db.url=jdbc:db2://10.11.1.90:50000/mc ^\r
--Djobengine.nosql.db.user=db2admin ^\r
--Djobengine.nosql.db.password=password ^\r
--Djobengine.nosql.db.schema=test ^\r
--Djobengine.nosql.db.loginTimeout=3 ^\r
--Dnexio.disable=true ^\r
--Djobengine.scheduledexecution.disabled=true ^\r
--Djobengine.randomize.archives=false ^\r
--Dgui.jobs.alternate.selector=true ^\r
--Dmediacube.simplesearch=true ^\r
+-Dfile.encoding=UTF-8 ^\r
+-Dgosh.home=configuration ^\r
-jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar ^\r
-Xms512m ^\r
-Xmx1024m ^\r
--console 5555\r
+-console\r
+++ /dev/null
-datasource:\r
- mediacube:\r
- url: jdbc:db2://10.11.1.90:50000/mc\r
- user: db2admin\r
- password: password\r
- external-indexer: false\r
- simple-search: true\r
- login-timeout: 3\r
- pool-size: 10\r
- mediacube-nosql:\r
- url: jdbc:db2://10.11.1.90:50000/mc\r
- user: db2admin\r
- password: password\r
- schema: test\r
- login-timeout: 3\r
- nexio: \r
- url: jdbc:db2://10.11.1.90:50000/mc\r
- user: db2admin\r
- password: password\r
- hsm: \r
- url: jdbc:db2://10.11.1.89:51500/tsmdb1\r
- user: tsminst1\r
- password: tsminst1\r
- planair: \r
- url: jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis;\r
- user: MAM\r
- password: VDani\r
-services:\r
- ffmpeg:\r
- execurable-location: /opt/ffmpeg/ffmpeg \r
- peablebeach:\r
- template-root: configuration/soap\r
- mediacube:\r
- proxy-root: /opt\r
- nexio:\r
- host: 10.10.1.55\r
- collection-name: nexioclips\r
- use-mos-gateway: true\r
- disabled: true\r
- octopus:\r
- api:\r
- address: http://10.10.1.11/api/v1\r
- user: mama\r
- password: napocska\r
- rundowns-collection-name: rundowns\r
- stories-collection-name: stories\r
- folders-collection-name: storyfolders\r
-jobs:\r
- nexio-track: false\r
- randomize-archives: false\r
- scheduled-execution: false\r
- validate-transfers: false\r
- copy-buffer-size: 32768\r
- scheduled-execution-disabled: true\r
- randomize-archives: false\r
-tsm:\r
- randomize-archives: false \r
- delimiter: /\r
- node-name: JOBENGINE\r
- fs-name: /JOBENGINE\r
- alternate-fs-name: /JOBENGINE\r
- hl-name: /JOBENGINE\r
-
\ No newline at end of file
-#2021-02-06\r
-osgi.bundles=reference\:file\:cglib_2.2.2.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-annotations_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-core_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.core.jackson-databind_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.datatype.jackson-datatype-joda_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-base_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.4.5.jar@4,\\r
-reference\:file\:com.fasterxml.jackson.module.jackson-module-jaxb-annotations_2.4.5.jar@4,\\r
-reference\:file\:com.ibm.db2.jcc_1.4.0.jar@4,\\r
-reference\:file\:com.ibm.nosql_4.19.26.jar@4,\\r
-reference\:file\:com.microsoft.sqlserver.sqljdbc_6.0.8112.100.jar@4,\\r
-reference\:file\:com.sun.jna_4.2.0.jar@4,\\r
-reference\:file\:groovy_3.0.3.jar@4,\\r
-reference\:file\:io.humble.video-arch-x86_64-pc-linux-gnu6_0.2.1.jar@4,\\r
-reference\:file\:io.humble.video-arch-x86_64-w64-mingw32_0.2.1.jar@4,\\r
-reference\:file\:io.humble.video-noarch_0.2.1.jar@4,\\r
-reference\:file\:javax.annotation-api_1.2.0.jar@4,\\r
-reference\:file\:javax.mail_1.5.0.b01.jar@4,\\r
-reference\:file\:javax.servlet-api_3.1.0.jar@4,\\r
-reference\:file\:javax.ws.rs-api_2.0.1.jar@4,\\r
-reference\:file\:jcifs_1.3.17.jar@4,\\r
-reference\:file\:joda-time_2.2.0.jar@4,\\r
-reference\:file\:junit_4.12.0.jar@4,\\r
-reference\:file\:org.apache.aries.spifly.dynamic.bundle_1.0.8.jar@4,\\r
-reference\:file\:org.apache.aries.util_1.0.0.jar@4,\\r
-reference\:file\:org.apache.commons.beanutils_1.8.3.jar@4,\\r
-reference\:file\:org.apache.commons.codec_1.6.0.v201305230611.jar@4,\\r
-reference\:file\:org.apache.commons.collections_3.2.2.v201511171945.jar@4,\\r
-reference\:file\:org.apache.commons.digester_3.2.0.jar@4,\\r
-reference\:file\:org.apache.commons.io_2.6.0.jar@4,\\r
-reference\:file\:org.apache.commons.lang_2.6.0.v201404270220.jar@4,\\r
-reference\:file\:org.apache.commons.net_3.6.0.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.command_0.10.0.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar@4,\\r
-reference\:file\:org.apache.felix.gogo.shell_0.10.0.v201212101605.jar@4,\\r
-reference\:file\:org.apache.httpcomponents.httpclient_4.5.2.v20161115-1643.jar@4,\\r
-reference\:file\:org.apache.httpcomponents.httpcore_4.4.4.v20161115-1643.jar@4,\\r
-reference\:file\:org.apache.logging.log4j.api_2.8.2.jar@1\:start,\\r
-reference\:file\:org.apache.logging.log4j.core_2.8.2.jar@4,\\r
-reference\:file\:org.apache.logging.log4j.slf4j-impl_2.8.2.jar@4,\\r
-reference\:file\:org.apache.servicemix.bundles.quartz_2.3.0.2.jar@4,\\r
-reference\:file\:org.eclipse.equinox.common_3.8.0.v20160509-1230.jar@2\:start,\\r
-reference\:file\:org.eclipse.equinox.console_1.1.200.v20150929-1405.jar@4,\\r
-reference\:file\:org.eclipse.equinox.ds_1.4.400.v20160226-2036.jar@1\:start,\\r
-reference\:file\:org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar@4,\\r
-reference\:file\:org.eclipse.equinox.util_1.0.500.v20130404-1337.jar@4,\\r
-reference\:file\:org.eclipse.jetty.client_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.deploy_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.http_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.io_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.osgi.boot_9.3.9.v20160517.jar@4\:start,\\r
-reference\:file\:org.eclipse.jetty.schemas_3.1.0.jar@4,\\r
-reference\:file\:org.eclipse.jetty.security_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.server_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.servlet_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.util_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.webapp_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.api_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.client_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.common_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.server_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.websocket.servlet_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.jetty.xml_9.3.9.v20160517.jar@4,\\r
-reference\:file\:org.eclipse.osgi.services_3.2.100.v20100503.jar@4,\\r
-reference\:file\:org.hamcrest.core_1.3.0.v201303031735.jar@4,\\r
-reference\:file\:org.jboss.resteasy.client_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxb-provider_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxrs_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jboss.resteasy.jaxrs-api_3.0.11.Final.jar@4,\\r
-reference\:file\:org.jmock_2.6.0.jar@4,\\r
-reference\:file\:org.jmock.junit4_2.6.0.jar@4,\\r
-reference\:file\:org.mybatis.mybatis_3.5.2.jar@4,\\r
-reference\:file\:org.objectweb.asm_5.1.0.v20160914-0701.jar@4,\\r
-reference\:file\:org.objectweb.asm.commons_5.0.1.v201404251740.jar@4,\\r
-reference\:file\:org.objectweb.asm.tree_5.1.0.v20160914-0701.jar@4,\\r
-reference\:file\:org.omnifaces_3.4.1.jar@4,\\r
-reference\:file\:org.slf4j.jcl_1.7.2.v20130115-1340.jar@4,\\r
-reference\:file\:slf4j.api_1.7.24.jar@4,\\r
-reference\:file\:slf4j.simple_1.7.2.jar@4,\\r
-reference\:file\:user.commons.log4j2_1.0.0.jar@4,\\r
-reference\:file\:user.commons.zk_8.0.3.jar@4,\\r
-reference\:file\:user.jobengine.osgi.commons_1.0.0.jar@4\:start,\\r
-reference\:file\:user.jobengine.osgi.db_1.0.0.jar@4,\\r
-reference\:file\:user.jobengine.osgi.server_1.0.0.jar@4,\\r
-reference\:file\:user.jobengine.osgi.services_1.0.0.jar@4,\\r
-reference\:file\:user.mediacube.gui_1.0.0.jar@4,\\r
-reference\:file\:user.mediacube.metadata_1.0.0.jar@4,\\r
-reference\:file\:user.tsm.client_1.2.0.jar@4\r
+#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser\r
+#Wed Feb 10 16:05:17 CET 2021\r
+osgi.bundles=reference\:file\:cglib_2.2.2.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-annotations_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-core_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.core.jackson-databind_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.datatype.jackson-datatype-joda_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-base_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider_2.4.5.jar@4,reference\:file\:com.fasterxml.jackson.module.jackson-module-jaxb-annotations_2.4.5.jar@4,reference\:file\:com.ibm.db2.jcc_1.4.0.jar@4,reference\:file\:com.ibm.nosql_4.19.26.jar@4,reference\:file\:com.microsoft.sqlserver.sqljdbc_6.0.8112.100.jar@4,reference\:file\:com.sun.jna_4.2.0.jar@4,reference\:file\:groovy_3.0.3.jar@4,reference\:file\:io.humble.video-arch-x86_64-pc-linux-gnu6_0.2.1.jar@4,reference\:file\:io.humble.video-arch-x86_64-w64-mingw32_0.2.1.jar@4,reference\:file\:io.humble.video-noarch_0.2.1.jar@4,reference\:file\:javax.annotation-api_1.2.0.jar@4,reference\:file\:javax.mail_1.5.0.b01.jar@4,reference\:file\:javax.servlet-api_3.1.0.jar@4,reference\:file\:javax.ws.rs-api_2.0.1.jar@4,reference\:file\:jcifs_1.3.17.jar@4,reference\:file\:joda-time_2.2.0.jar@4,reference\:file\:junit_4.12.0.jar@4,reference\:file\:org.apache.aries.spifly.dynamic.bundle_1.0.8.jar@4,reference\:file\:org.apache.aries.util_1.0.0.jar@4,reference\:file\:org.apache.commons.beanutils_1.8.3.jar@4,reference\:file\:org.apache.commons.collections_3.2.2.jar@4,reference\:file\:org.apache.commons.digester_3.2.0.jar@4,reference\:file\:org.apache.commons.io_2.6.0.jar@4,reference\:file\:org.apache.commons.lang_2.6.0.jar@4,reference\:file\:org.apache.commons.net_3.6.0.jar@4,reference\:file\:org.apache.felix.gogo.command_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.runtime_0.12.0.jar@4,reference\:file\:org.apache.felix.gogo.shell_0.12.0.jar@4,reference\:file\:org.apache.httpcomponents.httpclient_4.2.6.jar@4,reference\:file\:org.apache.httpcomponents.httpcore_4.2.5.jar@4,reference\:file\:org.apache.logging.log4j.api_2.8.2.jar@1\:start,reference\:file\:org.apache.logging.log4j.core_2.8.2.jar@4,reference\:file\:org.apache.logging.log4j.slf4j-impl_2.8.2.jar@4,reference\:file\:org.apache.servicemix.bundles.quartz_2.3.0.2.jar@4,reference\:file\:org.eclipse.equinox.common_3.8.0.v20160509-1230.jar@2\:start,reference\:file\:org.eclipse.equinox.console_1.1.200.v20150929-1405.jar@4,reference\:file\:org.eclipse.equinox.ds_1.4.400.v20160226-2036.jar@1\:start,reference\:file\:org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar@4,reference\:file\:org.eclipse.equinox.util_1.0.500.v20130404-1337.jar@4,reference\:file\:org.eclipse.jetty.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.deploy_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.http_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.io_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.osgi.boot_9.3.9.v20160517.jar@4\:start,reference\:file\:org.eclipse.jetty.schemas_3.1.0.jar@4,reference\:file\:org.eclipse.jetty.security_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.util_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.webapp_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.api_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.client_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.common_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.server_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.websocket.servlet_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.jetty.xml_9.3.9.v20160517.jar@4,reference\:file\:org.eclipse.osgi.services_3.2.100.v20100503.jar@4,reference\:file\:org.hamcrest.core_1.3.0.jar@4,reference\:file\:org.jboss.resteasy.client_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxb-provider_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs_3.0.11.Final.jar@4,reference\:file\:org.jboss.resteasy.jaxrs-api_3.0.11.Final.jar@4,reference\:file\:org.jmock_2.6.0.jar@4,reference\:file\:org.jmock.junit4_2.6.0.jar@4,reference\:file\:org.mybatis.mybatis_3.5.2.jar@4,reference\:file\:org.objectweb.asm_5.0.1.jar@4,reference\:file\:org.objectweb.asm.commons_5.0.1.jar@4,reference\:file\:org.objectweb.asm.tree_5.0.1.jar@4,reference\:file\:org.omnifaces_3.4.1.jar@4,reference\:file\:slf4j.api_1.7.24.jar@4,reference\:file\:slf4j.simple_1.7.2.jar@4,reference\:file\:user.commons.log4j2_1.0.0.jar@4,reference\:file\:user.commons.zk_8.0.3.jar@4,reference\:file\:user.jobengine.osgi.commons_1.0.0.jar@4\:start,reference\:file\:user.jobengine.osgi.db_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.server_1.0.0.jar@4,reference\:file\:user.jobengine.osgi.services_1.0.0.jar@4,reference\:file\:user.mediacube.gui_1.0.0.jar@4,reference\:file\:user.mediacube.metadata_1.0.0.jar@4,reference\:file\:user.tsm.client_1.2.0.jar@4\r
equinox.use.ds=true\r
osgi.bundles.defaultStartLevel=4\r
osgi.framework=file\:plugins/org.eclipse.osgi_3.11.2.v20161107-1947.jar\r
+osgi.framework.extensions=\r
+eclipse.p2.data.area=@config.dir/../p2\r
+eclipse.p2.profile=DefaultProfile\r
--- /dev/null
+prompt=mc>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<Configuration status="ERROR" monitorInterval="10">\r
- <Properties>\r
- <Property name="fileName">log/mediacube.log</Property>\r
- <Property name="filePattern">/opt/log/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
- <Property name="fileName.err">/opt/log/mediacube-err.log</Property>\r
- <Property name="filePattern.err">/opt/log/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
- </Properties>\r
- <Appenders>\r
- <Console name="Console" target="SYSTEM_OUT">\r
- <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" />\r
- </Console>\r
- </Appenders>\r
- <Loggers>\r
- <Root level="INFO">\r
- <AppenderRef ref="Console" />\r
- </Root>\r
- <Logger name="org.quartz" level="ERROR" additivity="false" />\r
- <Logger name="org.zkoss" level="ERROR" additivity="false" />\r
-</Loggers>\r
-</Configuration>
\ No newline at end of file
+++ /dev/null
-{
- "sourceStoreUri": {
- "name": "Default",
- "protocol": "LOCAL",
- "uri": "/mnt/NLE",
- "fileFilter": "*.mxf",
- "showDirectories": true
- },
- "alternateSourceStoreUris":
- [
- {
- "name": "NLE1",
- "protocol": "LOCAL",
- "uri": "/mnt/NLE/NLE1",
- "fileFilter": "*.mxf",
- "showDirectories": true
- },
- {
- "name": "NLE2",
- "protocol": "LOCAL",
- "uri": "/mnt/NLE/NLE2",
- "fileFilter": "*.mxf",
- "showDirectories": true
- },
- {
- "name": "NLE3",
- "protocol": "LOCAL",
- "uri": "/mnt/NLE/NLE3",
- "fileFilter": "*.mxf",
- "showDirectories": true
- },
- {
- "name": "NLE4",
- "protocol": "LOCAL",
- "uri": "/mnt/NLE/NLE4",
- "fileFilter": "*.mxf",
- "showDirectories": true
- },
- {
- "name": "POLC",
- "protocol": "LOCAL",
- "uri": "/mnt/POLC",
- "fileFilter": "*.mxf",
- "showDirectories": true
- }
- ],
- "targets":
- [
- {
- "name": "FINISHED_SHOWS",
- "killDateDays": 7,
- "storeUri": {
- "protocol": "LOCAL",
- "uri": "/mnt/PROMISE/FINISHED_SHOWS"
- }
- }
- ]
-}
-
-
-
<?xml version="1.0" encoding="UTF-8"?>\r
<executors>\r
- <executor className="CancelableStep.java" maxConcurrent="10" isRemote="true" />\r
- <executor className="TestForkCancelableStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="ArchiveRecursive.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="ArchiveListBuilderStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="ArchiveMaterialSubmitStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="BatchRetrieveForkStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="CleanupMountedLocationStep.java" maxConcurrent="5" isRemote="false" />\r
- <executor className="CreateArchiveItemStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="CreateMissingLowresStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="FileCopyStep.java" maxConcurrent="20" isRemote="false" />\r
- <executor className="HSMMigrateStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="MediaToolStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="MetadataTransformStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="MXFCutterStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="OutputPathAndNameSelectorStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="TranscodeFFAStranStep.java" maxConcurrent="2" isRemote="false" />\r
- <executor className="TSMBackupStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="TSMExtendedRetrieveStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="TSMRestoreStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="TSMSimpleRestoreStep.java" maxConcurrent="1" isRemote="false" />\r
- <executor className="UpdateGhostMediaDataStep.java" maxConcurrent="1" isRemote="false" />\r
+ <executor className="user.jobengine.server.steps.ArchiveListBuilderStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.ArchiveMaterialSubmitStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.BatchRetrieveForkStep" maxConcurrent="10" />\r
+ <executor className="user.jobengine.server.steps.CancelableStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CheckLOWRESIntegrity" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CheckMORPHEUSMissingMaterialsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CheckTRAFFICMissingMaterialsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CleanupMountedLocationStep" maxConcurrent="10" />\r
+ <executor className="user.jobengine.server.steps.ProjectCleanupMountedLocationStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CopyForArchiveNEXIOMaterialsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CopyForArchiveNEXIORecordingsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CreateArchiveItemStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.CreateMissingLowresStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.DeleteNEXIOMaterialsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.DetectMissingLengthStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.DeleteFileStep" maxConcurrent="100" />\r
+ <executor className="user.jobengine.server.steps.DownloadRecordingFromNexioStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.DuplicateRemoverStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.GenerateMorpheusMetadataStep" maxConcurrent="10" />\r
+ <executor className="user.jobengine.server.steps.HLSProxyStep" maxConcurrent="2" />\r
+ <executor className="user.jobengine.server.steps.ImportMORPHEUSMissingMaterialsStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.ImportStatisticsStep" maxConcurrent="7" />\r
+ <executor className="user.jobengine.server.steps.MXFCutterStep" maxConcurrent="7" />\r
+ <executor className="user.jobengine.server.steps.MetadataTransformStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.OutputPathAndNameSelectorStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.RecordingsArchiveItemBuilderStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.SyncOCTOPUSDataStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.TranscodeStep" maxConcurrent="2" />\r
+ <executor className="user.jobengine.server.steps.TranscodeFFAStranStep" maxConcurrent="2" />\r
+ <executor className="user.jobengine.server.steps.TranscodeSELENIOStep" maxConcurrent="2" />\r
+ <executor className="user.jobengine.server.steps.TSMBackupStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.TSMExtendedRetrieveStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.TSMRestoreStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.TSMSystemRestoreStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.TSMRetrieveMissingMaterialStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.UploadRecordingToNexioStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.MediaToolStep" maxConcurrent="1" />\r
+ <executor className="user.jobengine.server.steps.UpdateGhostMediaDataStep" maxConcurrent="1" />\r
</executors>
\ No newline at end of file
{"joblist":[\r
{\r
- "active": false,\r
+ "template": "cancelable.xml"\r
+ }, \r
+ {\r
+ "active": true,\r
+ "executeimmediate": true,\r
+ "name" : "OCTOPUS adatok szinkronizálása",\r
+ "template": "sync-octopus.xml",\r
+ "cronexpression": "0/30 * * * * ?",\r
+ "parameters": [\r
+ {"name": "includeArchived", "value": false, "type": "java.lang.Boolean"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": true,\r
"executeimmediate": false,\r
- "name" : "Rekurzív archiválás a POLC/FINISHED_SHOWS mappából",\r
- "template": "archive-recursive.xml",\r
- "cronexpression": "0 */1 * * * ?",\r
+ "name" : "Limitált archiválás az ISILON/ARCHIVE mappából",\r
+ "template": "archive-limited.xml",\r
+ "cronexpression": "0 0 6-22/1 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mnt/POLC/FINISHED_SHOWS", "type": "java.lang.String"},\r
- {"name": "killDateDays", "value": 1, "type": "java.lang.Integer"},\r
- {"name": "limit", "value": 1, "type": "java.lang.Integer"}\r
- ]\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE", "type": "java.lang.String"},\r
+ {"name": "killDateDays", "value": 1, "type": "java.lang.Integer"},\r
+ {"name": "limit", "value": 20, "type": "java.lang.Integer"}\r
+ ]\r
},\r
{\r
- "active": false,\r
+ "active": true,\r
"executeimmediate": false,\r
- "name" : "Párhuzamosított teszt folyamat",\r
- "template": "fake-noparams.xml",\r
- "cronexpression": "0 40 22 * * ?",\r
- "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
+ "name" : "Archiválás az ISILON/ARCHIVE mappából",\r
+ "template": "archive-ondemand.xml",\r
+ "cronexpression": "0 0 1 * * ?",\r
+ "parameters": [ \r
+ {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE", "type": "java.lang.String"},\r
+ {"name": "killDateDays", "value": 1, "type": "java.lang.Integer"},\r
+ {"name": "limit", "value": 0, "type": "java.lang.Integer"}\r
+ ]\r
},\r
{\r
- "template": "cancelable.xml",\r
- "parameters": [ {"name": "param", "value": 1, "type": "java.lang.Integer"} ]\r
- }, \r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "PROXY pótlás FFASTRANS 71",\r
+ "template": "sys-recreate-lowres-71.xml",\r
+ "cronexpression": "0 * * * * ?",\r
+ "parameters": [ \r
+ {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER-71/OUTPUT", "type": "java.lang.String" },\r
+ {"name": "transcoderAddress", "value": "http://10.10.1.71:65445/api/json/v1/", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "file://10.10.1.30/transcode", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String"},\r
+ {"name": "localHiresPath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String" },\r
+ {"name": "globalHiresPath", "value": "L:\\transcode", "type": "java.lang.String" },\r
+ {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}\r
+ ]\r
+ },\r
{\r
- "active": false,\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "PROXY pótlás FFASTRANS 72",\r
+ "template": "sys-recreate-lowres-72.xml",\r
+ "cronexpression": "10 * * * * ?",\r
+ "parameters": [ \r
+ {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER-72/OUTPUT", "type": "java.lang.String" },\r
+ {"name": "transcoderAddress", "value": "http://10.10.1.72:65445/api/json/v1/", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "file://10.10.1.30/transcode", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String"},\r
+ {"name": "localHiresPath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String" },\r
+ {"name": "globalHiresPath", "value": "L:\\transcode", "type": "java.lang.String" },\r
+ {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}\r
+ ]\r
+ },\r
+ {\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "PROXY pótlás FFASTRANS 73",\r
+ "template": "sys-recreate-lowres-73.xml",\r
+ "cronexpression": "20 * * * * ?",\r
+ "parameters": [ \r
+ {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER-73/OUTPUT", "type": "java.lang.String" },\r
+ {"name": "transcoderAddress", "value": "http://10.10.1.73:65445/api/json/v1/", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "file://10.10.1.30/transcode", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String"},\r
+ {"name": "localHiresPath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String" },\r
+ {"name": "globalHiresPath", "value": "L:\\transcode", "type": "java.lang.String" },\r
+ {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}\r
+ ]\r
+ },\r
+ {\r
+ "active": true,\r
"executeimmediate": false,\r
- "name" : "HSM migrálás",\r
- "template": "migrate-hsm.xml",\r
- "cronexpression": "0 0 */1 * * ?",\r
+ "name" : "PROXY pótlás FFASTRANS 74",\r
+ "template": "sys-recreate-lowres-74.xml",\r
+ "cronexpression": "30 * * * * ?",\r
"parameters": [ \r
- {"name": "sourceLocation", "value": "", "type": "java.lang.String"},\r
- {"name": "targetLocation", "value": "/mediacube/data/ARCHIVE", "type": "java.lang.String"}\r
+ {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER-74/OUTPUT", "type": "java.lang.String" },\r
+ {"name": "transcoderAddress", "value": "http://10.10.1.74:65445/api/json/v1/", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "file://10.10.1.30/transcode", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String"},\r
+ {"name": "localHiresPath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String" },\r
+ {"name": "globalHiresPath", "value": "L:\\transcode", "type": "java.lang.String" },\r
+ {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}\r
]\r
},\r
{\r
- "active": false,\r
- "executeimmediate": true,\r
- "name" : "Limitált archiválás az PROMISE/ARCHIVE mappából",\r
- "template": "archive-limited.xml",\r
- "cronexpression": "0 */10 * * * ?",\r
+ "name" : "SYS: create-lowres-ondemand",\r
+ "template": "create-lowres-ondemand.xml",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mnt/PROMISE/ARCHIVE", "type": "java.lang.String"},\r
- {"name": "globalSourcePath", "value": "\\\\10.11.1.100\\PROMISE\\ARCHIVE", "type": "java.lang.String"},\r
- {"name": "transcoderTargetPath", "value": "/mnt/PROMISE/TRANSCODER/FFASTRANSCODER/Out", "type": "java.lang.String"},\r
- {"name": "killDateDays", "value": -1, "type": "java.lang.Integer"},\r
- {"name": "limit", "value": 10, "type": "java.lang.Integer"}\r
+ {"name": "globalRetrievePath", "value": "file://10.10.1.30/transcode", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String"},\r
+ {"name": "localHiresPath", "value": "/mediacube/data/lowres/www/video/IFT3/transcode", "type": "java.lang.String" },\r
+ {"name": "globalHiresPath", "value": "L:\\transcode", "type": "java.lang.String" },\r
+ {"name": "localLowresPath", "value": "/mnt/FIXTRANSCODER/OUTPUT", "type": "java.lang.String" },\r
+ {"name": "transcoderAddress", "value": "http://10.10.1.74:65445/api/json/v1/", "type": "java.lang.String"},\r
+ {"name": "transcoderTemplateName", "value": "MAM_proxy", "type": "java.lang.String"}\r
]\r
},\r
{\r
- "active": false,\r
- "executeimmediate": true,\r
- "name" : "Limitált archiválás a /mediacube/data/ARCHIVE mappából",\r
- "template": "archive-limited.xml",\r
- "cronexpression": "0 */10 * * * ?",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt ISILON/TQC/CHECK/KESZ anyagok törlése",\r
+ "template": "delete-materials.xml",\r
+ "cronexpression": "0 0 8 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mediacube/data/ARCHIVE", "type": "java.lang.String"},\r
- {"name": "globalSourcePath", "value": "\\\\10.11.1.90\\data\\ARCHIVE", "type": "java.lang.String"},\r
- {"name": "transcoderTargetPath", "value": "/mnt/PROMISE/TRANSCODER/FFASTRANSCODER/Out", "type": "java.lang.String"},\r
- {"name": "killDateDays", "value": -1, "type": "java.lang.Integer"},\r
- {"name": "limit", "value": 1000, "type": "java.lang.Integer"}\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/TQC/CHECK/KESZ", "type": "java.lang.String"}\r
]\r
- },\r
+ }, \r
{\r
"active": true,\r
- "executeimmediate": true,\r
- "name" : "Lejárt /mediacube/data/ARCHIVE anyagok törlése",\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt ISILON/TQC/PROMO/KESZ anyagok törlése",\r
"template": "delete-materials.xml",\r
- "cronexpression": "0 */10 * * * ?",\r
+ "cronexpression": "0 0 6 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mediacube/data/ARCHIVE", "type": "java.lang.String"}\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/TQC/PROMO/KESZ", "type": "java.lang.String"}\r
]\r
}, \r
{\r
- "active": false,\r
- "executeimmediate": true,\r
- "name" : "Lejárt /mediacube/data/OMARCHIVE anyagok törlése",\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt ISILON/TQC/REKLAM/KESZ anyagok törlése",\r
"template": "delete-materials.xml",\r
- "cronexpression": "0 */10 * * * ?",\r
+ "cronexpression": "0 0 7 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mediacube/data/OMARCHIVE", "type": "java.lang.String"}\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/TQC/REKLAM/KESZ", "type": "java.lang.String"}\r
]\r
}, \r
{\r
"active": true,\r
- "executeimmediate": true,\r
- "name" : "Lejárt /PROMISE/ARCHIVE anyagok törlése",\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt ISILON/ARCHIVE anyagok törlése",\r
"template": "delete-materials.xml",\r
- "cronexpression": "0 */10 * * * ?",\r
+ "cronexpression": "0 0 5 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mnt/PROMISE/ARCHIVE", "type": "java.lang.String"}\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE", "type": "java.lang.String"}\r
]\r
}, \r
{\r
- "active": false,\r
+ "active": true,\r
"executeimmediate": false,\r
- "name" : "Lejárt /POLC/FINISHED_SHOWS anyagok törlése",\r
+ "name" : "Lejárt ISILON/OCTOPUS/_NAPI_MEGTEKINTO anyagok törlése",\r
"template": "delete-materials.xml",\r
- "cronexpression": "0 * 11 * * ?",\r
+ "cronexpression": "0 0 22 * * ?",\r
+ "parameters": [ \r
+ {"name": "sourcePath", "value": "/mnt/ISILON/OCTOPUS/_NAPI_MEGTEKINTO", "type": "java.lang.String"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt ISISLON/PROMO_NLE mappák törlése",\r
+ "template": "delete-promo-materials.xml",\r
+ "cronexpression": "0 0 6 * * ?",\r
"parameters": [ \r
- {"name": "sourcePath", "value": "/mnt/POLC/FINISHED_SHOWS", "type": "java.lang.String"}\r
+ {"name": "sourcePath", "value": "/mnt/ISILON/PROMO_NLE", "type": "java.lang.String"}\r
]\r
}, \r
{\r
"active": true,\r
+ "executeimmediate": false,\r
+ "name" : "NEXIO bejátszó anyagok másolása az ISILON/ARCHIVE mappába",\r
+ "template": "copyforarchive-nexio-materials.xml",\r
+ "cronexpression": "0 0 10 * * ?",\r
+ "parameters": [ \r
+ {"name": "nexioPort", "value": 2098, "type": "java.lang.Integer"},\r
+ {"name": "nexioUserName", "value": "administrator", "type": "java.lang.String"},\r
+ {"name": "nexioPassword", "value": "system", "type": "java.lang.String"},\r
+ {"name": "archiveFtp", "value": "ftp://10.10.1.100/ARCHIVE", "type": "java.lang.String"},\r
+ {"name": "archiveUserName", "value": "mediacube", "type": "java.lang.String"},\r
+ {"name": "archivePassword", "value": "Broadca5T", "type": "java.lang.String"},\r
+ {"name": "daysBeforeNow", "value": 1, "type": "java.lang.Integer"},\r
+ {"name": "nexioKillDateDays", "value": 21, "type": "java.lang.Integer"},\r
+ {"name": "nexioAgency", "value": "ARCHIVED", "type": "java.lang.String"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "NEXIO visszarögzített anyagok másolása az ISILON/ARCHIVE mappába",\r
+ "template": "copyforarchive-nexio-recordings.xml",\r
+ "cronexpression": "0 0 12 * * ? *",\r
+ "parameters": [ \r
+ {"name": "nexioPort", "value": 2098, "type": "java.lang.Integer"},\r
+ {"name": "nexioUserName", "value": "administrator", "type": "java.lang.String"},\r
+ {"name": "nexioPassword", "value": "system", "type": "java.lang.String"},\r
+ {"name": "archiveFtp", "value": "ftp://10.10.1.100/ARCHIVE", "type": "java.lang.String"},\r
+ {"name": "archiveUserName", "value": "mediacube", "type": "java.lang.String"},\r
+ {"name": "archivePassword", "value": "Broadca5T", "type": "java.lang.String"},\r
+ {"name": "filterAgencies", "value": "schedule-rec", "type": "java.lang.String"},\r
+ {"name": "limit", "value": 30, "type": "java.lang.Integer"},\r
+ {"name": "nexioKillDateDays", "value": 7, "type": "java.lang.Integer"},\r
+ {"name": "nexioAgency", "value": "HIRADO_ARCHIVED", "type": "java.lang.String"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "Híranyag statisztika importálása",\r
+ "template": "import-statistics.xml",\r
+ "cronexpression": "0 0 6 * * ?",\r
+ "parameters": [ \r
+ {"name": "daysBeforeNow", "value": 1, "type": "java.lang.Integer"}\r
+ ]\r
+ },\r
+ {\r
+ "active": false,\r
+ "executeimmediate": true,\r
+ "name" : "TRAFFIC anyagok visszatöltése",\r
+ "template": "retrieve-traffic-missing-materials.xml",\r
+ "cronexpression": "0 0 0/1 1/1 * ? *",\r
+ "parameters": [\r
+ {"name": "dbUrl", "value": "jdbc:sqlserver://10.10.1.45\\sql16;databaseName=PA_Echo;", "type": "java.lang.String"},\r
+ {"name": "userName", "value": "MAM", "type": "java.lang.String"},\r
+ {"name": "password", "value": "Echotv.hu", "type": "java.lang.String"},\r
+ {"name": "lookupDays", "value": 7, "type": "java.lang.Integer"},\r
+ {"name": "targetPath", "value": "/mnt/ISILON/PLAYOUT/IceGateway/Input", "type": "java.lang.String"},\r
+ {"name": "killDateDays", "value": 10, "type": "java.lang.Integer"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": false,\r
"executeimmediate": true,\r
- "name" : "Proxy generálás",\r
- "template": "sys-recreate-lowres.xml",\r
- "cronexpression": "0 */1 * * * ?",\r
- "parameters": [ \r
- {"name": "globalRetrievePath", "value": "file://10.11.1.90/data", "type": "java.lang.String"},\r
- {"name": "localRetrievePath", "value": "/mediacube/data", "type": "java.lang.String"},\r
- {"name": "localHiresPath", "value": "/mediacube/data", "type": "java.lang.String" },\r
- {"name": "globalHiresPath", "value": "\\\\10.11.1.90\\data", "type": "java.lang.String" },\r
- {"name": "localLowresPath", "value": "/mediacube/data/TRANSCODER_OUT", "type": "java.lang.String" },\r
- {"name": "transcoderAddress", "value": "http://10.11.1.111:65445/api/json/v1/", "type": "java.lang.String"},\r
- {"name": "transcoderTemplateName", "value": "MP4", "type": "java.lang.String"}\r
+ "name" : "Lejárt ISISLON/ARCHIVE_TEMP anyagok törlése",\r
+ "template": "delete-materials.xml",\r
+ "cronexpression": "0 0 0/1 1/1 * ? *",\r
+ "parameters": [ \r
+ {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE_TEMP", "type": "java.lang.String"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": true,\r
+ "executeimmediate": false,\r
+ "name" : "Lejárt NEXIO anyagok törlése",\r
+ "template": "delete-nexio-materials.xml",\r
+ "cronexpression": "0 0 6 * * ?",\r
+ "parameters": [ \r
+ {"name": "port", "value": 2098, "type": "java.lang.Integer"},\r
+ {"name": "userName", "value": "administrator", "type": "java.lang.String"},\r
+ {"name": "password", "value": "system", "type": "java.lang.String"},\r
+ {"name": "filterAgencies", "value": "HIRADO_23_00,HIRADO_ARCHIVED,HIRADO_CLN", "type": "java.lang.String"},\r
+ {"name": "gracePeriodDays", "value": 1, "type": "java.lang.Integer"},\r
+ {"name": "notificationOnly", "value": false, "type": "java.lang.Boolean"}\r
+ ]\r
+ }, \r
+ {\r
+ "active": false,\r
+ "executeimmediate": false,\r
+ "name" : "Párhuzamosított teszt folyamat",\r
+ "template": "fake-concurrent.xml",\r
+ "cronexpression": "0/10 * * ? * *",\r
+ "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
+ },\r
+ {\r
+ "active": false,\r
+ "executeimmediate": false,\r
+ "name" : "Teszt folyamat",\r
+ "template": "fake.xml",\r
+ "cronexpression": "0/10 * * ? * *",\r
+ "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ]\r
+ },\r
+ {\r
+ "name" : "SYS: MORPHEUS 'missing materials' importálása",\r
+ "template": "import-morpheus-missing-materials.xml",\r
+ "parameters": [ \r
+ {"name": "csvFilePath", "value": "/mnt/MORPHEUS", "type": "java.lang.String"},\r
+ {"name": "processedFolder", "value": "DONE", "type": "java.lang.String"},\r
+ {"name": "targetPath", "value": "/mnt/ISILON/ARCHIVE_RESTORE", "type": "java.lang.String"}\r
]\r
},\r
{\r
"name" : "SYS: batch-retrieve-ondemand",\r
"template": "batch-retrieve-ondemand.xml",\r
- "active": false,\r
- "executeimmediate": false\r
},\r
{\r
"name" : "SYS: retrieve-ondemand",\r
"template": "retrieve-ondemand.xml",\r
- "active": false,\r
- "executeimmediate": false,\r
"parameters": [ \r
- {"name": "globalRetrievePath", "value": "file://10.11.1.100", "type": "java.lang.String"},\r
- {"name": "localRetrievePath", "value": "/mnt/PROMISE/", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "file://isilon.intra.echotv.hu", "type": "java.lang.String"},\r
+ {"name": "localRetrievePath", "value": "/mnt/ISILON", "type": "java.lang.String"},\r
{"name": "materialOutputFolder", "value": "PLAYOUT_NLE", "type": "java.lang.String"},\r
{"name": "promoOutputFolder", "value": "PROMO_NLE", "type": "java.lang.String"},\r
{"name": "advertisementOutputFolder", "value": "REKLAM_NLE", "type": "java.lang.String"},\r
]\r
},\r
{\r
- "name" : "SYS: common-copy",\r
- "template": "common-copy.xml",\r
- "active": false,\r
- "executeimmediate": false\r
+ "name" : "sys: MORPHEUS 'missing materials' importálása",\r
+ "template": "sys-import-morpheus-missing-materials.xml",\r
+ "parameters": [ \r
+ {"name": "csvFilePath", "value": "/mnt/MORPHEUS", "type": "java.lang.String"},\r
+ {"name": "processedFolder", "value": "DONE", "type": "java.lang.String"},\r
+ {"name": "targetPath", "value": "/mnt/ISILON/PLAYOUT/Video", "type": "java.lang.String"}\r
+ ]\r
},\r
{\r
- "template": "create-lowres-ondemand.xml",\r
- "active": false,\r
- "executeimmediate": false,\r
+ "name" : "sys: MORPHEUS 'missing material' visszatöltése",\r
+ "template": "sys-retrieve-missing-material.xml",\r
"parameters": [ \r
- {"name": "globalRetrievePath", "value": "file://10.11.1.90/data", "type": "java.lang.String"},\r
- {"name": "localRetrievePath", "value": "/mediacube/data", "type": "java.lang.String"},\r
- {"name": "localHiresPath", "value": "/mediacube/data", "type": "java.lang.String" },\r
- {"name": "globalHiresPath", "value": "\\\\10.11.1.90\\data", "type": "java.lang.String" },\r
- {"name": "localLowresPath", "value": "/mediacube/data/TRANSCODER_OUT", "type": "java.lang.String" },\r
- {"name": "transcoderAddress", "value": "http://10.11.1.111:65445/api/json/v1/", "type": "java.lang.String"},\r
- {"name": "transcoderTemplateName", "value": "MP4", "type": "java.lang.String"}\r
+ {"name": "targetPath", "value": "/mnt/ISILON/PLAYOUT/Video", "type": "java.lang.String"},\r
+ {"name": "globalRetrievePath", "value": "\\\\10.10.1.100\\BRAAVOS\\PLAYOUT\\Video", "type": "java.lang.String"},\r
+ {"name": "morpheusDeviceID", "value": "ISILON", "type": "java.lang.String"},\r
+ {"name": "dbUrl", "value": "jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo;", "type": "java.lang.String"},\r
+ {"name": "userName", "value": "MAM", "type": "java.lang.String"},\r
+ {"name": "password", "value": "Echotv.hu", "type": "java.lang.String"},\r
+ {"name": "targetMetadataPath", "value": "/mnt/ISILON/PLAYOUT/MorpheusGateway/Input", "type": "java.lang.String"}\r
]\r
- },\r
- \r
+ }\r
]}\r
+\r
+\r
+\r
-Dorg.eclipse.epp.logging.aeri.skipReports=true ^\r
-Declipse.ignoreApp=true ^\r
-Dosgi.noShutdown=true ^\r
--Dlog4j.configurationFile=configuration/log4j2.xml ^\r
--Djetty.home=configuration/jetty ^\r
+-Dlog4j.configurationFile=settings/log4j2.xml ^\r
+-Djetty.home=settings/test-jetty ^\r
-Djetty.etc.config.urls=jetty.xml,jetty-ssl.xml,jetty-ssl-context.xml,jetty-http.xml,jetty-https.xml ^\r
-Djava.io.tmpdir=tmp ^\r
+-Dfile.encoding=UTF-8 ^\r
+-Dgosh.home=configuration ^\r
-jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar ^\r
-Xms512m ^\r
-Xmx1024m ^\r
--console 5555\r
+-console\r
services:\r
ffmpeg:\r
execurable-location: /opt/ffmpeg/ffmpeg \r
- peablebeach:\r
- template-root: configuration/soap\r
mediacube:\r
proxy-root: /opt\r
nexio:\r
stories-collection-name: stories\r
folders-collection-name: storyfolders\r
jobs:\r
- nexio-track: false\r
- randomize-archives: false\r
- scheduled-execution: false\r
validate-transfers: false\r
copy-buffer-size: 32768\r
scheduled-execution-disabled: true\r
- randomize-archives: false\r
tsm:\r
randomize-archives: false \r
delimiter: /\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<Configuration status="ERROR" monitorInterval="10">\r
+<Configuration status="ERROR" monitorInterval="10" packages="user.commons.log4j2.appender">\r
<Properties>\r
- <Property name="fileName">log/mediacube.log</Property>\r
- <Property name="filePattern">/opt/log/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
- <Property name="fileName.err">/opt/log/mediacube-err.log</Property>\r
- <Property name="filePattern.err">/opt/log/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ <Property name="logPath">/opt/mediacube/log</Property>\r
+ <Property name="fileName">${logPath}/mediacube.log</Property>\r
+ <Property name="filePattern">${logPath}/$${date:yyyy-MM}/mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ <Property name="markeredFileName">${logPath}/markered-mediacube.log</Property>\r
+ <Property name="markeredFilePattern">${logPath}/$${date:yyyy-MM}/markered-mediacube-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
+ <Property name="fileName.err">${logPath}/mediacube-err.log</Property>\r
+ <Property name="filePattern.err">${logPath}/$${date:yyyy-MM}/mediacube-err-%d{MM-dd-yyyy}-%i.log.gz</Property>\r
</Properties>\r
<Appenders>\r
<Console name="Console" target="SYSTEM_OUT">\r
- <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{2}.%M - %msg (%F:%L) %n" />\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="DENY" onMismatch="NEUTRAL" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" />\r
</Console>\r
+ <Console name="MarkeredConsole" target="SYSTEM_ERR">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %markerSimpleName - %msg (%F:%L)%n" />\r
+ </Console>\r
+<!--\r
+ <HTMLMailAppender name="MarkeredMail" subject="[MAIN] MediaCube rendszerüzenet" to="shray.tarum@gmail.com,papp.zoltan@hirtv.net" \r
+ from="mediacube-noreply@echotv.hu" smtpHost="10.10.254.63" smtpPort="25" smtpProtocol="smtp" smtpUsername="intra\mediacube" \r
+ smtpPassword="s@vm*P#6Jh" ignoreExceptions="false" bufferSize="1">\r
+--> \r
+ <HTMLMailAppender name="MarkeredMail" subject="[MAIN] MediaCube rendszerüzenet" to="shray.tarum@gmail.com,papp.zoltan@hirtv.net" \r
+ from="mediacube-noreply@hirtv.net" smtpHost="10.10.254.120" smtpPort="25" smtpProtocol="smtp" ignoreExceptions="false" bufferSize="1">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss} %level - %msg %n" />\r
+ </HTMLMailAppender>\r
+ <RollingFile name="MarkeredRollingFile" fileName="${markeredFileName}" filePattern="${markeredFilePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %markerSimpleName - %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="RollingFile" fileName="${fileName}" filePattern="${filePattern}">\r
+ <Filters>\r
+ <MarkerFilter marker="MEDIACUBE" onMatch="DENY" onMismatch="NEUTRAL" />\r
+ </Filters>\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %level %logger{1}.%M %msg (%F:%L)%n %throwable" />\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
+ <RollingFile name="RollingFileExceptions" fileName="${fileName.err}" filePattern="${filePattern.err}">\r
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} %logger{1}.%M %msg (%F:%L)%n %throwable" />\r
+ <Filters>\r
+ <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />\r
+ </Filters>\r
+ <Policies>\r
+ <TimeBasedTriggeringPolicy />\r
+ </Policies>\r
+ </RollingFile>\r
</Appenders>\r
<Loggers>\r
<Root level="INFO">\r
<AppenderRef ref="Console" />\r
+ <AppenderRef ref="MarkeredConsole" />\r
+ <AppenderRef ref="RollingFile" />\r
+ <AppenderRef ref="RollingFileExceptions" />\r
+ <AppenderRef ref="MarkeredRollingFile" />\r
+ <AppenderRef ref="MarkeredMail" />\r
</Root>\r
- <Logger name="org.quartz" level="ERROR" additivity="false" />\r
<Logger name="org.zkoss" level="ERROR" additivity="false" />\r
-</Loggers>\r
+ <Logger name="org.quartz" level="ERROR" additivity="false" />\r
+ <Logger name="org.eclipse.jetty.osgi.boot" level="ERROR" additivity="false" />\r
+\r
+<!-- <logger name="org.jboss.resteasy.core" level="debug" /> -->\r
+<!-- <logger name="org.jboss.resteasy.specimpl" level="debug" /> -->\r
+<!-- <logger name="org.jboss.resteasy.plugins.server" level="debug" /> -->\r
+<!-- <logger name="org.jboss.resteasy.plugins.providers" level="debug" /> -->\r
+<!-- <logger name="user.commons.nexio" level="debug" /> -->\r
+ </Loggers>\r
</Configuration>
\ No newline at end of file
{\r
- "jobQueuePollInterval": 1000,\r
"topTypeFilters": [\r
{\r
"name": "Hír bejátszó",\r
"color": "RED100",\r
"icon": "ic_perm_camera_mic_black_18dp.png"\r
},\r
+ {\r
+ "name": "ECHO visszarögzített",\r
+ "color": "BROWN100",\r
+ "icon": "ic_group_work_black_18dp.png"\r
+ },\r
{\r
"name": "Visszarögzített",\r
"color": "BROWN100",\r
"icon": "ic_group_work_black_18dp.png"\r
},\r
+ {\r
+ "name": "Muszter DEMO",\r
+ "color": "BROWN100",\r
+ "icon": "ic_group_work_black_18dp.png"\r
+ },\r
+ {\r
+ "name": "Műsor CLEAN",\r
+ "color": "BROWN100",\r
+ "icon": "ic_group_work_black_18dp.png"\r
+ },\r
{\r
"name": "Egyéb",\r
"color": "YELLOW200",\r
}\r
],\r
"bottomTypeFilters": [\r
+ {\r
+ "name": "ECHO műsor",\r
+ "color": "TEAL200",\r
+ "icon": "ic_theaters_black_18dp.png"\r
+ },\r
{\r
"name": "Műsor",\r
"color": "TEAL200",\r
"color": "TEAL100",\r
"icon": "ic_invert_colors_black_18dp.png"\r
},\r
+ {\r
+ "name": "ECHO promo",\r
+ "color": "INDIGO200",\r
+ "icon": "ic_picture_in_picture_black_18dp.png"\r
+ },\r
{\r
"name": "Promo",\r
"color": "INDIGO200",\r
"color": "INDIGO100",\r
"icon": "ic_bug_report_black_18dp.png"\r
},\r
+ {\r
+ "name": "ECHO reklám",\r
+ "color": "BLUE200",\r
+ "icon": "ic_picture_in_picture_alt_black_18dp.png"\r
+ },\r
{\r
"name": "Reklám",\r
"color": "BLUE200",\r
],\r
"authentication": {\r
"authEnabled": true,\r
- "adHost": "intra.mediavivantis.hu",\r
+ "adHost": "10.10.254.11",\r
"adNonSecurePort": 3268,\r
- "adBaseDn": "DC=intra,DC=mediavivantis,DC=hu",\r
+ "adBaseDn": "DC=intra,DC=echotv,DC=hu",\r
"adAdminMap": [\r
- "G_MV_U_MUSZAK",\r
- "G_MV_U_INGEST"\r
+ "G_ECH_U_INFORMATIKUSOK",\r
+ "G_ECH_U_MUSZAKVEZETOK",\r
+ "ECH-ISILON-ADMINS"\r
],\r
"adSubmitterMap": [\r
"G_ECH_U_INFORMATIKUSOK",\r
"G_ECH_U_MUSZAKVEZETOK",\r
- "ECH-ISILON-ADMINS"\r
+ "ECH-ISILON-ADMINS",\r
+ "G_ECH_U_PLAYOUT"\r
],\r
"adEditorMap": [\r
"G_ECH_U_INFORMATIKUSOK",\r
"G_ECH_U_MUSZAKVEZETOK",\r
- "ECH-ISILON-ADMINS"\r
+ "ECH-ISILON-ADMINS",\r
+ "G_ECH_U_ARCHIVUM"\r
],\r
"localAccounts": [\r
{\r
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- =============================================================== -->
+<!-- Create the deployment manager -->
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+<!-- The deplyment manager handles the lifecycle of deploying web -->
+<!-- applications. Apps are provided by instances of the -->
+<!-- AppProvider interface. -->
+<!-- =============================================================== -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <Call name="addBean">
+ <Arg>
+ <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
+ <Set name="contexts">
+ <Ref refid="Contexts" />
+ </Set>
+ <Call name="setContextAttribute">
+ <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
+ <Arg>.*/[^/]*servlet-api-[^/]*\.jar$|.*/javax.servlet.jsp.jstl-.*\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\.jar$</Arg>
+ </Call>
+
+ <!-- Add a customize step to the deployment lifecycle -->
+ <!-- uncomment and replace DebugBinding with your extended AppLifeCycle.Binding class
+ <Call name="insertLifeCycleNode">
+ <Arg>deployed</Arg>
+ <Arg>starting</Arg>
+ <Arg>customise</Arg>
+ </Call>
+ <Call name="addLifeCycleBinding">
+ <Arg>
+ <New class="org.eclipse.jetty.deploy.bindings.DebugBinding">
+ <Arg>customise</Arg>
+ </New>
+ </Arg>
+ </Call> -->
+
+ <Call id="webappprovider" name="addAppProvider">
+ <Arg>
+ <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
+ <Set name="monitoredDirName">
+ <Property>
+ <Name>jetty.deploy.monitoredPath</Name>
+ <Default>
+ <Property name="jetty.base" default="." />/<Property name="jetty.deploy.monitoredDir" deprecated="jetty.deploy.monitoredDirName" default="."/>
+ </Default>
+ </Property>
+ </Set>
+ <Set name="defaultsDescriptor">
+ <Property>
+ <Name>jetty.deploy.defaultsDescriptorPath</Name>
+ <Default>
+ <Property name="jetty.home" default="." />/etc/webdefault.xml
+ </Default>
+ </Property>
+ </Set>
+ <Set name="scanInterval"><Property name="jetty.deploy.scanInterval" default="1"/></Set>
+ <Set name="extractWars"><Property name="jetty.deploy.extractWars" default="true"/></Set>
+ <Set name="configurationManager">
+ <New class="org.eclipse.jetty.deploy.PropertiesConfigurationManager">
+ <!-- file of context configuration properties
+ <Set name="file"><SystemProperty name="jetty.base"/>/etc/some.properties</Set>
+ -->
+ <!-- set a context configuration property
+ <Call name="put"><Arg>name</Arg><Arg>value</Arg></Call>
+ -->
+ </New>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ </New>
+ </Arg>
+ </Call>
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server" -->
+<!-- by adding a HTTP connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Add a HTTP Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with a single -->
+ <!-- HttpConnectionFactory instance using the common httpConfig -->
+ <!-- instance defined in jetty.xml -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New id="httpConnector" class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="acceptors" type="int"><Property name="jetty.http.acceptors" deprecated="http.acceptors" default="-1"/></Arg>
+ <Arg name="selectors" type="int"><Property name="jetty.http.selectors" deprecated="http.selectors" default="-1"/></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config">
+ <New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Arg>
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <!-- This says... Redirect to https://host:8443 if server returns "NOT SECURE" error -->
+ <Set name="secureScheme">https</Set>
+ <Set name="securePort">8444</Set>
+ </New>
+ </Arg>
+ <Call name="addCustomizer">
+ <Arg>
+ <New class="org.eclipse.jetty.server.SecureRequestCustomizer" />
+ </Arg>
+ </Call>
+ </New>
+ </Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.http.host" deprecated="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.http.port" deprecated="jetty.port" default="9080" /></Set>
+ <Set name="idleTimeout"><Property name="jetty.http.idleTimeout" deprecated="http.timeout" default="30000"/></Set>
+ <Set name="soLingerTime"><Property name="jetty.http.soLingerTime" deprecated="http.soLingerTime" default="-1"/></Set>
+ <Set name="acceptorPriorityDelta"><Property name="jetty.http.acceptorPriorityDelta" deprecated="http.acceptorPriorityDelta" default="0"/></Set>
+ <Set name="acceptQueueSize"><Property name="jetty.http.acceptQueueSize" deprecated="http.acceptQueueSize" default="0"/></Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server" -->
+<!-- by adding a HTTP connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Add a HTTP Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with a single -->
+ <!-- HttpConnectionFactory instance using the common httpConfig -->
+ <!-- instance defined in jetty.xml -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="httpConfig" /></Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.http.host" /></Set>
+ <Set name="port"><Property name="jetty.http.port" default="9080" /></Set>
+ <Set name="idleTimeout"><Property name="jetty.http.idleTimeout" default="30000"/></Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Configure a HTTPS connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and jetty-ssl.xml. -->
+<!-- ============================================================= -->
+<Configure id="sslConnector" class="org.eclipse.jetty.server.ServerConnector">
+
+ <Call name="addIfAbsentConnectionFactory">
+ <Arg>
+ <New class="org.eclipse.jetty.server.SslConnectionFactory">
+ <Arg name="next">http/1.1</Arg>
+ <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
+ </New>
+ </Arg>
+ </Call>
+
+ <Call name="addConnectionFactory">
+ <Arg>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="sslHttpConfig" /></Arg>
+ <Arg name="compliance"><Call class="org.eclipse.jetty.http.HttpCompliance" name="valueOf"><Arg><Property name="jetty.http.compliance" default="RFC7230"/></Arg></Call></Arg>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- SSL ContextFactory configuration -->
+<!-- ============================================================= -->
+
+<!--
+ To configure Includes / Excludes for Cipher Suites or Protocols see tweak-ssl.xml example at
+ https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html#configuring-sslcontextfactory-cipherSuites
+-->
+
+<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
+ <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="localhost.jks"/></Set>
+ <Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="password"/></Set>
+ <Set name="KeyStoreType"><Property name="jetty.sslContext.keyStoreType" default="JKS"/></Set>
+ <Set name="KeyStoreProvider"><Property name="jetty.sslContext.keyStoreProvider"/></Set>
+ <Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="password"/></Set>
+ <Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="localhost.jks"/></Set>
+ <Set name="TrustStorePassword"><Property name="jetty.sslContext.trustStorePassword" deprecated="jetty.truststore.password" default="password"/></Set>
+ <Set name="TrustStoreType"><Property name="jetty.sslContext.trustStoreType"/></Set>
+ <Set name="TrustStoreProvider"><Property name="jetty.sslContext.trustStoreProvider"/></Set>
+ <Set name="EndpointIdentificationAlgorithm"></Set>
+ <Set name="NeedClientAuth"><Property name="jetty.sslContext.needClientAuth" deprecated="jetty.ssl.needClientAuth" default="false"/></Set>
+ <Set name="WantClientAuth"><Property name="jetty.sslContext.wantClientAuth" deprecated="jetty.ssl.wantClientAuth" default="false"/></Set>
+ <Set name="useCipherSuitesOrder"><Property name="jetty.sslContext.useCipherSuitesOrder" default="true"/></Set>
+ <Set name="sslSessionCacheSize"><Property name="jetty.sslContext.sslSessionCacheSize" default="-1"/></Set>
+ <Set name="sslSessionTimeout"><Property name="jetty.sslContext.sslSessionTimeout" default="-1"/></Set>
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- ============================================================= -->
+<!-- Base SSL configuration -->
+<!-- This configuration needs to be used together with 1 or more -->
+<!-- of jetty-https.xml or jetty-http2.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Add a SSL Connector with no protocol factories -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New id="sslConnector" class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="acceptors" type="int"><Property name="jetty.ssl.acceptors" deprecated="ssl.acceptors" default="-1"/></Arg>
+ <Arg name="selectors" type="int"><Property name="jetty.ssl.selectors" deprecated="ssl.selectors" default="-1"/></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <!-- uncomment to support proxy protocol
+ <Item>
+ <New class="org.eclipse.jetty.server.ProxyConnectionFactory"/>
+ </Item>-->
+ </Array>
+ </Arg>
+
+ <Set name="host"><Property name="jetty.ssl.host" deprecated="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="444" /></Set>
+ <Set name="idleTimeout"><Property name="jetty.ssl.idleTimeout" deprecated="ssl.timeout" default="30000"/></Set>
+ <Set name="soLingerTime"><Property name="jetty.ssl.soLingerTime" deprecated="ssl.soLingerTime" default="-1"/></Set>
+ <Set name="acceptorPriorityDelta"><Property name="jetty.ssl.acceptorPriorityDelta" deprecated="ssl.acceptorPriorityDelta" default="0"/></Set>
+ <Set name="acceptQueueSize"><Property name="jetty.ssl.acceptQueueSize" deprecated="ssl.acceptQueueSize" default="0"/></Set>
+ </New>
+ </Arg>
+ </Call>
+
+ <!-- =========================================================== -->
+ <!-- Create a TLS specific HttpConfiguration based on the -->
+ <!-- common HttpConfiguration defined in jetty.xml -->
+ <!-- Add a SecureRequestCustomizer to extract certificate and -->
+ <!-- session information -->
+ <!-- =========================================================== -->
+ <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Arg><Ref refid="httpConfig"/></Arg>
+ <Call name="addCustomizer">
+ <Arg>
+ <New class="org.eclipse.jetty.server.SecureRequestCustomizer">
+ <Arg name="sniHostCheck" type="boolean"><Property name="jetty.ssl.sniHostCheck" default="true"/></Arg>
+ <Arg name="stsMaxAgeSeconds" type="int"><Property name="jetty.ssl.stsMaxAgeSeconds" default="-1"/></Arg>
+ <Arg name="stsIncludeSubdomains" type="boolean"><Property name="jetty.ssl.stsIncludeSubdomains" default="false"/></Arg>
+ </New>
+ </Arg>
+ </Call>
+ </New>
+
+</Configure>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
+
+<!-- =============================================================== -->
+<!-- Documentation of this file format can be found at: -->
+<!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax -->
+<!-- -->
+<!-- Additional configuration files are available in $JETTY_HOME/etc -->
+<!-- and can be mixed in. See start.ini file for the default -->
+<!-- configuration files. -->
+<!-- -->
+<!-- For a description of the configuration mechanism, see the -->
+<!-- output of: -->
+<!-- java -jar start.jar -? -->
+<!-- =============================================================== -->
+
+<!-- =============================================================== -->
+<!-- Configure a Jetty Server instance with an ID "Server" -->
+<!-- Other configuration files may also configure the "Server" -->
+<!-- ID, in which case they are adding configuration to the same -->
+<!-- instance. If other configuration have a different ID, they -->
+<!-- will create and configure another instance of Jetty. -->
+<!-- Consult the javadoc of o.e.j.server.Server for all -->
+<!-- configuration that may be set here. -->
+<!-- =============================================================== -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Configure the Server Thread Pool. -->
+ <!-- The server holds a common thread pool which is used by -->
+ <!-- default as the executor used by all connectors and servlet -->
+ <!-- dispatches. -->
+ <!-- -->
+ <!-- Configuring a fixed thread pool is vital to controlling the -->
+ <!-- maximal memory footprint of the server and is a key tuning -->
+ <!-- parameter for tuning. In an application that rarely blocks -->
+ <!-- then maximal threads may be close to the number of 5*CPUs. -->
+ <!-- In an application that frequently blocks, then maximal -->
+ <!-- threads should be set as high as possible given the memory -->
+ <!-- available. -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.util.thread.QueuedThreadPool -->
+ <!-- for all configuration that may be set here. -->
+ <!-- =========================================================== -->
+ <!-- uncomment to change type of threadpool
+ <Arg name="threadpool"><New id="threadpool" class="org.eclipse.jetty.util.thread.QueuedThreadPool"/></Arg>
+ -->
+ <Get name="ThreadPool">
+ <Set name="minThreads" type="int"><Property name="jetty.threadPool.minThreads" deprecated="threads.min" default="10"/></Set>
+ <Set name="maxThreads" type="int"><Property name="jetty.threadPool.maxThreads" deprecated="threads.max" default="200"/></Set>
+ <Set name="idleTimeout" type="int"><Property name="jetty.threadPool.idleTimeout" deprecated="threads.timeout" default="60000"/></Set>
+ <Set name="detailedDump">false</Set>
+ </Get>
+
+ <!-- =========================================================== -->
+ <!-- Add shared Scheduler instance -->
+ <!-- =========================================================== -->
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.util.thread.ScheduledExecutorScheduler"/>
+ </Arg>
+ </Call>
+
+ <!-- =========================================================== -->
+ <!-- Http Configuration. -->
+ <!-- This is a common configuration instance used by all -->
+ <!-- connectors that can carry HTTP semantics (HTTP, HTTPS, etc.)-->
+ <!-- It configures the non wire protocol aspects of the HTTP -->
+ <!-- semantic. -->
+ <!-- -->
+ <!-- This configuration is only defined here and is used by -->
+ <!-- reference from other XML files such as jetty-http.xml, -->
+ <!-- jetty-https.xml and other configuration files which -->
+ <!-- instantiate the connectors. -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.HttpConfiguration -->
+ <!-- for all configuration that may be set here. -->
+ <!-- =========================================================== -->
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Set name="secureScheme"><Property name="jetty.httpConfig.secureScheme" default="https" /></Set>
+ <Set name="securePort"><Property name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" default="8444" /></Set>
+ <Set name="outputBufferSize"><Property name="jetty.httpConfig.outputBufferSize" deprecated="jetty.output.buffer.size" default="32768" /></Set>
+ <Set name="outputAggregationSize"><Property name="jetty.httpConfig.outputAggregationSize" deprecated="jetty.output.aggregation.size" default="8192" /></Set>
+ <Set name="requestHeaderSize"><Property name="jetty.httpConfig.requestHeaderSize" deprecated="jetty.request.header.size" default="8192" /></Set>
+ <Set name="responseHeaderSize"><Property name="jetty.httpConfig.responseHeaderSize" deprecated="jetty.response.header.size" default="8192" /></Set>
+ <Set name="sendServerVersion"><Property name="jetty.httpConfig.sendServerVersion" deprecated="jetty.send.server.version" default="true" /></Set>
+ <Set name="sendDateHeader"><Property name="jetty.httpConfig.sendDateHeader" deprecated="jetty.send.date.header" default="false" /></Set>
+ <Set name="headerCacheSize"><Property name="jetty.httpConfig.headerCacheSize" default="512" /></Set>
+ <Set name="delayDispatchUntilContent"><Property name="jetty.httpConfig.delayDispatchUntilContent" deprecated="jetty.delayDispatchUntilContent" default="true"/></Set>
+ <Set name="maxErrorDispatches"><Property name="jetty.httpConfig.maxErrorDispatches" default="10"/></Set>
+ <Set name="blockingTimeout"><Property name="jetty.httpConfig.blockingTimeout" default="-1"/></Set>
+ <Set name="persistentConnectionsEnabled"><Property name="jetty.httpConfig.persistentConnectionsEnabled" default="true"/></Set>
+ </New>
+
+ <!-- =========================================================== -->
+ <!-- Set the default handler structure for the Server -->
+ <!-- A handler collection is used to pass received requests to -->
+ <!-- both the ContextHandlerCollection, which selects the next -->
+ <!-- handler by context path and virtual host, and the -->
+ <!-- DefaultHandler, which handles any requests not handled by -->
+ <!-- the context handlers. -->
+ <!-- Other handlers may be added to the "Handlers" collection, -->
+ <!-- for example the jetty-requestlog.xml file adds the -->
+ <!-- RequestLogHandler after the default handler -->
+ <!-- =========================================================== -->
+ <Set name="handler">
+ <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
+ <Set name="handlers">
+ <Array type="org.eclipse.jetty.server.Handler">
+ <Item>
+ <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
+ </Item>
+ <Item>
+ <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Set>
+
+ <!-- =========================================================== -->
+ <!-- extra server options -->
+ <!-- =========================================================== -->
+ <Set name="stopAtShutdown"><Property name="jetty.server.stopAtShutdown" default="true"/></Set>
+ <Set name="stopTimeout">5000</Set>
+ <Set name="dumpAfterStart"><Property name="jetty.server.dumpAfterStart" deprecated="jetty.dump.start" default="false"/></Set>
+ <Set name="dumpBeforeStop"><Property name="jetty.server.dumpBeforeStop" deprecated="jetty.dump.stop" default="false"/></Set>
+
+</Configure>
\r
}\r
\r
+ private Path getSOAPTemplate(String viewName) throws FileNotFoundException {\r
+ String configDir = SystemConfiguration.getInstance().getConfig("settings/soap");\r
+ logger.info("Loading template {} from {}", viewName, configDir);\r
+ return Paths.get(configDir, viewName);\r
+ }\r
+\r
public void init(String primaryEndPoint, String primaryUserName, String primaryPassword, String secondaryEndPoint, String secondaryUserName,\r
String secondaryPassword, int rangeForwardHours) throws Exception {\r
this.primaryEndPoint = primaryEndPoint;\r
DataInputStream is = null;\r
try {\r
URL url = new URL(endPoint);\r
- httpclient.getCredentialsProvider().setCredentials(new AuthScope(url.getHost(), url.getPort(), null, "Digest"),\r
- new UsernamePasswordCredentials(user, pwd));\r
+ httpclient.getCredentialsProvider()\r
+ .setCredentials(new AuthScope(url.getHost(), url.getPort(), null, "Digest"), new UsernamePasswordCredentials(user, pwd));\r
\r
HttpPost httppost = new HttpPost(url.toURI());\r
httppost.setHeader("soapaction", action);\r
String xml = null;\r
String soap = null;\r
\r
- String configDir = SystemConfiguration.getInstance().getConfig("settings/soap");\r
- Path template = Paths.get(configDir, GETCUSTOMVIEW);\r
+ Path template = getSOAPTemplate(GETCUSTOMVIEW);\r
\r
if (!template.toFile().exists())\r
throw new FileNotFoundException(template.toString());\r
String xml = null;\r
String soap = null;\r
\r
- String configDir = SystemConfiguration.getInstance().getConfig("settings/soap");\r
- Path template = Paths.get(configDir, GETMEDIAUSAGEBYUTRANGE);\r
+ Path template = getSOAPTemplate(GETMEDIAUSAGEBYUTRANGE);\r
+\r
if (!template.toFile().exists())\r
throw new FileNotFoundException(template.toString());\r
\r