git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Thu, 11 Feb 2021 10:57:25 +0000 (10:57 +0000)
committervasary.daniel <TFS\vasary.daniel>
Thu, 11 Feb 2021 10:57:25 +0000 (10:57 +0000)
138 files changed:
server/-product/production/AMC/configuration/config.ini [new file with mode: 0644]
server/-product/production/AMC/configuration/etc/gosh_profile [new file with mode: 0644]
server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/EscortFiles.class [new file with mode: 0644]
server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery$MMMedia.class [new file with mode: 0644]
server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery.class [new file with mode: 0644]
server/-product/production/AMC/jobs/executors.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/schedules.json [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/CancelableStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/DirMXFValidatorStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/FILEZILLA_AVIDTransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/FILEZILLA_PASARESTORETransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/FileCleanupStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/FileValidatorStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/ForkDownloadStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/ForkUploadStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/GenericArchiveCheckerStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/HarrisMissingMaterialCheckerStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/MetadataPersisterStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIO1TransferFromStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIO1TransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIO2TransferFromStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIO2TransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIOArchiveCheckerStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/NEXIOMetadataPersisterStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/PASAPOOLTransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/PBQuery.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/PeableBeachMissingMaterialCheckerStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/RegisterUserRestoreStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/RegisterVODRestoreStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/ServerStatusReportStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/SyncSubtitlesStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/TSMTransferFromStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/TSMTransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/TestForkCancelableStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/TransferStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/TransferToFTPStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/steps/VODTransferToStep.java [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/FILEZILLA_AVID-validate-and-restore.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-archive.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-restore.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/NEXIO1-validate-and-archive.xml [moved from server/-product/production/HIRTV/jobs/templates/validate-and-archive.xml with 89% similarity]
server/-product/production/AMC/jobs/templates/NEXIO1-validate-and-restore.xml [moved from server/-product/production/HIRTV/jobs/templates/validate-and-restore.xml with 91% similarity]
server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-archive.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-restore.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/PASAPOOL-validate-and-restore.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/VOD-validate-and-restore.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/cancelable.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/create-lowres-ondemand.xml [moved from server/-product/production/HIRTV/jobs/templates/sys-recreate-lowres.xml with 64% similarity]
server/-product/production/AMC/jobs/templates/fork-validate-and-archive.xml [moved from server/-product/production/HIRTV/jobs/templates/fork-validate-and-archive.xml with 100% similarity]
server/-product/production/AMC/jobs/templates/fork-validate-and-restore.xml [moved from server/-product/production/HIRTV/jobs/templates/fork-validate-and-restore.xml with 100% similarity]
server/-product/production/AMC/jobs/templates/generic-archive-checker.xml [moved from server/-product/production/HIRTV/jobs/templates/generic-archive-checker.xml with 91% similarity]
server/-product/production/AMC/jobs/templates/harris1-missingmaterial-checker.xml [moved from server/-product/production/HIRTV/jobs/templates/harris-missingmaterial-checker.xml with 90% similarity]
server/-product/production/AMC/jobs/templates/harris2-missingmaterial-checker.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/nexio1-archive-checker.xml [moved from server/-product/production/HIRTV/jobs/templates/nexio-archive-checker.xml with 92% similarity]
server/-product/production/AMC/jobs/templates/nexio2-archive-checker.xml [new file with mode: 0644]
server/-product/production/AMC/jobs/templates/peablebeach-missingmaterial-checker.xml [moved from server/-product/production/HIRTV/jobs/templates/peablebeach-missingmaterial-checker.xml with 100% similarity]
server/-product/production/AMC/jobs/templates/register-user-restore.xml [moved from server/-product/production/HIRTV/jobs/templates/register-user-restore.xml with 89% similarity]
server/-product/production/AMC/jobs/templates/register-vod-restore.xml [moved from server/-product/production/HIRTV/jobs/templates/register-vod-restore.xml with 100% similarity]
server/-product/production/AMC/jobs/templates/test-fork-cancelable.xml [moved from server/-product/production/HIRTV/jobs/templates/test-fork-cancelable.xml with 69% similarity]
server/-product/production/AMC/jobs/templates/validate-dir-mxf.xml [moved from server/-product/production/HIRTV/jobs/templates/validate-dir-mxf.xml with 72% similarity]
server/-product/production/AMC/mediacube.bat [new file with mode: 0644]
server/-product/production/AMC/settings/application.yaml [new file with mode: 0644]
server/-product/production/AMC/settings/jetty/jetty-http.xml [moved from server/-product/production/HIRTV/configuration/jetty/jetty-http.xml with 100% similarity]
server/-product/production/AMC/settings/jetty/jetty-https.xml [moved from server/-product/production/HIRTV/configuration/jetty/jetty-https.xml with 100% similarity]
server/-product/production/AMC/settings/jetty/jetty-ssl-context.xml [moved from server/-product/production/HIRTV/configuration/jetty/jetty-ssl-context.xml with 100% similarity]
server/-product/production/AMC/settings/jetty/jetty-ssl.xml [moved from server/-product/production/HIRTV/configuration/jetty/jetty-ssl.xml with 100% similarity]
server/-product/production/AMC/settings/jetty/jetty.xml [moved from server/-product/production/HIRTV/configuration/jetty/jetty.xml with 100% similarity]
server/-product/production/AMC/settings/jetty/keystore [moved from server/-product/production/HIRTV/configuration/jetty/keystore with 100% similarity]
server/-product/production/AMC/settings/jetty/localhost.jks [moved from server/-product/production/HIRTV/configuration/jetty/localhost.jks with 100% similarity]
server/-product/production/AMC/settings/log4j2.xml [new file with mode: 0644]
server/-product/production/AMC/settings/mediacube.json [moved from server/-product/production/MEDIAVIVANTIS/configuration/mediacube.json with 74% similarity]
server/-product/production/AMC/settings/test-jetty/jetty-deployer.xml [new file with mode: 0644]
server/-product/production/AMC/settings/test-jetty/jetty-http-redirect.xml [new file with mode: 0644]
server/-product/production/AMC/settings/test-jetty/jetty-http.xml [new file with mode: 0644]
server/-product/production/AMC/settings/test-jetty/jetty-https.xml [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty-https.xml with 100% similarity]
server/-product/production/AMC/settings/test-jetty/jetty-ssl-context.xml [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty-ssl-context.xml with 100% similarity]
server/-product/production/AMC/settings/test-jetty/jetty-ssl.xml [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty-ssl.xml with 98% similarity]
server/-product/production/AMC/settings/test-jetty/jetty.xml [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty.xml with 99% similarity]
server/-product/production/AMC/settings/test-jetty/keystore [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/keystore with 100% similarity]
server/-product/production/AMC/settings/test-jetty/localhost.jks [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/localhost.jks with 100% similarity]
server/-product/production/HIRTV/configuration/config.ini
server/-product/production/HIRTV/jobs/templates/archive-limited.xml
server/-product/production/HIRTV/jobs/templates/archive-material.xml
server/-product/production/HIRTV/jobs/templates/archive-ondemand.xml
server/-product/production/HIRTV/jobs/templates/archive-recursive.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/batch-retrieve-ondemand.xml
server/-product/production/HIRTV/jobs/templates/cancelable.xml
server/-product/production/HIRTV/jobs/templates/common-copy.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/copyforarchive-nexio-materials.xml
server/-product/production/HIRTV/jobs/templates/copyforarchive-nexio-recordings.xml
server/-product/production/HIRTV/jobs/templates/create-lowres-ondemand.xml
server/-product/production/HIRTV/jobs/templates/delete-materials.xml
server/-product/production/HIRTV/jobs/templates/delete-nexio-materials.xml
server/-product/production/HIRTV/jobs/templates/delete-promo-materials.xml
server/-product/production/HIRTV/jobs/templates/duplicate-remover.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/fake-concurrent.xml
server/-product/production/HIRTV/jobs/templates/fake-noparams.xml
server/-product/production/HIRTV/jobs/templates/fake-spawn.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/fake.xml
server/-product/production/HIRTV/jobs/templates/import-statistics.xml
server/-product/production/HIRTV/jobs/templates/migrate-hsm.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/retrieve-material.xml
server/-product/production/HIRTV/jobs/templates/retrieve-morpheus-missing-materials.xml
server/-product/production/HIRTV/jobs/templates/retrieve-ondemand.xml
server/-product/production/HIRTV/jobs/templates/retrieve-traffic-missing-materials.xml
server/-product/production/HIRTV/jobs/templates/retrieve.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/submit-child.xml
server/-product/production/HIRTV/jobs/templates/sync-octopus.xml
server/-product/production/HIRTV/jobs/templates/sync-subtitles.xml [deleted file]
server/-product/production/HIRTV/jobs/templates/sys-check-lowres-integrity.xml
server/-product/production/HIRTV/jobs/templates/sys-import-morpheus-missing-materials.xml
server/-product/production/HIRTV/jobs/templates/sys-recreate-length.xml
server/-product/production/HIRTV/jobs/templates/sys-retrieve-missing-material.xml
server/-product/production/HIRTV/jobs/templates/test-multiparam.xml
server/-product/production/HIRTV/jobs/templates/worker-keepalive.xml [deleted file]
server/-product/production/HIRTV/mediacube.bat
server/-product/production/MEDIAVIVANTIS/configuration/application.yaml [deleted file]
server/-product/production/MEDIAVIVANTIS/configuration/config.ini
server/-product/production/MEDIAVIVANTIS/configuration/etc/gosh_profile [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/configuration/log4j2.xml [deleted file]
server/-product/production/MEDIAVIVANTIS/configuration/maestro.json [deleted file]
server/-product/production/MEDIAVIVANTIS/jobs/executors.xml
server/-product/production/MEDIAVIVANTIS/jobs/schedules.json
server/-product/production/MEDIAVIVANTIS/mediacube.bat
server/-product/production/MEDIAVIVANTIS/settings/application.yaml
server/-product/production/MEDIAVIVANTIS/settings/jetty/http.xml [moved from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty-http.xml with 100% similarity]
server/-product/production/MEDIAVIVANTIS/settings/log4j2.xml
server/-product/production/MEDIAVIVANTIS/settings/mediacube.json
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-deployer.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http-redirect.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-https.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl-context.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty.xml [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/keystore [new file with mode: 0644]
server/-product/production/MEDIAVIVANTIS/settings/test-jetty/localhost.jks [new file with mode: 0644]
server/user.jobengine.executors/amc/user/jobengine/server/steps/PBQuery.java

diff --git a/server/-product/production/AMC/configuration/config.ini b/server/-product/production/AMC/configuration/config.ini
new file mode 100644 (file)
index 0000000..fd4c203
--- /dev/null
@@ -0,0 +1,9 @@
+#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
diff --git a/server/-product/production/AMC/configuration/etc/gosh_profile b/server/-product/production/AMC/configuration/etc/gosh_profile
new file mode 100644 (file)
index 0000000..1c659f4
--- /dev/null
@@ -0,0 +1 @@
+prompt=mc>
\ No newline at end of file
diff --git a/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/EscortFiles.class b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/EscortFiles.class
new file mode 100644 (file)
index 0000000..82b5855
Binary files /dev/null and b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/EscortFiles.class differ
diff --git a/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery$MMMedia.class b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery$MMMedia.class
new file mode 100644 (file)
index 0000000..eb6cb52
Binary files /dev/null and b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery$MMMedia.class differ
diff --git a/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery.class b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery.class
new file mode 100644 (file)
index 0000000..e5a6779
Binary files /dev/null and b/server/-product/production/AMC/jobs/classes/user/jobengine/server/steps/PBQuery.class differ
diff --git a/server/-product/production/AMC/jobs/executors.xml b/server/-product/production/AMC/jobs/executors.xml
new file mode 100644 (file)
index 0000000..0f868e5
--- /dev/null
@@ -0,0 +1,30 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/schedules.json b/server/-product/production/AMC/jobs/schedules.json
new file mode 100644 (file)
index 0000000..a6bb1e5
--- /dev/null
@@ -0,0 +1,123 @@
+{"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
diff --git a/server/-product/production/AMC/jobs/steps/CancelableStep.java b/server/-product/production/AMC/jobs/steps/CancelableStep.java
new file mode 100644 (file)
index 0000000..4081259
--- /dev/null
@@ -0,0 +1,58 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/DirMXFValidatorStep.java b/server/-product/production/AMC/jobs/steps/DirMXFValidatorStep.java
new file mode 100644 (file)
index 0000000..f26d679
--- /dev/null
@@ -0,0 +1,61 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/FILEZILLA_AVIDTransferToStep.java b/server/-product/production/AMC/jobs/steps/FILEZILLA_AVIDTransferToStep.java
new file mode 100644 (file)
index 0000000..9774709
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/FILEZILLA_PASARESTORETransferToStep.java b/server/-product/production/AMC/jobs/steps/FILEZILLA_PASARESTORETransferToStep.java
new file mode 100644 (file)
index 0000000..d69a6ed
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/FileCleanupStep.java b/server/-product/production/AMC/jobs/steps/FileCleanupStep.java
new file mode 100644 (file)
index 0000000..505526c
--- /dev/null
@@ -0,0 +1,34 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/FileValidatorStep.java b/server/-product/production/AMC/jobs/steps/FileValidatorStep.java
new file mode 100644 (file)
index 0000000..e8662e4
--- /dev/null
@@ -0,0 +1,155 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/ForkDownloadStep.java b/server/-product/production/AMC/jobs/steps/ForkDownloadStep.java
new file mode 100644 (file)
index 0000000..8b72db9
--- /dev/null
@@ -0,0 +1,199 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/ForkUploadStep.java b/server/-product/production/AMC/jobs/steps/ForkUploadStep.java
new file mode 100644 (file)
index 0000000..67010d4
--- /dev/null
@@ -0,0 +1,214 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/GenericArchiveCheckerStep.java b/server/-product/production/AMC/jobs/steps/GenericArchiveCheckerStep.java
new file mode 100644 (file)
index 0000000..1e6078e
--- /dev/null
@@ -0,0 +1,93 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/HarrisMissingMaterialCheckerStep.java b/server/-product/production/AMC/jobs/steps/HarrisMissingMaterialCheckerStep.java
new file mode 100644 (file)
index 0000000..9f68350
--- /dev/null
@@ -0,0 +1,171 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/MetadataPersisterStep.java b/server/-product/production/AMC/jobs/steps/MetadataPersisterStep.java
new file mode 100644 (file)
index 0000000..43fd68c
--- /dev/null
@@ -0,0 +1,110 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIO1TransferFromStep.java b/server/-product/production/AMC/jobs/steps/NEXIO1TransferFromStep.java
new file mode 100644 (file)
index 0000000..7963459
--- /dev/null
@@ -0,0 +1,30 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIO1TransferToStep.java b/server/-product/production/AMC/jobs/steps/NEXIO1TransferToStep.java
new file mode 100644 (file)
index 0000000..5af53df
--- /dev/null
@@ -0,0 +1,54 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIO2TransferFromStep.java b/server/-product/production/AMC/jobs/steps/NEXIO2TransferFromStep.java
new file mode 100644 (file)
index 0000000..a698c6e
--- /dev/null
@@ -0,0 +1,30 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIO2TransferToStep.java b/server/-product/production/AMC/jobs/steps/NEXIO2TransferToStep.java
new file mode 100644 (file)
index 0000000..20c81a6
--- /dev/null
@@ -0,0 +1,53 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIOArchiveCheckerStep.java b/server/-product/production/AMC/jobs/steps/NEXIOArchiveCheckerStep.java
new file mode 100644 (file)
index 0000000..8beafb2
--- /dev/null
@@ -0,0 +1,187 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/NEXIOMetadataPersisterStep.java b/server/-product/production/AMC/jobs/steps/NEXIOMetadataPersisterStep.java
new file mode 100644 (file)
index 0000000..ec9565f
--- /dev/null
@@ -0,0 +1,109 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/PASAPOOLTransferToStep.java b/server/-product/production/AMC/jobs/steps/PASAPOOLTransferToStep.java
new file mode 100644 (file)
index 0000000..dfe2825
--- /dev/null
@@ -0,0 +1,154 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/PBQuery.java b/server/-product/production/AMC/jobs/steps/PBQuery.java
new file mode 100644 (file)
index 0000000..458b137
--- /dev/null
@@ -0,0 +1,326 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/PeableBeachMissingMaterialCheckerStep.java b/server/-product/production/AMC/jobs/steps/PeableBeachMissingMaterialCheckerStep.java
new file mode 100644 (file)
index 0000000..74a80b5
--- /dev/null
@@ -0,0 +1,225 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/RegisterUserRestoreStep.java b/server/-product/production/AMC/jobs/steps/RegisterUserRestoreStep.java
new file mode 100644 (file)
index 0000000..ba23e3f
--- /dev/null
@@ -0,0 +1,71 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/RegisterVODRestoreStep.java b/server/-product/production/AMC/jobs/steps/RegisterVODRestoreStep.java
new file mode 100644 (file)
index 0000000..a7cb11f
--- /dev/null
@@ -0,0 +1,79 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/ServerStatusReportStep.java b/server/-product/production/AMC/jobs/steps/ServerStatusReportStep.java
new file mode 100644 (file)
index 0000000..3ffc5e3
--- /dev/null
@@ -0,0 +1,37 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/SyncSubtitlesStep.java b/server/-product/production/AMC/jobs/steps/SyncSubtitlesStep.java
new file mode 100644 (file)
index 0000000..39c338c
--- /dev/null
@@ -0,0 +1,94 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/TSMTransferFromStep.java b/server/-product/production/AMC/jobs/steps/TSMTransferFromStep.java
new file mode 100644 (file)
index 0000000..ab1b6bb
--- /dev/null
@@ -0,0 +1,27 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/TSMTransferToStep.java b/server/-product/production/AMC/jobs/steps/TSMTransferToStep.java
new file mode 100644 (file)
index 0000000..efff055
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/TestForkCancelableStep.java b/server/-product/production/AMC/jobs/steps/TestForkCancelableStep.java
new file mode 100644 (file)
index 0000000..fc43456
--- /dev/null
@@ -0,0 +1,37 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/TransferStep.java b/server/-product/production/AMC/jobs/steps/TransferStep.java
new file mode 100644 (file)
index 0000000..bdf0261
--- /dev/null
@@ -0,0 +1,124 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/TransferToFTPStep.java b/server/-product/production/AMC/jobs/steps/TransferToFTPStep.java
new file mode 100644 (file)
index 0000000..b42d5d5
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/server/-product/production/AMC/jobs/steps/VODTransferToStep.java b/server/-product/production/AMC/jobs/steps/VODTransferToStep.java
new file mode 100644 (file)
index 0000000..7bf240f
--- /dev/null
@@ -0,0 +1,21 @@
+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
diff --git a/server/-product/production/AMC/jobs/templates/FILEZILLA_AVID-validate-and-restore.xml b/server/-product/production/AMC/jobs/templates/FILEZILLA_AVID-validate-and-restore.xml
new file mode 100644 (file)
index 0000000..5395ce4
--- /dev/null
@@ -0,0 +1,95 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-archive.xml b/server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-archive.xml
new file mode 100644 (file)
index 0000000..7caa7e2
--- /dev/null
@@ -0,0 +1,94 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-restore.xml b/server/-product/production/AMC/jobs/templates/FILEZILLA_PASARESTORE-validate-and-restore.xml
new file mode 100644 (file)
index 0000000..da82bd6
--- /dev/null
@@ -0,0 +1,95 @@
+<?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
similarity index 89%
rename from server/-product/production/HIRTV/jobs/templates/validate-and-archive.xml
rename to server/-product/production/AMC/jobs/templates/NEXIO1-validate-and-archive.xml
index 9882f40e16ab1d61ee37df8bba346275c926a432..7426382a33b1658fe2e5990d9872ecc5e1cba3e3 100644 (file)
@@ -1,5 +1,5 @@
 <?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
@@ -13,7 +13,7 @@
                </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
@@ -51,7 +51,7 @@
                                </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
similarity index 91%
rename from server/-product/production/HIRTV/jobs/templates/validate-and-restore.xml
rename to server/-product/production/AMC/jobs/templates/NEXIO1-validate-and-restore.xml
index 43fa0c1e70c4287f2d241c99ac04b97d57e646af..5b11ead50a93a7765fbdfd504d38e1629f02e76e 100644 (file)
@@ -14,7 +14,7 @@
                </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
@@ -52,7 +52,7 @@
                                </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
diff --git a/server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-archive.xml b/server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-archive.xml
new file mode 100644 (file)
index 0000000..005122a
--- /dev/null
@@ -0,0 +1,94 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-restore.xml b/server/-product/production/AMC/jobs/templates/NEXIO2-validate-and-restore.xml
new file mode 100644 (file)
index 0000000..15b0e18
--- /dev/null
@@ -0,0 +1,95 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/PASAPOOL-validate-and-restore.xml b/server/-product/production/AMC/jobs/templates/PASAPOOL-validate-and-restore.xml
new file mode 100644 (file)
index 0000000..df9ebe1
--- /dev/null
@@ -0,0 +1,95 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/VOD-validate-and-restore.xml b/server/-product/production/AMC/jobs/templates/VOD-validate-and-restore.xml
new file mode 100644 (file)
index 0000000..5cdcadb
--- /dev/null
@@ -0,0 +1,89 @@
+<?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
diff --git a/server/-product/production/AMC/jobs/templates/cancelable.xml b/server/-product/production/AMC/jobs/templates/cancelable.xml
new file mode 100644 (file)
index 0000000..fa29cc3
--- /dev/null
@@ -0,0 +1,17 @@
+<?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
similarity index 64%
rename from server/-product/production/HIRTV/jobs/templates/sys-recreate-lowres.xml
rename to server/-product/production/AMC/jobs/templates/create-lowres-ondemand.xml
index 3c1381db8194e4c23324c090b47069f9b4b792c5..375beb2fb0e74edd34c6112835bb33e99a10f0a4 100644 (file)
@@ -1,7 +1,11 @@
 <?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
@@ -78,7 +66,7 @@
                                        <variable name="archiveItem" />\r
                                </input>\r
                                <input>\r
-                                       <variable name="mediaCubeMedia" />\r
+                                       <parameter name="mediaCubeMedia" />\r
                                </input>\r
                        </inputs>\r
                </calljobstep>\r
@@ -88,7 +76,7 @@
                                        <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
similarity index 91%
rename from server/-product/production/HIRTV/jobs/templates/generic-archive-checker.xml
rename to server/-product/production/AMC/jobs/templates/generic-archive-checker.xml
index c321bee579a19c268e6b87923a82ebf45bf3cbf7..500369e87e429106a2abcd8b2eb906eb61272e5c 100644 (file)
@@ -1,6 +1,6 @@
 <?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
similarity index 90%
rename from server/-product/production/HIRTV/jobs/templates/harris-missingmaterial-checker.xml
rename to server/-product/production/AMC/jobs/templates/harris1-missingmaterial-checker.xml
index 570b57e9a0d39773beb76106489262ab993bfe6e..5777fa2e7959f180fc47958711e9bae30123c8c1 100644 (file)
@@ -1,6 +1,6 @@
 <?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
diff --git a/server/-product/production/AMC/jobs/templates/harris2-missingmaterial-checker.xml b/server/-product/production/AMC/jobs/templates/harris2-missingmaterial-checker.xml
new file mode 100644 (file)
index 0000000..5777fa2
--- /dev/null
@@ -0,0 +1,30 @@
+<?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
similarity index 92%
rename from server/-product/production/HIRTV/jobs/templates/nexio-archive-checker.xml
rename to server/-product/production/AMC/jobs/templates/nexio1-archive-checker.xml
index a785ebdcec2d57042c73471aa501adde756f5732..991c0626f9053706eae2bb3ed5d1024491853cef 100644 (file)
@@ -1,6 +1,6 @@
 <?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
diff --git a/server/-product/production/AMC/jobs/templates/nexio2-archive-checker.xml b/server/-product/production/AMC/jobs/templates/nexio2-archive-checker.xml
new file mode 100644 (file)
index 0000000..991c062
--- /dev/null
@@ -0,0 +1,26 @@
+<?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
similarity index 89%
rename from server/-product/production/HIRTV/jobs/templates/register-user-restore.xml
rename to server/-product/production/AMC/jobs/templates/register-user-restore.xml
index eae8c9b56e89adc6471cc4e1564562ed48e50133..43a94d22d172c35dd6e112315568913345387333 100644 (file)
@@ -1,5 +1,5 @@
 <?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
similarity index 69%
rename from server/-product/production/HIRTV/jobs/templates/test-fork-cancelable.xml
rename to server/-product/production/AMC/jobs/templates/test-fork-cancelable.xml
index f3d21d6efaf74858850af0d19f75827afc5293d3..8c88d84ba1ae4f238077c11057a005ca41cfca44 100644 (file)
@@ -1,5 +1,5 @@
 <?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
similarity index 72%
rename from server/-product/production/HIRTV/jobs/templates/validate-dir-mxf.xml
rename to server/-product/production/AMC/jobs/templates/validate-dir-mxf.xml
index 276152ec3b7929b7029aaeb2d9099da0cbbb68d5..2a2972be39d736228ead7c08b6bc9ba949763fee 100644 (file)
@@ -1,12 +1,12 @@
 <?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
diff --git a/server/-product/production/AMC/mediacube.bat b/server/-product/production/AMC/mediacube.bat
new file mode 100644 (file)
index 0000000..64cbf78
--- /dev/null
@@ -0,0 +1,18 @@
+@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
diff --git a/server/-product/production/AMC/settings/application.yaml b/server/-product/production/AMC/settings/application.yaml
new file mode 100644 (file)
index 0000000..12ff38b
--- /dev/null
@@ -0,0 +1,34 @@
+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
diff --git a/server/-product/production/AMC/settings/log4j2.xml b/server/-product/production/AMC/settings/log4j2.xml
new file mode 100644 (file)
index 0000000..3681b48
--- /dev/null
@@ -0,0 +1,174 @@
+<?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
similarity index 74%
rename from server/-product/production/MEDIAVIVANTIS/configuration/mediacube.json
rename to server/-product/production/AMC/settings/mediacube.json
index c01d31f89b9c8a508ebfaf9d5993c42743594825..d711393978637a9f29f80e28dc0915219926657a 100644 (file)
@@ -1,5 +1,8 @@
 {\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
diff --git a/server/-product/production/AMC/settings/test-jetty/jetty-deployer.xml b/server/-product/production/AMC/settings/test-jetty/jetty-deployer.xml
new file mode 100644 (file)
index 0000000..ba61d10
--- /dev/null
@@ -0,0 +1,76 @@
+<?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>
diff --git a/server/-product/production/AMC/settings/test-jetty/jetty-http-redirect.xml b/server/-product/production/AMC/settings/test-jetty/jetty-http-redirect.xml
new file mode 100644 (file)
index 0000000..556f544
--- /dev/null
@@ -0,0 +1,61 @@
+<?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>
diff --git a/server/-product/production/AMC/settings/test-jetty/jetty-http.xml b/server/-product/production/AMC/settings/test-jetty/jetty-http.xml
new file mode 100644 (file)
index 0000000..f4f61bf
--- /dev/null
@@ -0,0 +1,41 @@
+<?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>
similarity index 98%
rename from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty-ssl.xml
rename to server/-product/production/AMC/settings/test-jetty/jetty-ssl.xml
index a079c1f6ab2d9a0954ad0a38a2816a5ccd2e68b9..db6e2eb440888b59601ec334b03ee022e90153cb 100644 (file)
@@ -27,7 +27,7 @@
         </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>
similarity index 99%
rename from server/-product/production/MEDIAVIVANTIS/configuration/jetty/jetty.xml
rename to server/-product/production/AMC/settings/test-jetty/jetty.xml
index 0ba38381b6fb3aaba6c9ada24fd4d99274ad5ea7..c9afdb5f2b12137ab844728eaa175d27235d65bd 100644 (file)
@@ -78,7 +78,7 @@
     <!-- =========================================================== -->
     <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>
index 5895770734c4d96d902417e6d3317f12b111c0fd..fd4c203b4975d17c08dc7634731ffa803e6acabf 100644 (file)
@@ -1,93 +1,9 @@
-#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
index 6bd8f11d800ff1d196ad4919ac08cb6407d1d534..933be972d5b9e4d333860d19b44c290c5c8c9c5b 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index e63d3a121dc9655e705a0a5392e95cf2146d9446..bb17dc38934780a5c6c84ba9d2e44752dd3094f9 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 6bd8f11d800ff1d196ad4919ac08cb6407d1d534..933be972d5b9e4d333860d19b44c290c5c8c9c5b 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/archive-recursive.xml b/server/-product/production/HIRTV/jobs/templates/archive-recursive.xml
deleted file mode 100644 (file)
index 02b9788..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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
index b5ae11e4a0deb80a881b556fce6c365981b64272..5a6dc54aa2fa9cc3ed6296aaadfc5f3e63fbe068 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index c0accf910f35efe96136e81a2accbf5e633c3b0a..a400a93b16e80686fb10e9d56e63307eb6121a7a 100644 (file)
@@ -1,27 +1,6 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/common-copy.xml b/server/-product/production/HIRTV/jobs/templates/common-copy.xml
deleted file mode 100644 (file)
index aa9cd0a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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
index 2abc5ae56dc00fe4d65825c743d7fe3998520f4d..94ffab8e7ce1aead09ad1dd45613698ad845b345 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 60ca8b1d09904851b18a9f43cc7dd3d29dc93625..0039b2385c5d0a66aef3610ec09ab6e2d912dfa8 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 5dbdeb86f5ebe0c0fabffdbf4eef390ac899f395..44a4e03fca237c77e621426e444c71a8476fa767 100644 (file)
@@ -1,5 +1,5 @@
 <?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
@@ -95,7 +95,7 @@
                                </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
index 9e8c02ffcd999b2bd50b129c85401301c2424abb..82b304924a057b5e2486c4fa98bdf8cec510324e 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 925290af1a3d39f7ed0a05033680a6c71e614d54..63ed30628ef9ccd51cd34a555e64989fc794b859 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 3dc9a7daa78850c5b19a607884e6ee0d8420fbb9..f5df704ceb4273bbd4ec13c8e27222f016e1c7fe 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/duplicate-remover.xml b/server/-product/production/HIRTV/jobs/templates/duplicate-remover.xml
deleted file mode 100644 (file)
index 4650acb..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?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
index db2185030c90f8fe898fcf97576e261ba4bb4d44..8223e40981dca9d2284059852990ccb8fc43e0cc 100644 (file)
@@ -1,5 +1,5 @@
 <?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
@@ -13,7 +13,7 @@
                        </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
index a118f43f35bda8dcbe74fef8390f0f3b50798d64..8be63cecf754b8ae2b6c16cdab3fc0e812afdf65 100644 (file)
@@ -1,6 +1,6 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/fake-spawn.xml b/server/-product/production/HIRTV/jobs/templates/fake-spawn.xml
deleted file mode 100644 (file)
index bec5abe..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?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
index 3b2404bf5026033ef825c22e889793f549cc9653..893becf7b66b520cea4e514e539facab896314e1 100644 (file)
@@ -1,16 +1,15 @@
 <?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
@@ -20,9 +19,6 @@
                        <output>\r
                                <variable name="resultID" />\r
                        </output>\r
-                       <output>\r
-                               <variable name="resultID1" />\r
-                       </output>\r
                </outputs>\r
        </calljobstep>\r
 </commands>\r
index 44d771cb8b741af52703a2f4bbc45c065dbb6dd9..464d9dc790b1263fec53ecfee86ebee31b7870b8 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/migrate-hsm.xml b/server/-product/production/HIRTV/jobs/templates/migrate-hsm.xml
deleted file mode 100644 (file)
index 93f62ba..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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
index 1890feed769ca148be4c29daab028019e6095610..c886c7f34ab4cd8cbe609b528b3227d8b492147a 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 94a21ba1fb6ecf2a10289f40d92ae4efdfef1f14..b6a2ac2b08d837979d2641c55cdad21ebc1c6440 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 704fb8e5e4f875208ac0e3dae787ef310356fea4..79f27899253caa5172f1697b10a60073e2a26283 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index ab02fc57301412e6993b0914cc83c31321246ed9..b684ccaeb2113da68786960c8873df6df5203884 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/retrieve.xml b/server/-product/production/HIRTV/jobs/templates/retrieve.xml
deleted file mode 100644 (file)
index d8ffd62..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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
index 935df111e57d7fd0478be41060cb44dbc6f4d117..e367b3e4e7c02543ead66cd0468a7844e6743b76 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 846caec5b137308aaa7c0d3d6efe1d3303f1a136..86644526aebe97d039a269273199be08db4ed76c 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/sync-subtitles.xml b/server/-product/production/HIRTV/jobs/templates/sync-subtitles.xml
deleted file mode 100644 (file)
index 7fa2a02..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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
index 4c5e18111ce47363da33eebf1b730eb723972bd4..3dbed31d45347c03d9ce30cf5a89adb60c002d2d 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index c339f0675bfb2c6e538cd35f37d569bbd8b629f9..27481dc4c0f904f3b81c890da0ee715d413f2e95 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index e9ec0f9b1c53e9be29106dc6e68cc22003264fcb..85af21e1e9b2a6b2570a879f1c3cef1ab906b71e 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index 35b4436e7356ef9df8a1080e00b62296a06de973..45ac435a9db263b4251d7d6e1cda6a8010ba2e89 100644 (file)
@@ -1,5 +1,5 @@
 <?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
index bf45329b65cc1abe601f3635aa1b833d3bf33d93..9acfd31583a6b651ca91b8ce2b2f9d01f9834b58 100644 (file)
@@ -1,5 +1,5 @@
 <?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
diff --git a/server/-product/production/HIRTV/jobs/templates/worker-keepalive.xml b/server/-product/production/HIRTV/jobs/templates/worker-keepalive.xml
deleted file mode 100644 (file)
index c055aaa..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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
index 5e00b128d367f06ce827b0fc189b89b6f4d716c3..64cbf7812c198443750b48cf8697cc47b644bcac 100644 (file)
@@ -1,6 +1,3 @@
-:-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
@@ -9,32 +6,13 @@ java ^
 -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
diff --git a/server/-product/production/MEDIAVIVANTIS/configuration/application.yaml b/server/-product/production/MEDIAVIVANTIS/configuration/application.yaml
deleted file mode 100644 (file)
index c584e2a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-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
index 5895770734c4d96d902417e6d3317f12b111c0fd..fd4c203b4975d17c08dc7634731ffa803e6acabf 100644 (file)
@@ -1,93 +1,9 @@
-#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
diff --git a/server/-product/production/MEDIAVIVANTIS/configuration/etc/gosh_profile b/server/-product/production/MEDIAVIVANTIS/configuration/etc/gosh_profile
new file mode 100644 (file)
index 0000000..1c659f4
--- /dev/null
@@ -0,0 +1 @@
+prompt=mc>
\ No newline at end of file
diff --git a/server/-product/production/MEDIAVIVANTIS/configuration/log4j2.xml b/server/-product/production/MEDIAVIVANTIS/configuration/log4j2.xml
deleted file mode 100644 (file)
index e586e5b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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
diff --git a/server/-product/production/MEDIAVIVANTIS/configuration/maestro.json b/server/-product/production/MEDIAVIVANTIS/configuration/maestro.json
deleted file mode 100644 (file)
index aa7778a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-       "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"
-                       }
-               }
-       ]
-}
-
-
-
index 832e9fb013140de9ac1edb05c2fdc5fd34cc7281..8cd7c04ccf6f996232f856601db93978136cbc0c 100644 (file)
@@ -1,24 +1,41 @@
 <?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
index 24f9e69ba1b02739031c1140a10e5927d454111a..b500c0c85ad33ca83238d7bde21e9b85ecd23d2f 100644 (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
index a56d09504164527ff6eb768d0b59cccbebbd6052..64cbf7812c198443750b48cf8697cc47b644bcac 100644 (file)
@@ -6,11 +6,13 @@ java ^
 -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
index c584e2a48b477c6bbf3c48fd9d13725fd0bdf4c7..fea1fa287ea1ad0c01d24448605db579412935d3 100644 (file)
@@ -28,8 +28,6 @@ datasource:
 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
@@ -46,13 +44,9 @@ services:
       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
index 62e8b78f58ddcdda5772f6d0624f31e19472c84c..f388a6a6bc3a3fdc9b81bb9b60930b453b51a350 100644 (file)
@@ -1,21 +1,84 @@
 <?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
index c01d31f89b9c8a508ebfaf9d5993c42743594825..d413314ab0a58e0abed40141249b2fdd0bbf3b04 100644 (file)
@@ -1,5 +1,4 @@
 {\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
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-deployer.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-deployer.xml
new file mode 100644 (file)
index 0000000..ba61d10
--- /dev/null
@@ -0,0 +1,76 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http-redirect.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http-redirect.xml
new file mode 100644 (file)
index 0000000..556f544
--- /dev/null
@@ -0,0 +1,61 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-http.xml
new file mode 100644 (file)
index 0000000..f4f61bf
--- /dev/null
@@ -0,0 +1,41 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-https.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-https.xml
new file mode 100644 (file)
index 0000000..71a0837
--- /dev/null
@@ -0,0 +1,29 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl-context.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl-context.xml
new file mode 100644 (file)
index 0000000..e1edaf0
--- /dev/null
@@ -0,0 +1,29 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty-ssl.xml
new file mode 100644 (file)
index 0000000..db6e2eb
--- /dev/null
@@ -0,0 +1,58 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty.xml b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/jetty.xml
new file mode 100644 (file)
index 0000000..c9afdb5
--- /dev/null
@@ -0,0 +1,129 @@
+<?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>
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/keystore b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/keystore
new file mode 100644 (file)
index 0000000..95d7f4c
Binary files /dev/null and b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/keystore differ
diff --git a/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/localhost.jks b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/localhost.jks
new file mode 100644 (file)
index 0000000..95d7f4c
Binary files /dev/null and b/server/-product/production/MEDIAVIVANTIS/settings/test-jetty/localhost.jks differ
index 3a09395fca0d5b8f1de3a7d27c0fa5501bb018da..3632868f2d84f17ca0c8e8dfa23d5f5352a975be 100644 (file)
@@ -119,6 +119,12 @@ public class PBQuery {
 \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
@@ -152,8 +158,8 @@ public class PBQuery {
                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
@@ -198,8 +204,7 @@ public class PBQuery {
                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
@@ -249,8 +254,8 @@ public class PBQuery {
                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