git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Thu, 27 May 2021 13:39:40 +0000 (13:39 +0000)
committervasary.daniel <TFS\vasary.daniel>
Thu, 27 May 2021 13:39:40 +0000 (13:39 +0000)
73 files changed:
server/-configuration/run-mediacube-server-hirtv.launch
server/-product/.tpignore
server/-product/production/AMC/service-mediacube.bat [new file with mode: 0644]
server/-product/production/HIRTV/jobs/executors.yaml [deleted file]
server/-product/production/HIRTV/jobs/schedules-orig.json [new file with mode: 0644]
server/-product/production/HIRTV/jobs/schedules.json
server/-product/production/HIRTV/jobs/templates/cancelable.xml
server/-product/production/HIRTV/jobs/templates/delete-materials1.xml [moved from server/-product/production/HIRTV/jobs/templates/delete-materials.xml with 75% similarity]
server/-product/production/HIRTV/jobs/templates/delete-materials2.xml [new file with mode: 0644]
server/-product/production/HIRTV/jobs/templates/delete-materials3.xml [new file with mode: 0644]
server/-product/production/HIRTV/jobs/templates/delete-materials4.xml [new file with mode: 0644]
server/-product/production/HIRTV/jobs/templates/delete-materials5.xml [new file with mode: 0644]
server/-product/production/HIRTV/jobs/templates/sync-octopus.xml
server/-product/production/LOCAL/jobs/steps/ArchiveListBuilderStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ArchiveMaterialSubmitStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ArchiveRecursive.java [deleted file]
server/-product/production/LOCAL/jobs/steps/BatchRetrieveForkStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/CancelableStep.java
server/-product/production/LOCAL/jobs/steps/CleanupMountedLocationStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/CreateArchiveItemStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/CreateMissingLowresStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ExternalCommand.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ExternalCommandExecutor.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ExternalProfile.java [deleted file]
server/-product/production/LOCAL/jobs/steps/ExternalProfilesConfig.java [deleted file]
server/-product/production/LOCAL/jobs/steps/FileCopyStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/FileSearchFilterOptions.java [deleted file]
server/-product/production/LOCAL/jobs/steps/HSMMigrateStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/IExternalCallback.java [deleted file]
server/-product/production/LOCAL/jobs/steps/MXFCutterStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/MediaCubeClient.java [deleted file]
server/-product/production/LOCAL/jobs/steps/MediaToolStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/MetadataTransformStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/OutputPathAndNameSelectorStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/PathItemsCollectorStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/PrepareRemoteTranscodeJobParametersStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/QueryMissingProxyMediaStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/RemoteJobStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TSMBackupStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TSMExtendedRetrieveStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TSMRestoreStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TSMSimpleRestoreStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TestForkCancelableStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TestLib.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TranscodeFFAStranStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/TranscodeFFMpegStep.java [deleted file]
server/-product/production/LOCAL/jobs/steps/UpdateGhostMediaDataStep.java [deleted file]
server/-product/production/LOCAL/settings/application-htv.yaml
server/-product/production/LOCAL/settings/application-mv.yaml [moved from server/-product/production/LOCAL/settings/application-local.yaml with 100% similarity]
server/-product/production/config-210526.ini [new file with mode: 0644]
server/hu.user.mediacube.executors.tests/META-INF/MANIFEST.MF
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/Support.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CancelableStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteNEXIOMaterialsStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/PASAPOOLTransferToStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/SyncOCTOPUSDataStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TransferStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/shared/ExternalCommandExecutor.java
server/user.jobengine.executors/src/user/jobengine/server/steps/shared/OctopusDataMiner.java
server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java
server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java
server/user.jobengine.osgi.db/migrations/scripts/036_alter_BeabbleBeach_storeuri.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/ScheduledJob.java
server/user.mediacube.gui/WEB-INF/web.xml
server/user.mediacube.gui/pages/searchitems/results.zul
server/user.mediacube.gui/resources/i3-label_hu.properties
server/user.mediacube.gui/src/user/jobengine/gui/ComponentBinder.java

index a27365a663260bc04733dc1196dc890613b2020d..4f2f3d81b1d7c6130edb99066ae77b97c6bd30bc 100644 (file)
@@ -20,7 +20,7 @@
     <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
     <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
     <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Dlog4j.configurationFile=settings/log4j2.xml&#13;&#10;-Djetty.home=settings&#13;&#10;-Djetty.etc.config.urls=jetty.xml&#13;&#10;-Dgosh.home=configuration&#13;&#10;-Djava.io.tmpdir=tmp"/>\r
+    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dcom.sun.management.jmxremote&#13;&#10;-Dcom.sun.management.jmxremote.port=9010&#13;&#10;-Dcom.sun.management.jmxremote.local.only=false&#13;&#10;-Dcom.sun.management.jmxremote.authenticate=false&#13;&#10;-Dcom.sun.management.jmxremote.ssl=false&#13;&#10;-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Dlog4j.configurationFile=settings/log4j2.xml&#13;&#10;-Djetty.home=settings/jetty&#13;&#10;-Djetty.etc.config.urls=jetty.xml,jetty-ssl.xml,jetty-ssl-context.xml,jetty-http.xml,jetty-https.xml&#13;&#10;-Dgosh.home=configuration&#13;&#10;-Djava.io.tmpdir=tmp"/>\r
     <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="C:\_workspace\USER\MediaCube\server\-product\production\HIRTV"/>\r
     <stringAttribute key="pde.version" value="3.3"/>\r
     <setAttribute key="selected_target_bundles">\r
index 51fcdd4ad291fe3c728bfb4af3624bcd243a659b..9d5bf9a82de85e4bf6871f5c0b5314737f9d69ff 100644 (file)
@@ -11,3 +11,5 @@
 \Q/production/AMC/tmp/\E.*\r
 \Q/production/LOCAL/log/\E.*\r
 \Q/production/LOCAL/tmp/\E.*\r
+\Q/production/HIRTV/jobs/classes/\E.*\r
+\Q/production/LOCAL/jobs/classes/\E.*\r
diff --git a/server/-product/production/AMC/service-mediacube.bat b/server/-product/production/AMC/service-mediacube.bat
new file mode 100644 (file)
index 0000000..29a7dd2
--- /dev/null
@@ -0,0 +1,48 @@
+@echo off\r
+cd "F:\mediacube"\r
+\r
+if not exist Z:\ net use Z: \\192.168.23.160\VICC dal /user:hadmin /persistent:yes\r
+if not exist G:\downloads mkdir G:\downloads\r
+if not exist G:\uploads mkdir G:\uploads\r
+if not exist F:\mediacube\uploads mklink /D F:\mediacube\uploads G:\uploads\r
+if not exist F:\mediacube\downloads mklink /D F:\mediacube\downloads G:\downloads\r
+\r
+del /Q G:\downloads\.STATUS\*.catched\r
+del /Q G:\downloads\*.part\r
+\r
+del /Q G:\uploads\.STATUS\*.catched\r
+del /Q G:\uploads\*.part\r
+\r
+if exist tmp rmdir tmp /s /q\r
+mkdir tmp\r
+\r
+set "DSMI_CONFIG=F:\mediacube\settings\dsm.opt"\r
+set "DSM_CONFIG=F:\mediacube\settings\dsm.opt"\r
+set "DSMI_DIR=c:\Program Files\Tivoli\TSM\baclient"\r
+set "DSM_DIR=F:\mediacube"\r
+set "DSMI_LOG=F:\mediacube\log"\r
+set "LD_LIBRARY_PATH=c:\Program Files\Tivoli\TSM\baclient;c:\opt\mediacube"\r
+set "LIBPATH=c:\Program Files\Tivoli\TSM\baclient"\r
+set "SHLIB_PATH=c:\Program Files\Tivoli\TSM\baclient"\r
+set "PATH=F:\jdk1.8.0_112\bin\;%PATH%"\r
+\r
+java ^\r
+-Dcom.sun.management.jmxremote ^\r
+-Dcom.sun.management.jmxremote.port=9010 ^\r
+-Dcom.sun.management.jmxremote.local.only=false ^\r
+-Dcom.sun.management.jmxremote.authenticate=false ^\r
+-Dcom.sun.management.jmxremote.ssl=false ^\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 ^\r
+-Djetty.etc.config.urls=jetty.xml ^\r
+-Djava.io.tmpdir=tmp ^\r
+-Dfile.encoding=UTF-8 ^\r
+-Dgosh.home=configuration ^\r
+-Djna.library.path=F:/mediacube ^\r
+-jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar ^\r
+-Xms512m ^\r
+-Xmx4096m ^\r
+-console\r
diff --git a/server/-product/production/HIRTV/jobs/executors.yaml b/server/-product/production/HIRTV/jobs/executors.yaml
deleted file mode 100644 (file)
index 8cba80b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-executors:\r
- - className: user.jobengine.server.steps.ArchiveListBuilderStep\r
-   maxConcurrent: 1\r
- - className: user.jobengine.server.steps.ArchiveMaterialSubmitStep\r
-   maxConcurrent: 2\r
diff --git a/server/-product/production/HIRTV/jobs/schedules-orig.json b/server/-product/production/HIRTV/jobs/schedules-orig.json
new file mode 100644 (file)
index 0000000..076b6fc
--- /dev/null
@@ -0,0 +1,318 @@
+{"joblist":[\r
+       {\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
+       {"name": "address", "value": "http://10.10.1.10/api/v1", "type": "java.lang.String"},\r
+       {"name": "user", "value": "mam", "type": "java.lang.String"},\r
+       {"name": "pwd", "value": "napocska", "type": "java.lang.String"}\r
+      ]\r
+       },      \r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\r
+         "name" : "Limitált archiválás az ISILON/ARCHIVE mappából",\r
+      "template": "archive-limited.xml",\r
+      "cronexpression": "0 0 6-22/2 * * ?",\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": 20, "type": "java.lang.Integer"}\r
+      ]\r
+       },\r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\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
+         "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
+         "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": false,\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": false,\r
+      "executeimmediate": false,\r
+         "name" : "PROXY pótlás FFASTRANS 74",\r
+      "template": "sys-recreate-lowres-74.xml",\r
+      "cronexpression": "30 * * * * ?",\r
+      "parameters": [ \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
+         "name" : "SYS: create-lowres-ondemand",\r
+      "template": "create-lowres-ondemand.xml",\r
+      "parameters": [ \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": true,\r
+      "executeimmediate": false,\r
+         "name" : "Lejárt ISISLON/ARCHIVE anyagok törlése",\r
+      "template": "delete-materials1.xml",\r
+      "cronexpression": "0 0 5 * * ?",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE", "type": "java.lang.String"},\r
+       {"name": "skipArchiveCheck", "value": true, "type": "java.lang.Boolean"}\r
+      ]\r
+       },      \r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\r
+         "name" : "Lejárt ISILON/TQC/CHECK/KESZ anyagok törlése",\r
+      "template": "delete-materials2.xml",\r
+      "cronexpression": "0 0 8 * * ?",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/TQC/CHECK/KESZ", "type": "java.lang.String"},\r
+       {"name": "skipArchiveCheck", "value": true, "type": "java.lang.Boolean"}\r
+      ]\r
+       },      \r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\r
+         "name" : "Lejárt ISILON/TQC/PROMO/KESZ anyagok törlése",\r
+      "template": "delete-materials3.xml",\r
+      "cronexpression": "0 0 6 * * ?",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/TQC/PROMO/KESZ", "type": "java.lang.String"},\r
+       {"name": "skipArchiveCheck", "value": true, "type": "java.lang.Boolean"}\r
+      ]\r
+       },      \r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\r
+         "name" : "Lejárt ISILON/TQC/REKLAM/KESZ anyagok törlése",\r
+      "template": "delete-materials4.xml",\r
+      "cronexpression": "0 0 7 * * ?",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/TQC/REKLAM/KESZ", "type": "java.lang.String"},\r
+       {"name": "skipArchiveCheck", "value": true, "type": "java.lang.Boolean"}\r
+      ]\r
+       },      \r
+       {\r
+      "active": true,\r
+      "executeimmediate": false,\r
+         "name" : "Lejárt ISILON/OCTOPUS/_NAPI_MEGTEKINTO anyagok törlése",\r
+      "template": "delete-materials5.xml",\r
+      "cronexpression": "0 0 22 * * ?",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/OCTOPUS/_NAPI_MEGTEKINTO", "type": "java.lang.String"},\r
+       {"name": "skipArchiveCheck", "value": true, "type": "java.lang.Boolean"}\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/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": 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
+         "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
+       },\r
+       {\r
+         "name" : "SYS: retrieve-ondemand",\r
+      "template": "retrieve-ondemand.xml",\r
+      "parameters": [ \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
+       {"name": "octopusOutputFolder", "value": "OCTOPUS", "type": "java.lang.String"},\r
+       {"name": "genericOutputFolder", "value": "ARCHIVE_RESTORE", "type": "java.lang.String"},\r
+       {"name": "onlineOutputFolder", "value": "ONLINE", "type": "java.lang.String"},\r
+       {"name": "killDateDays", "value": 7, "type": "java.lang.Integer"},\r
+       {"name": "nexioAgency", "value": "ARCHIVE_RESTORE", "type": "java.lang.String"},\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
+      ]\r
+       },\r
+       {\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
+         "name" : "sys: MORPHEUS 'missing material' visszatöltése",\r
+      "template": "sys-retrieve-missing-material.xml",\r
+      "parameters": [ \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
index b500c0c85ad33ca83238d7bde21e9b85ecd23d2f..2f921d82babf8b1b9634c4ef12cee131bb0920a9 100644 (file)
@@ -1,336 +1,8 @@
-{"joblist":[\r
-       {\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" : "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/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": true,\r
-      "executeimmediate": false,\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
-         "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": 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" : "PROXY pótlás FFASTRANS 74",\r
-      "template": "sys-recreate-lowres-74.xml",\r
-      "cronexpression": "30 * * * * ?",\r
-      "parameters": [ \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
-         "name" : "SYS: create-lowres-ondemand",\r
-      "template": "create-lowres-ondemand.xml",\r
-      "parameters": [ \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": 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": "/mnt/ISILON/TQC/CHECK/KESZ", "type": "java.lang.String"}\r
-      ]\r
-       },      \r
-       {\r
-      "active": true,\r
-      "executeimmediate": false,\r
-         "name" : "Lejárt ISILON/TQC/PROMO/KESZ anyagok törlése",\r
-      "template": "delete-materials.xml",\r
-      "cronexpression": "0 0 6 * * ?",\r
-      "parameters": [ \r
-       {"name": "sourcePath", "value": "/mnt/ISILON/TQC/PROMO/KESZ", "type": "java.lang.String"}\r
-      ]\r
-       },      \r
-       {\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 0 7 * * ?",\r
-      "parameters": [ \r
-       {"name": "sourcePath", "value": "/mnt/ISILON/TQC/REKLAM/KESZ", "type": "java.lang.String"}\r
-      ]\r
-       },      \r
-       {\r
+{\r
+  "joblist": [{\r
       "active": true,\r
-      "executeimmediate": false,\r
-         "name" : "Lejárt ISILON/ARCHIVE anyagok törlése",\r
-      "template": "delete-materials.xml",\r
-      "cronexpression": "0 0 5 * * ?",\r
-      "parameters": [ \r
-       {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE", "type": "java.lang.String"}\r
-      ]\r
-       },      \r
-       {\r
-      "active": true,\r
-      "executeimmediate": false,\r
-         "name" : "Lejárt ISILON/OCTOPUS/_NAPI_MEGTEKINTO anyagok törlése",\r
-      "template": "delete-materials.xml",\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/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" : "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
-       },\r
-       {\r
-         "name" : "SYS: retrieve-ondemand",\r
-      "template": "retrieve-ondemand.xml",\r
-      "parameters": [ \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
-       {"name": "octopusOutputFolder", "value": "OCTOPUS", "type": "java.lang.String"},\r
-       {"name": "genericOutputFolder", "value": "ARCHIVE_RESTORE", "type": "java.lang.String"},\r
-       {"name": "onlineOutputFolder", "value": "ONLINE", "type": "java.lang.String"},\r
-       {"name": "killDateDays", "value": 7, "type": "java.lang.Integer"},\r
-       {"name": "nexioAgency", "value": "ARCHIVE_RESTORE", "type": "java.lang.String"},\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
-      ]\r
-       },\r
-       {\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
-         "name" : "sys: MORPHEUS 'missing material' visszatöltése",\r
-      "template": "sys-retrieve-missing-material.xml",\r
-      "parameters": [ \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
+      "cronexpression": "0/2 * * * * ?",\r
+      "template": "cancelable.xml"\r
+    }\r
+  ]\r
+}
\ No newline at end of file
index a400a93b16e80686fb10e9d56e63307eb6121a7a..4f3b9f86c4a76ea743e6c112594a200d414d1e9b 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<jobtemplate multiInstance="true" useSessionLog="true">\r
+<jobtemplate multiInstance="false" useSessionLog="true">\r
        <commands>\r
                <calljobstep id="step1" type="user.jobengine.server.steps.CancelableStep" weight="1" />\r
        </commands>\r
similarity index 75%
rename from server/-product/production/HIRTV/jobs/templates/delete-materials.xml
rename to server/-product/production/HIRTV/jobs/templates/delete-materials1.xml
index 82b304924a057b5e2486c4fa98bdf8cec510324e..af64d93c7f8712e713b0f30c5f420c90737bcb32 100644 (file)
@@ -3,6 +3,7 @@
        <declarations>\r
                <parameters>\r
                        <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="skipArchiveCheck" type="java.lang.Boolean"/>\r
                </parameters>\r
        </declarations>\r
        <commands>\r
@@ -11,6 +12,9 @@
                                <input>\r
                                        <parameter name="sourcePath" />\r
                                </input>\r
+                               <input>\r
+                                       <parameter name="skipArchiveCheck" />\r
+                               </input>\r
                        </inputs>\r
                </calljobstep>\r
        </commands>\r
diff --git a/server/-product/production/HIRTV/jobs/templates/delete-materials2.xml b/server/-product/production/HIRTV/jobs/templates/delete-materials2.xml
new file mode 100644 (file)
index 0000000..af64d93
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="skipArchiveCheck" type="java.lang.Boolean"/>\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.CleanupMountedLocationStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="skipArchiveCheck" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/-product/production/HIRTV/jobs/templates/delete-materials3.xml b/server/-product/production/HIRTV/jobs/templates/delete-materials3.xml
new file mode 100644 (file)
index 0000000..af64d93
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="skipArchiveCheck" type="java.lang.Boolean"/>\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.CleanupMountedLocationStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="skipArchiveCheck" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/-product/production/HIRTV/jobs/templates/delete-materials4.xml b/server/-product/production/HIRTV/jobs/templates/delete-materials4.xml
new file mode 100644 (file)
index 0000000..af64d93
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="skipArchiveCheck" type="java.lang.Boolean"/>\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.CleanupMountedLocationStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="skipArchiveCheck" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
diff --git a/server/-product/production/HIRTV/jobs/templates/delete-materials5.xml b/server/-product/production/HIRTV/jobs/templates/delete-materials5.xml
new file mode 100644 (file)
index 0000000..af64d93
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate name="Anyagok törlése" multiInstance="true" useSessionLog="true">\r
+       <declarations>\r
+               <parameters>\r
+                       <parameter name="sourcePath" type="java.lang.String"/>\r
+                       <parameter name="skipArchiveCheck" type="java.lang.Boolean"/>\r
+               </parameters>\r
+       </declarations>\r
+       <commands>\r
+               <calljobstep id="id1" type="user.jobengine.server.steps.CleanupMountedLocationStep" weight="1">\r
+                       <inputs>\r
+                               <input>\r
+                                       <parameter name="sourcePath" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="skipArchiveCheck" />\r
+                               </input>\r
+                       </inputs>\r
+               </calljobstep>\r
+       </commands>\r
+</jobtemplate>
\ No newline at end of file
index 86644526aebe97d039a269273199be08db4ed76c..7d870f8a35b1bd3b1171ce281b4908a72c67a8ff 100644 (file)
@@ -3,6 +3,9 @@
        <declarations>\r
                <parameters>\r
                        <parameter name="includeArchived" type="java.lang.Boolean" />\r
+                       <parameter name="address" type="java.lang.String" />\r
+                       <parameter name="user" type="java.lang.String" />\r
+                       <parameter name="pwd" type="java.lang.String" />\r
                </parameters>\r
        </declarations>\r
        <commands>\r
                                <input>\r
                                        <parameter name="includeArchived" />\r
                                </input>\r
+                               <input>\r
+                                       <parameter name="address" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="user" />\r
+                               </input>\r
+                               <input>\r
+                                       <parameter name="pwd" />\r
+                               </input>\r
                        </inputs>\r
                </calljobstep>\r
        </commands>\r
diff --git a/server/-product/production/LOCAL/jobs/steps/ArchiveListBuilderStep.java b/server/-product/production/LOCAL/jobs/steps/ArchiveListBuilderStep.java
deleted file mode 100644 (file)
index b232182..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.nio.file.DirectoryStream;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.util.LinkedList;\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
-import org.apache.logging.log4j.Marker;\r
-\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-/**\r
- * Az archivalhato mediak listazasa MediaFileWrapper objektumokban. A listazott media allomanyokat megjeloli .catched signal allomannyal, hogy a legkozelebbi\r
- * listazas figyelmen kivul hagyja.\r
- *\r
- * @author robi\r
- */\r
-public class ArchiveListBuilderStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       //      private static final String UTF8 = "utf-8";\r
-       private static final String STATUSFOLDER = ".STATUS";\r
-       private static final String JSONEXT = ".json";\r
-       private static final String CATCHEDEXT = ".catched";\r
-\r
-       public static final String ITEM_TITLE = "itemTitle";\r
-       public static final String ITEM_HOUSEID = "itemHouseId";\r
-       public static final String ITEM_DESCRIPTION = "itemDescription";\r
-       public static final String MEDIA_HOUSEID = "mediaHouseId";\r
-       public static final String MEDIA_TITLE = "mediaTitle";\r
-       public static final String MEDIA_DESCRIPTION = "mediaDescription";\r
-       public static final String MEDIA_TYPE = "mediaType";\r
-       private static final String DURATION = "duration";\r
-       private static final String EXISTING_MEDIAID = "existingMediaId";\r
-       private static final String TAGS = "tags";\r
-\r
-       private Marker marker;\r
-\r
-       private ArchiveItem createArchiveItem(Path jsonFilePath, Path mediaFilePath, Path catchedFilePath) {\r
-               ArchiveItem result = null;\r
-               try {\r
-                       result = ArchiveItem.fromFile(jsonFilePath);\r
-                       result.setMediaFile(mediaFilePath.toString());\r
-                       result.setCatchedFile(catchedFilePath.toString());\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-               }\r
-\r
-               return result;\r
-       }\r
-\r
-       private void createCatchedFile(Path catchedFilePath) {\r
-               try {\r
-                       Files.createFile(catchedFilePath);\r
-                       //Files.write(catchedFilePath, CATCHED.getBytes(UTF8), StandardOpenOption.CREATE);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-               }\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(String sourcePath, int limit, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
-               marker = jobRuntime.getSessionMarker();\r
-               List<ArchiveItem> archiveList = new LinkedList<ArchiveItem>();\r
-               DirectoryStream<Path> directoryStream = null;\r
-               try {\r
-                       DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
-                       for (Path p : stream) {\r
-                               processPathItem(p, archiveList);\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(marker, "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", e.getMessage());\r
-               } finally {\r
-                       if (directoryStream != null) {\r
-                               try {\r
-                                       directoryStream.close();\r
-                               } catch (IOException e) {\r
-                               }\r
-                       }\r
-               }\r
-\r
-               if (limit > 0 && archiveList.size() > limit) {\r
-                       archiveList = archiveList.subList(0, limit);\r
-                       logger.info(marker, "A folyamat alkalmazza a beállított {} limitet.", limit);\r
-               }\r
-\r
-               if (archiveList.size() == 0)\r
-                       logger.info(marker, "Nincs archiválandó anyag.");\r
-               else\r
-                       logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
-\r
-               for (ArchiveItem archiveItem : archiveList) {\r
-                       createCatchedFile(Paths.get(archiveItem.getCatchedFile()));\r
-               }\r
-\r
-               return new Object[] { archiveList };\r
-       }\r
-\r
-       private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList) {\r
-               File mediaFile = mediaFilePath.toFile();\r
-\r
-               //              if (mediaFile.length() > 0)\r
-               //                      return false;\r
-\r
-               if (mediaFile.isDirectory()) {\r
-                       return false;\r
-               }\r
-\r
-               Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), STATUSFOLDER);\r
-               Path catchedFilePath = Paths.get(dotStorePath.toString(), mediaFile.getName() + CATCHEDEXT);\r
-               File catchedFile = catchedFilePath.toFile();\r
-               if (catchedFile.exists()) {\r
-                       logger.warn("{} file is already catched.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               Path jsonFilePath = Paths.get(dotStorePath.toString(), mediaFile.getName() + JSONEXT);\r
-               File jsonFile = jsonFilePath.toFile();\r
-               if (!jsonFile.exists()) {\r
-                       logger.warn("{} has no json metadata.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               ArchiveItem archiveItem = createArchiveItem(jsonFilePath, mediaFilePath, catchedFilePath);\r
-\r
-               if (archiveItem == null) {\r
-                       logger.warn("{} has no metadata specified.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               if (StringUtils.isBlank(archiveItem.getItemHouseId())) {\r
-                       logger.warn("{} has no Item HouseID specified in metadata.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               if (StringUtils.isBlank(archiveItem.getItemTitle())) {\r
-                       logger.warn("{} has no Item Title specified in metadata.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               if (StringUtils.isBlank(archiveItem.getMediaHouseId())) {\r
-                       logger.warn("{} has no Media HouseID specified in metadata.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               if (StringUtils.isBlank(archiveItem.getMediaTitle())) {\r
-                       logger.warn("{} has no Media Title specified in metadata.", mediaFile.getName());\r
-                       return false;\r
-               }\r
-\r
-               //A tenyleges archivalast vesszuk elore\r
-               if (mediaFile.length() == 0)\r
-                       archiveList.add(archiveItem);\r
-               else\r
-                       archiveList.add(0, archiveItem);\r
-               //createCatchedFile(catchedFilePath);\r
-               return true;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/ArchiveMaterialSubmitStep.java b/server/-product/production/LOCAL/jobs/steps/ArchiveMaterialSubmitStep.java
deleted file mode 100644 (file)
index f11e3a5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.util.List;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.apache.logging.log4j.Marker;\r
-\r
-import user.commons.ListUtils;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class ArchiveMaterialSubmitStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String JOBTEMPLATE = "archive-material.xml";\r
-       private static final String KILL_DATE_DAYS = "killDateDays";\r
-       private static final String ARCHIVE = "Archiválás";\r
-       private static final String ARCHIVE_ITEM = "archiveItem";\r
-       private Marker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(List<ArchiveItem> archiveList, int killDateDays, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-               if (archiveList == null || archiveList.size() == 0)\r
-                       return null;\r
-\r
-               if (jobRuntime.forkPrepare()) {\r
-                       for (int i = 0; i < archiveList.size(); i++) {\r
-                               ArchiveItem archiveItem = archiveList.get(i);\r
-                               try {\r
-                                       IJobRuntime runtime = jobEngine.submit(jobRuntime, null, JOBTEMPLATE, ARCHIVE,\r
-                                                       ListUtils.asMap(ARCHIVE_ITEM, archiveItem, KILL_DATE_DAYS, killDateDays));\r
-                                                       \r
-                                       int progress = (i + 1) * 100 / archiveList.size();\r
-                                       setProgress(progress);\r
-                                       if (runtime == null)\r
-                                               throw new Exception("Submit returned null runtime");\r
-                               } catch (Exception e) {\r
-                                       logger.catching(e);\r
-                                       String fileName = new File(archiveItem.getMediaFile()).getName();\r
-                                       logger.error(marker, "Az '{}' állomány archiválási kísérlete sikertelen. A rendszer üzenete: {}", fileName, e.getMessage());\r
-                                       if (!archiveItem.removeCatchedFile())\r
-                                               logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető.", fileName);\r
-                                       throw e;\r
-                               }\r
-                       }\r
-               }\r
-               jobRuntime.forkWaitComplete();\r
-               return null;\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/ArchiveRecursive.java b/server/-product/production/LOCAL/jobs/steps/ArchiveRecursive.java
deleted file mode 100644 (file)
index 6a65d5f..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.nio.file.FileVisitResult;\r
-import java.nio.file.FileVisitor;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.attribute.BasicFileAttributes;\r
-import java.text.SimpleDateFormat;\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.apache.commons.io.FilenameUtils;\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.BasicDBObject;\r
-\r
-import user.commons.JobStatus;\r
-import user.commons.ListUtils;\r
-import user.commons.mediatool.MediaInfo;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-import user.mediacube.metadata.interfaces.IMetadata;\r
-import user.mediacube.metadata.interfaces.IMetadataProvider;\r
-import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
-import user.mediacube.metadata.interfaces.MetadataProviderType;\r
-import user.mediacube.metadata.interfaces.MetadataType;\r
-import user.mediacube.metadata.interfaces.PlanAirMetadataListOptions;\r
-\r
-public class ArchiveRecursive extends JobStep implements FileVisitor<Path> {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String JOBTEMPLATE = "archive-material.xml";\r
-       private static final String ITEM_TITLE = "itemTitle";\r
-       private static final String ITEM_HOUSEID = "itemHouseId";\r
-       private static final String MEDIA_HOUSEID = "mediaHouseId";\r
-       private static final String MEDIA_TITLE = "mediaTitle";\r
-       private static final String MEDIA_DESCRIPTION = "mediaDescription";\r
-       private static final String MEDIA_TYPE = "mediaType";\r
-       private static final String ARCHIVE = "Archiválás";\r
-       private static final String ARCHIVE_ITEM = "archiveItem";\r
-       private static final String KILL_DATE_DAYS = "killDateDays";\r
-       private SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");\r
-\r
-       private List<String> skipPathNames = Arrays.asList("!ARCHIVALAS_ALATT", "VASAROLT", EscortFiles.STATUSFOLDER, EscortFiles.CONFLICTFOLDER);\r
-       private int limit;\r
-       private int submitted;\r
-       private int killDateDays;\r
-\r
-       private boolean canReadMediaInfo(Path mediaFilePath) {\r
-               boolean result = false;\r
-               try {\r
-                       MediaInfo mi = new MediaInfo(mediaFilePath);\r
-                       mi.process();\r
-                       result = true;\r
-               } catch (Exception e) {\r
-                       logger.warn(getSessionMarker(), e.getMessage());\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private void checkArchiveItem(ArchiveItem archiveItem, Path mediaPath) throws Exception {\r
-               if (archiveItem == null)\r
-                       throw new Exception(mediaPath + " has no metadata specified.");\r
-\r
-               if (StringUtils.isBlank(archiveItem.getItemHouseId()))\r
-                       throw new Exception(mediaPath + " has no Item HouseID specified in metadata.");\r
-\r
-               if (StringUtils.isBlank(archiveItem.getItemTitle()))\r
-                       throw new Exception(mediaPath + " has no Item Title specified in metadata.");\r
-\r
-               if (StringUtils.isBlank(archiveItem.getMediaHouseId()))\r
-                       throw new Exception(mediaPath + " has no Media HouseID specified in metadata.");\r
-\r
-               if (StringUtils.isBlank(archiveItem.getMediaTitle()))\r
-                       throw new Exception(mediaPath + " has no Media Title specified in metadata.");\r
-       }\r
-\r
-       private ArchiveItem createArchiveItem(Path filePath) throws Exception {\r
-               ArchiveItem result = null;\r
-\r
-               String fileName = filePath.getFileName().toString();\r
-               String mediaHouseId = FilenameUtils.removeExtension(fileName);\r
-               try {\r
-                       result = getPlanAirMetadata(mediaHouseId);\r
-               } catch (Exception e) {\r
-\r
-                       logger.error("PlanAir metadata error", e);\r
-                       //nem latja a drivert pl.\r
-                       throw e;\r
-               }\r
-\r
-               if (result == null) {\r
-                       result = new ArchiveItem();\r
-                       BasicFileAttributes attr = Files.readAttributes(filePath, BasicFileAttributes.class);\r
-                       result.setItemHouseId(df.format(attr.lastModifiedTime().toMillis()));\r
-                       result.setItemTitle(filePath.getParent().toString());\r
-                       result.setMediaHouseId(mediaHouseId);\r
-                       result.setMediaTitle(fileName);\r
-                       //TODO kesobb kivenni\r
-                       //result.setMediaDescription("/OMARCHIVE");\r
-                       result.setMediaType("Generic");\r
-               }\r
-\r
-               result.setMediaFile(filePath.toString());\r
-               return result;\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(String sourcePath, int killDateDays, int limit) throws Exception {\r
-               this.killDateDays = killDateDays;\r
-               this.limit = limit;\r
-               try {\r
-                       if (getJobRuntime().forkPrepare()) {\r
-                               Files.walkFileTree(Paths.get(sourcePath), this);\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.error(getSessionMarker(), "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath, e.getMessage());\r
-               } finally {\r
-                       if (submitted > 0)\r
-                               getJobRuntime().forkWaitComplete();\r
-                       else\r
-                               getJobRuntime().cancelForkPrepare();\r
-\r
-               }\r
-               return null;\r
-       }\r
-\r
-       private ArchiveItem getPlanAirMetadata(String mediaHouseId) throws Exception {\r
-               PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();\r
-               opt.setSearch(mediaHouseId);\r
-               opt.setType(MetadataType.Material);\r
-\r
-               BasicDBObject json = null;\r
-               List<IMetadata> data = null;\r
-\r
-               IMetadataProviderFactory factory = getService(IMetadataProviderFactory.class);\r
-               IMetadataProvider planairProvider = factory.getProvider(MetadataProviderType.PLANAIR);\r
-\r
-               ArchiveItem result = null;\r
-               data = planairProvider.list(opt);\r
-               if (data.size() != 0)\r
-                       json = data.get(0).asJSON();\r
-               else {\r
-                       opt.setType(MetadataType.Promo);\r
-                       data = planairProvider.list(opt);\r
-                       if (data.size() != 0)\r
-                               json = data.get(0).asJSON();\r
-                       else {\r
-                               opt.setType(MetadataType.AD);\r
-                               data = planairProvider.list(opt);\r
-                               if (data.size() != 0)\r
-                                       json = data.get(0).asJSON();\r
-                       }\r
-               }\r
-               if (json != null) {\r
-                       result = new ArchiveItem();\r
-                       result.setItemHouseId(json.getString(ITEM_HOUSEID));\r
-                       result.setItemTitle(json.getString(ITEM_TITLE));\r
-                       result.setMediaHouseId(json.getString(MEDIA_HOUSEID));\r
-                       result.setMediaTitle(json.getString(MEDIA_TITLE));\r
-                       result.setMediaDescription(json.getString(MEDIA_DESCRIPTION));\r
-                       result.setMediaType(json.getString(MEDIA_TYPE));\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private boolean handleArchiveConflict(Path mediaPath) throws Exception {\r
-               boolean result = false;\r
-               String sourceFileName = mediaPath.getFileName().toString();\r
-               if (getManager().isMediaFileExists(sourceFileName)) {\r
-                       EscortFiles.createMediaCatch(mediaPath);\r
-                       result = true;\r
-\r
-                       //                      try {\r
-                       //                              Path parent = sourcePath.getParent();\r
-                       //                              Path conflictPath = Paths.get(parent.toString(), CONFLICT);\r
-                       //                              File folder = conflictPath.toFile();\r
-                       //                              if (!folder.exists() || !folder.isDirectory()) {\r
-                       //                                      Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");\r
-                       //                                      FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);\r
-                       //                                      try {\r
-                       //                                              Files.createDirectories(conflictPath, attr);\r
-                       //                                      } catch (Exception e) {\r
-                       //                                              try {\r
-                       //                                                      Files.createDirectory(conflictPath);\r
-                       //                                              } catch (Exception e1) {\r
-                       //                                                      logger.catching(e);\r
-                       //                                                      throw e;\r
-                       //                                              }\r
-                       //                                      }\r
-                       //                              }\r
-                       //\r
-                       //                              Path conflictFile = Paths.get(conflictPath.toString(), sourceFileName);\r
-                       //                              if (conflictFile.toFile().exists())\r
-                       //                                      conflictFile = Paths.get(conflictPath.toString(), sourceFileName + (new Date()).getTime());\r
-                       //                              Files.move(sourcePath, conflictFile);\r
-                       //                              result = true;\r
-                       //                      } catch (Exception e1) {\r
-                       //                              logger.error(getSessionMarker(), "Hiba az '{}' állomány mappába mozgatásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage());\r
-                       //                      }\r
-               }\r
-\r
-               return result;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult postVisitDirectory(Path paramT, IOException paramIOException) throws IOException {\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes paramBasicFileAttributes) throws IOException {\r
-               Path dirName = dir.getFileName();\r
-               logger.info("PreVisit {}", dir);\r
-\r
-               if (skipPathNames.contains(dirName.toString()))\r
-                       return FileVisitResult.SKIP_SUBTREE;\r
-               else\r
-                       logger.info("PreVisit {}", dir);\r
-\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       private boolean processPathItem(Path mediaPath) throws Exception {\r
-               if (submitted == limit)\r
-                       return false;\r
-\r
-               //              if (!"Transfered".equals(mediaPath.getParent().getFileName().toString()))\r
-               //                      return false;\r
-\r
-               if (mediaPath.getFileName().toString().startsWith("."))\r
-                       return false;\r
-\r
-               File mediaFile = mediaPath.toFile();\r
-               if (mediaFile.isDirectory())\r
-                       return false;\r
-\r
-               if (EscortFiles.isMediaCatched(mediaPath))\r
-                       return false;\r
-\r
-               if (handleArchiveConflict(mediaPath))\r
-                       return false;\r
-\r
-               if (!canReadMediaInfo(mediaPath))\r
-                       return false;\r
-\r
-               ArchiveItem archiveItem = createArchiveItem(mediaPath);\r
-\r
-               try {\r
-                       checkArchiveItem(archiveItem, mediaPath);\r
-                       submitted++;\r
-\r
-                       Map<String, Object> parameters = ListUtils.asMap(ARCHIVE_ITEM, archiveItem, KILL_DATE_DAYS, killDateDays);\r
-                       IJobRuntime runtime = getEngine().submit(getJobRuntime(), e -> {\r
-                               if (e.getStatus().equals(JobStatus.CANCELED) || e.getStatus().equals(JobStatus.SUSPENDED))\r
-                                       EscortFiles.removeMediaCatch(mediaPath);\r
-                       }, JOBTEMPLATE, ARCHIVE, 1, IJobEngine.DEFAULT_OWNER, parameters);\r
-                       if (runtime == null)\r
-                               throw new Exception("Submit returned null runtime");\r
-                       runtime.setRelated(mediaPath.toString());\r
-                       EscortFiles.createMediaCatch(mediaPath);\r
-               } catch (Exception e) {\r
-                       String fileName = new File(archiveItem.getMediaFile()).getName();\r
-                       logger.error(getSessionMarker(), "Az '{}' állomány archiválási kísérlete sikertelen. A rendszer üzenete: {}", fileName, e.getMessage());\r
-               }\r
-\r
-               return true;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult visitFile(Path filePath, BasicFileAttributes paramBasicFileAttributes) throws IOException {\r
-               //logger.info("Will archived {}", filePath);\r
-               try {\r
-                       processPathItem(filePath);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-               }\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult visitFileFailed(Path filePath, IOException paramIOException) throws IOException {\r
-               logger.info("Error archive {}", filePath);\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/BatchRetrieveForkStep.java b/server/-product/production/LOCAL/jobs/steps/BatchRetrieveForkStep.java
deleted file mode 100644 (file)
index 15cf36c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import user.commons.MediaCubeFinishMarker;\r
-import user.commons.MediaCubeMarker;\r
-import user.jobengine.db.ArchivedMedia;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-import user.jobengine.server.scheduler.ScheduledJob;\r
-\r
-public class BatchRetrieveForkStep extends JobStep {\r
-       private static final String TARGET_PATH_TYPE = "targetPathType";\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String CHILD_TEMPLATE = "retrieve-ondemand.xml";\r
-       private static final String ARCHIVEDMEDIA = "archivedMedia";\r
-       private static final String RECIPIENT = "successRecipient";\r
-       private static final String HOUSEID = "houseId";\r
-       private MediaCubeMarker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(List<ArchivedMedia> basket, String houseId, String recipient, String targetPathType, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
-                       throws Exception {\r
-               marker = (MediaCubeMarker) jobRuntime.getSessionMarker();\r
-\r
-               //session szinten csak a finishMarker cimzettje az erdekes, es ezt a cimet pluszban hasznalja a konfigban megadott cimmel\r
-               //a finishMarker orokli a cim bellitast a sessionMarkertol\r
-               marker.setTo(recipient);\r
-\r
-               ((MediaCubeMarker) jobRuntime.getFinishMarker()).setTo(recipient);\r
-\r
-               if (basket == null || basket.size() == 0)\r
-                       return null;\r
-               setProgress(10);\r
-\r
-               MediaCubeMarker mailMarker = new MediaCubeMarker(recipient);\r
-               mailMarker.setSessionName("Archívum viszatöltés");\r
-               mailMarker.setSessionID(houseId);\r
-               logger.info(mailMarker, "A visszatöltések elindultak az alábbi állományokra:");\r
-\r
-               if (jobRuntime.forkPrepare()) {\r
-                       for (ArchivedMedia archivedMedia : basket) {\r
-                               logger.info(mailMarker, archivedMedia.getMedia().getMediaFilesName());\r
-                               submit(archivedMedia, recipient, houseId, targetPathType, jobEngine, jobRuntime);\r
-                       }\r
-               }\r
-               setProgress(50);\r
-               logger.info(new MediaCubeFinishMarker(mailMarker), "A visszatöltések végeztével megerősítő üzenetet küldünk.");\r
-               jobRuntime.forkWaitComplete();\r
-               setProgress(100);\r
-               return null;\r
-       }\r
-\r
-       public void submit(ArchivedMedia archivedMedia, String recipient, String houseId, String targetPathType, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
-                       throws Exception {\r
-               try {\r
-                       ScheduledJob scheduledJob = jobEngine.getScheduledJob(CHILD_TEMPLATE);\r
-                       Map<String, Object> parameters = scheduledJob.getJobParameters();\r
-                       parameters.put(ARCHIVEDMEDIA, archivedMedia);\r
-                       parameters.put(HOUSEID, houseId);\r
-                       parameters.put(RECIPIENT, recipient);\r
-                       parameters.put(TARGET_PATH_TYPE, targetPathType);\r
-                       IJobRuntime child = jobEngine.submit(jobRuntime, null, CHILD_TEMPLATE, String.format("Visszatöltés %s részére", recipient), parameters);\r
-                       ((MediaCubeMarker) child.getSessionMarker()).setTo(recipient);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(marker, "Hiba a kötegelt visszatöltésben. A rendszer üzenete: {}", e.getMessage());\r
-               }\r
-\r
-       }\r
-\r
-}\r
index 11e27c7cee965e988d83add995476636a8a1fc34..75bef7c51a194773b2e0c75393dce718f555d53d 100644 (file)
@@ -1,51 +1,42 @@
 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
-import org.apache.logging.log4j.Marker;\r
-import org.apache.logging.log4j.MarkerManager;\r
 \r
-import user.commons.StoreUri;\r
-import user.commons.remotestore.FtpDirectoryLister;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-\r
-\r
-/* DO NOT REMOVE!\r
-import user.jobengine.server.steps.TestLib;\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
+\r
+               getJobRuntime().setRelated("TESZT" + param);\r
+               for (int i = 0; i < count; i++) {\r
+                       if (getJobRuntime().isWaitingCancel())\r
+                               break;\r
+                       if (i == 1)\r
+                               throw new Exception("AAAAAAAAAA");\r
+\r
+                       Thread.sleep(1000);\r
+                       int progress = (i + 1) * 100 / count;\r
+                       setProgress(progress);\r
+               }\r
+\r
                try {\r
-                       TestLib t = new TestLib();\r
-\r
-                       Marker marker = MarkerManager.getMarker("MEDIAPROFILE");\r
-                       getJobRuntime().setRelated("TESZT" + param);\r
-\r
-                       for (int i = 0; i < count; i++) {\r
-                               if (getJobRuntime().isWaitingCancel())\r
-                                       break;\r
-                               Thread.sleep(1000);\r
-                               /*\r
-                               if (param==0)\r
-                                       throw new Exception();\r
-                               if (param==1) {\r
-                                       getJobRuntime().setDisableRetry(true);\r
-                                       throw new Exception();\r
-                               }\r
-                                */\r
-                               int progress = (i + 1) * 100 / count;\r
-                               setProgress(progress);\r
-                       }\r
+\r
+                       //                      logger.warn("Ez a fo logba megy");\r
+                       //\r
+                       //                      //marker="MEDIACUBE"\r
+                       //                      logger.warn(getMarker(), "Ez a markered logba megy");\r
+                       //\r
+                       //                      //marker="MEDIACUBE | folyamat_nev"\r
+                       //                      logger.warn(getJobRuntime().getSessionMarker(), "Ez a markered logba megy es a nevesitett logba");\r
+\r
                } catch (Exception e) {\r
-                       logger.info(e.getMessage());\r
+                       e.printStackTrace();\r
                        throw e;\r
                }\r
-               return null;\r
+               return new Object[] { param };\r
        }\r
 \r
 }\r
diff --git a/server/-product/production/LOCAL/jobs/steps/CleanupMountedLocationStep.java b/server/-product/production/LOCAL/jobs/steps/CleanupMountedLocationStep.java
deleted file mode 100644 (file)
index 4e6f10d..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.nio.file.DirectoryStream;\r
-import java.nio.file.FileVisitResult;\r
-import java.nio.file.FileVisitor;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.SimpleFileVisitor;\r
-import java.nio.file.attribute.BasicFileAttributes;\r
-import java.text.ParseException;\r
-import java.text.SimpleDateFormat;\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import org.apache.commons.io.FileUtils;\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.Marker;\r
-\r
-import user.commons.RemoteFile;\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 CleanupMountedLocationStep extends JobStep implements FileVisitor<Path> {\r
-\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String PROJECTFOLDER = "PROJECT";\r
-       private static final String DATEFORMAT = "yyyyMMdd";\r
-       private static final String DOT = ".";\r
-       private static final String STATUSFOLDER = ".STATUS";\r
-       private static final String EWC2EXT = ".ewc2";\r
-       private static final String XMPEXT = ".xmp";\r
-       private static final String CATCHEDEXT = ".catched";\r
-       private static final String KILLDATEEXT = ".killdate";\r
-       private static final String JSONEXT = ".json";\r
-\r
-       private static boolean isEmpty(final Path directory) throws IOException {\r
-               try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(directory)) {\r
-                       final int[] count = new int[] { 0 };\r
-                       final int[] specialCount = new int[] { 0 };\r
-                       dirStream.forEach(p -> {\r
-                               count[0]++;\r
-                               //                              if (p.getFileName().toString().toLowerCase().equals(PROJECTFOLDER.toLowerCase()))\r
-                               //                                      specialCount[0]++;\r
-                               if (p.getFileName().toString().toLowerCase().equals(STATUSFOLDER.toLowerCase()))\r
-                                       specialCount[0]++;\r
-\r
-                       });\r
-                       if (specialCount[0] == count[0])\r
-                               return true;\r
-               }\r
-               return false;\r
-       }\r
-\r
-       private Marker marker;\r
-\r
-       final int[] allCount = new int[] { 0 };\r
-       final int[] currentCount = new int[] { 0 };\r
-\r
-       private Path sourcePath;\r
-       private SimpleDateFormat dateFormat;\r
-       private StoreUri tsmStoreUri;\r
-\r
-       private Date checkExpiration(List<Path> killDateFiles) {\r
-               Date killDate = null;\r
-               for (Path killDateFile : killDateFiles) {\r
-                       Date currentKillDate = getKillDate(killDateFile);\r
-                       if (currentKillDate == null)\r
-                               continue;\r
-                       if ((killDate != null && currentKillDate.after(killDate)) || killDate == null)\r
-                               killDate = currentKillDate;\r
-               }\r
-               return new Date().after(killDate) ? killDate : null;\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(String sourceFolder, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = getSessionMarker();\r
-               sourcePath = Paths.get(sourceFolder);\r
-               DirectoryStream<Path> directoryStream = null;\r
-               if (StringUtils.isBlank(sourcePath.toString())) {\r
-                       logger.error(marker, "A folyamat 'sourcePath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'sourceFolder' input parameter missing.");\r
-               }\r
-\r
-               if (!sourcePath.toFile().exists() || !sourcePath.toFile().isDirectory()) {\r
-                       logger.error(marker, "A {} mappa nem létezik.", sourceFolder);\r
-                       throw new NullPointerException(String.format("Directory %s not exists.", sourceFolder));\r
-               }\r
-\r
-               Store tsmStore = getManager().getSystemStore(false);\r
-               if (tsmStore == null)\r
-                       throw new NullPointerException("A TSM bejegyzés nem található!");\r
-\r
-               tsmStoreUri = tsmStore.getSourceStoreUri(RemoteStoreProtocol.TSM);\r
-               if (tsmStoreUri == null)\r
-                       throw new NullPointerException("A TSM forrás elérése nem található!");\r
-\r
-               try {\r
-                       setProgress(1);\r
-                       dateFormat = new SimpleDateFormat(DATEFORMAT);\r
-\r
-                       Files.walkFileTree(sourcePath, new SimpleFileVisitor<Path>() {\r
-                               @Override\r
-                               public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {\r
-                                       allCount[0]++;\r
-                                       return super.visitFile(file, attrs);\r
-                               }\r
-                       });\r
-                       Files.walkFileTree(sourcePath, this);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(marker, "Hiba a '{}' mappa feldolgozásában. A rendszer hibaüzenete: {}", sourcePath, e.getMessage());\r
-                       throw e;\r
-               } finally {\r
-                       if (directoryStream != null) {\r
-                               try {\r
-                                       directoryStream.close();\r
-                               } catch (IOException e) {\r
-                               }\r
-                       }\r
-               }\r
-               return null;\r
-       }\r
-\r
-       private Date getKillDate(Path killDateFile) {\r
-               String fileName = killDateFile.getFileName().toString();\r
-               int end = fileName.lastIndexOf(DOT);\r
-               if (end < 1)\r
-                       return null;\r
-               int start = fileName.lastIndexOf(DOT, end - 1);\r
-               if (start < 0)\r
-                       return null;\r
-               String strKillDate = fileName.substring(start + 1, end);\r
-               Date result = null;\r
-               if (StringUtils.isNumeric(strKillDate)) {\r
-                       try {\r
-                               result = dateFormat.parse(strKillDate);\r
-                       } catch (ParseException e) {\r
-                               logger.error(marker, "A {} fájl 'killdate' állománya hibás formátumú, a {} karaktersorozat nem konvertálható dátummá.", fileName, strKillDate);\r
-                               return null;\r
-                       }\r
-               } else\r
-                       logger.error(marker, "A {} fájl 'killdate' állománya hibás formátumú, az dátum helyett ez áll: '{}'.", fileName, strKillDate);\r
-               return result;\r
-       }\r
-\r
-       private List<Path> getKillDateFiles(Path filePath) {\r
-               String killDateFilePattern = String.format("%s.*%s", filePath.getFileName().toString(), KILLDATEEXT);\r
-               List<Path> result = new ArrayList<>();\r
-               Path statusPath = null;\r
-               try {\r
-                       statusPath = Paths.get(filePath.getParent().toString(), STATUSFOLDER);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       return null;\r
-               }\r
-               File statusPathFile = statusPath.toFile();\r
-               if (statusPathFile.exists() && statusPathFile.isDirectory()) {\r
-                       try (DirectoryStream<Path> stream = Files.newDirectoryStream(statusPath, killDateFilePattern)) {\r
-                               stream.forEach(p -> result.add(p));\r
-                       } catch (Exception e) {\r
-                               logger.catching(e);\r
-                       }\r
-               }\r
-               Collections.sort(result);\r
-               return result;\r
-       }\r
-\r
-       private boolean isArchived(Path filePath) {\r
-               boolean result = false;\r
-               String name = filePath.getFileName().toString();\r
-               String[] tsmName = new String[] { null };\r
-               String query = String.format("SELECT relativepath FROM MEDIAFILE WHERE houseid = '%s'", name);\r
-               getManager().executeQuery(query, rs -> {\r
-                       tsmName[0] = rs.getString("relativepath");\r
-                       return false;\r
-               }, null);\r
-\r
-               if (tsmName[0] != null) {\r
-                       try {\r
-                               RemoteFile remoteFile = tsmStoreUri.getRemoteFile(tsmName[0]);\r
-                               result = remoteFile != null;\r
-                       } catch (Exception e) {\r
-                               logger.error(e.getMessage());\r
-                       } finally {\r
-                               tsmStoreUri.cleanUp();\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {\r
-               if (!dir.equals(sourcePath) && isEmpty(dir)) {\r
-                       if (!removeExistingSpecialDirectory(dir, PROJECTFOLDER))\r
-                               return FileVisitResult.CONTINUE;\r
-                       if (!removeExistingSpecialDirectory(dir, STATUSFOLDER))\r
-                               return FileVisitResult.CONTINUE;\r
-                       if (removeFile(dir))\r
-                               logger.info(marker, "A {} üres mappa törlése sikeres.", dir);\r
-\r
-               }\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {\r
-\r
-               //A .-al kezdodo mappakat kihagyjuk\r
-               if (dir.getFileName().toString().startsWith("."))\r
-                       return FileVisitResult.SKIP_SUBTREE;\r
-\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       private void processPathItem(Path filePath) {\r
-               currentCount[0]++;\r
-\r
-               if (filePath.getFileName().toString().startsWith("."))\r
-                       return;\r
-\r
-               int progress = currentCount[0] * 100 / allCount[0];\r
-               setProgress(progress);\r
-\r
-               logger.info("Checking {}", filePath);\r
-               List<Path> killDateFiles = getKillDateFiles(filePath);\r
-               if (killDateFiles == null || killDateFiles.size() == 0) {\r
-                       logger.warn(marker, "A {} fájlhoz nem található 'killdate' állomány.", filePath);\r
-                       return;\r
-               }\r
-\r
-               if (killDateFiles.size() != 1)\r
-                       logger.warn(marker, "A {} fájlhoz több 'killdate' állomány található, a legújabb dátum határozza meg a törlés időpontját.", filePath);\r
-\r
-               Date killDate = checkExpiration(killDateFiles);\r
-               if (killDate == null)\r
-                       return;\r
-\r
-               if (!isArchived(filePath)) {\r
-                       logger.error(marker, "A(z) {} anyag törlésre van kijelölve, de nem található az archívumban.", filePath);\r
-                       return;\r
-               }\r
-\r
-               if (removeFiles(filePath, killDateFiles))\r
-                       logger.info(marker, "A {} fájl és kapcsolódó állományai a {} killdate bejegyzés alapján sikeresen törlődtek.", filePath.getFileName(),\r
-                                       dateFormat.format(killDate));\r
-               else\r
-                       logger.warn(marker, "A {} fájl és kapcsolódó állományai a {} killdate bejegyzés alapján csak részlegesen vagy egyáltalán nem törlődtek.",\r
-                                       filePath.getFileName(), dateFormat.format(killDate));\r
-       }\r
-\r
-       private boolean removeExistingSpecialDirectory(Path dir, String folderName) throws IOException {\r
-               File projectPath = Paths.get(dir.toString(), folderName).toFile();\r
-               if (projectPath.exists() && projectPath.isDirectory()) {\r
-                       FileUtils.deleteDirectory(projectPath);\r
-                       if (projectPath.exists()) {\r
-                               logger.warn(marker, "A {} alatti {} mappa törlése nem sikerült.", dir, folderName);\r
-                               return false;\r
-                       }\r
-               }\r
-               return true;\r
-       }\r
-\r
-       private boolean removeFile(Path filePath) {\r
-               boolean result = false;\r
-               try {\r
-                       //logger.error("REMOVE {}", filePath);\r
-                       File file = filePath.toFile();\r
-                       if (file.exists())\r
-                               result = file.delete();\r
-               } catch (Exception e) {\r
-                       logger.error(marker, "A {} fájl nem törölhető. A rendszer hibaüzenete: {}", filePath, e.getMessage());\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private boolean removeFiles(Path filePath, List<Path> killDateFiles) {\r
-               if (!removeFile(filePath))\r
-                       return false;\r
-\r
-               removeFile(Paths.get(filePath.toString() + EWC2EXT));\r
-               removeFile(Paths.get(filePath.toString() + XMPEXT));\r
-               removeFile(Paths.get(filePath.getParent().toString(), STATUSFOLDER, filePath.getFileName().toString() + CATCHEDEXT));\r
-               removeFile(Paths.get(filePath.getParent().toString(), STATUSFOLDER, filePath.getFileName().toString() + JSONEXT));\r
-\r
-               boolean result = true;\r
-               for (Path killDateFile : killDateFiles) {\r
-                       if (!removeFile(killDateFile))\r
-                               result = false;\r
-               }\r
-\r
-               return result;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {\r
-               processPathItem(file);\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-\r
-       @Override\r
-       public FileVisitResult visitFileFailed(Path file, IOException e) throws IOException {\r
-               logger.error(marker, "A {} fájl nem érhető el. A rendszer hibaüzenete: {}", file.toString(), e.getMessage());\r
-               return FileVisitResult.CONTINUE;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/CreateArchiveItemStep.java b/server/-product/production/LOCAL/jobs/steps/CreateArchiveItemStep.java
deleted file mode 100644 (file)
index b169edf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.nio.file.Paths;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-import com.ibm.nosql.json.api.DB;\r
-import com.ibm.nosql.json.api.DBCollection;\r
-\r
-import user.commons.nosql.NoSQLUtils;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.db.Store;\r
-\r
-public class CreateArchiveItemStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(Media mediaCubeMedia, String localHiresPath) throws Exception {\r
-               DB db = NoSQLUtils.getNoSQLDB();\r
-               DBCollection collection = db.getCollection("missing_lowres");\r
-               Store highResStore = getManager().getSystemStore(false);\r
-\r
-               ArchiveItem archiveItem = null;\r
-               try {\r
-                       if (mediaCubeMedia.getMediaFilesCount() != 1)\r
-                               throw new Exception("Expected media count is 1, found " + mediaCubeMedia.getMediaFilesCount());\r
-                       if (mediaCubeMedia.getMediaFiles().get(0).getStoreId() != highResStore.getId())\r
-                               throw new Exception("Expected media store is a high-res store");\r
-\r
-                       String name = mediaCubeMedia.getMediaFileRealName();\r
-                       archiveItem = new ArchiveItem();\r
-                       archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString());\r
-                       collection.save(new BasicDBObject("name", name));\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.info(getMarker(), e.getMessage());\r
-                       throw e;\r
-               } finally {\r
-                       setProgress(100);\r
-               }\r
-               return new Object[] { archiveItem };\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/CreateMissingLowresStep.java b/server/-product/production/LOCAL/jobs/steps/CreateMissingLowresStep.java
deleted file mode 100644 (file)
index 19bad47..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.nio.file.Paths;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-import com.ibm.nosql.json.api.DB;\r
-import com.ibm.nosql.json.api.DBCollection;\r
-\r
-import user.commons.MediaCubeUndoMarker;\r
-import user.commons.nosql.NoSQLUtils;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class CreateMissingLowresStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               Object[] result = new Object[] { null, null, "%s", null, 0, true };\r
-               DB db = NoSQLUtils.getNoSQLDB();\r
-               DBCollection collection = db.getCollection("missing_lowres");\r
-               IItemManager manager = jobEngine.getItemManager();\r
-               Media media = getFirstUntranscodedMedia(manager, collection);\r
-\r
-               try {\r
-                       if (media == null) {\r
-                               logger.info(new MediaCubeUndoMarker(getSessionMarker().getSessionID()), "Nincs feldolgozandó hiány.");\r
-                               // throw new Exception("Nincs feldolgozandó hiány.");\r
-                               cancel();\r
-                               return null;\r
-                       }\r
-\r
-                       String name = media.getMediaFileRealName();\r
-                       result[0] = media;\r
-                       ArchiveItem archiveItem = new ArchiveItem();\r
-                       archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString());\r
-                       result[1] = archiveItem;\r
-                       collection.save(new BasicDBObject("name", name));\r
-                       logger.info(getSessionMarker(), "Processing mediaID: {}", media.getId());\r
-\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(getSessionMarker(), e.getMessage());\r
-                       throw e;\r
-               } finally {\r
-                       setProgress(100);\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {\r
-               Media[] result = new Media[] { null };\r
-               //MV\r
-               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC";\r
-\r
-               //HTV\r
-               //String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS";\r
-               manager.executeQuery(query, rs -> {\r
-                       try {\r
-                               long mediaId = rs.getLong(1);\r
-                               Media media = manager.getMedia(mediaId);\r
-                               //a nevgeneralas miatt az eredeti MediaFilesName nem jo, a pontos nev kell nekunk\r
-                               String name = media.getMediaFileRealName();\r
-                               logger.info(getSessionMarker(), "Checking {}", name);\r
-                               long existing = collection.find(new BasicDBObject("name", name)).count();\r
-                               if (existing > 0) {\r
-                                       logger.info(getSessionMarker(), "{} is on missing_lowres list", name);\r
-                                       return true;\r
-                               }\r
-\r
-                               result[0] = media;\r
-                       } catch (Exception e) {\r
-                               logger.error(e);\r
-                       }\r
-                       return false;\r
-               }, null);\r
-               return result[0];\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/ExternalCommand.java b/server/-product/production/LOCAL/jobs/steps/ExternalCommand.java
deleted file mode 100644 (file)
index 307f36d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-package user.jobengine.server.steps.shared;\r
-\r
-import java.io.BufferedReader;\r
-import java.io.InputStreamReader;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-public class ExternalCommand {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private ExternalProfile profile;\r
-\r
-       public ExternalCommand(ExternalProfile profile) {\r
-               this.profile = profile;\r
-       }\r
-\r
-       public String execute(String input, String output, boolean firstResponse, IExternalCallback responseCallBack) throws Exception {\r
-               List<String> arguments = getArguments(input, output);\r
-               List<String> command = new ArrayList<>();\r
-               command.add(profile.getExecutable());\r
-               command.addAll(arguments);\r
-\r
-               ProcessBuilder processBuilder = new ProcessBuilder();\r
-               processBuilder.command(command);\r
-\r
-               String result = null;\r
-               try {\r
-                       logger.info("Executing : {}", processBuilder.command());\r
-\r
-                       Process process = processBuilder.start();\r
-                       try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {\r
-                               String line = null;\r
-                               while ((line = reader.readLine()) != null) {\r
-                                       logger.debug("Process response: {}", line);\r
-                                       if (responseCallBack != null)\r
-                                               responseCallBack.onResponse(line);\r
-                                       //System.out.println(line);\r
-                                       if (line != null && line.length() > 0) {\r
-                                               result = line;\r
-                                               if (firstResponse)\r
-                                                       break;\r
-                                       }\r
-                               }\r
-                               int exitCode = process.waitFor();\r
-                               if (exitCode != 0) {\r
-                                       StringBuilder msg = new StringBuilder();\r
-                                       try (BufferedReader errReader = new BufferedReader(new InputStreamReader(process.getErrorStream()))) {\r
-                                               String errline = null;\r
-                                               while ((errline = errReader.readLine()) != null) {\r
-                                                       msg.append(errline);\r
-                                               }\r
-                                       } catch (Exception ex) {\r
-                                       }\r
-\r
-                                       throw new Exception("Exited with error code : " + exitCode + ". " + msg);\r
-                               }\r
-                       } catch (Exception e) {\r
-                               throw e;\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.error(e);\r
-                       throw e;\r
-               }\r
-\r
-               return result;\r
-       }\r
-\r
-       private List<String> getArguments(String input, String output) {\r
-               List<String> result = new ArrayList<>();\r
-\r
-               profile.getArguments().forEach(i -> {\r
-                       result.add(i.replace("%i", input).replace("%o", output));\r
-               });\r
-               return result;\r
-       }\r
-\r
-}
\ No newline at end of file
diff --git a/server/-product/production/LOCAL/jobs/steps/ExternalCommandExecutor.java b/server/-product/production/LOCAL/jobs/steps/ExternalCommandExecutor.java
deleted file mode 100644 (file)
index a34ff7f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-package user.jobengine.server.steps.shared;\r
-\r
-import user.commons.configuration.SystemConfiguration;\r
-\r
-public class ExternalCommandExecutor {\r
-\r
-       public void execute(String profileName, String input, String output, IExternalCallback responseCallBack) throws Exception {\r
-               ExternalCommand externalCommand = getExternalCommand(profileName);\r
-               externalCommand.execute(input, output, false, responseCallBack);\r
-       }\r
-\r
-       private ExternalCommand getExternalCommand(String profileName) throws Exception {\r
-               ExternalProfilesConfig config = SystemConfiguration.getInstance().load("settings/external-commands.yaml", ExternalProfilesConfig.class);\r
-\r
-               if (config == null)\r
-                       throw new Exception("Missing external-commands.yaml configuration");\r
-\r
-               ExternalProfile selectedProfile = null;\r
-               for (ExternalProfile profile : config.getProfiles()) {\r
-                       if (profileName.equals(profile.getName())) {\r
-                               selectedProfile = profile;\r
-                               break;\r
-                       }\r
-               }\r
-\r
-               if (selectedProfile == null)\r
-                       throw new Exception("Missing profile " + profileName + " in external-commands.yaml configuration");\r
-\r
-               return new ExternalCommand(selectedProfile);\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/ExternalProfile.java b/server/-product/production/LOCAL/jobs/steps/ExternalProfile.java
deleted file mode 100644 (file)
index 68e22f4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package user.jobengine.server.steps.shared;\r
-\r
-import java.util.List;\r
-\r
-public class ExternalProfile {\r
-       private String executable;\r
-       private String name;\r
-       private List<String> arguments;\r
-\r
-       public List<String> getArguments() {\r
-               return arguments;\r
-       }\r
-\r
-       public String getExecutable() {\r
-               return executable;\r
-       }\r
-\r
-       public String getName() {\r
-               return name;\r
-       }\r
-\r
-       public void setArguments(List<String> arguments) {\r
-               this.arguments = arguments;\r
-       }\r
-\r
-       public void setExecutable(String executable) {\r
-               this.executable = executable;\r
-       }\r
-\r
-       public void setName(String name) {\r
-               this.name = name;\r
-       }\r
-}
\ No newline at end of file
diff --git a/server/-product/production/LOCAL/jobs/steps/ExternalProfilesConfig.java b/server/-product/production/LOCAL/jobs/steps/ExternalProfilesConfig.java
deleted file mode 100644 (file)
index 7ef7729..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-package user.jobengine.server.steps.shared;\r
-\r
-import java.util.List;\r
-\r
-public class ExternalProfilesConfig {\r
-       private List<ExternalProfile> profiles;\r
-\r
-       public List<ExternalProfile> getProfiles() {\r
-               return profiles;\r
-       }\r
-\r
-       public void setProfiles(List<ExternalProfile> profiles) {\r
-               this.profiles = profiles;\r
-       }\r
-}
\ No newline at end of file
diff --git a/server/-product/production/LOCAL/jobs/steps/FileCopyStep.java b/server/-product/production/LOCAL/jobs/steps/FileCopyStep.java
deleted file mode 100644 (file)
index c417255..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.apache.logging.log4j.Marker;\r
-\r
-import user.commons.StoreUri;\r
-import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class FileCopyStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager manager;\r
-       private Marker marker;\r
-\r
-       private void check(String sourceProtocol, String sourcePath, String sourceFileName, String targetProtocol, String targetPath, String targetFileName,\r
-                       IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
-               if (jobEngine == null) {\r
-                       logger.error(marker, "A folyamatkezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing JobEngine reference.");\r
-               }\r
-               manager = jobEngine.getItemManager();\r
-               if (manager == null) {\r
-                       logger.error(marker, "Az adatbáziskezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing ItemManager reference.");\r
-               }\r
-               if (sourceProtocol == null) {\r
-                       logger.error(marker, "A forrás protokol bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'sourceProtocol' input parameter missing.");\r
-               }\r
-               if (sourcePath == null) {\r
-                       logger.error(marker, "A forrás fájl elérés bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'sourcePath' input parameter missing.");\r
-               }\r
-               if (sourceFileName == null) {\r
-                       logger.error(marker, "A forrás fájlnév bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'sourceFileName' input parameter missing.");\r
-               }\r
-               if (targetProtocol == null) {\r
-                       logger.error(marker, "A cél protokol bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetProtocol' input parameter missing.");\r
-               }\r
-               if (targetPath == null) {\r
-                       logger.error(marker, "A cél fájl elérés bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetPath' input parameter missing.");\r
-               }\r
-               if (targetFileName == null) {\r
-                       logger.error(marker, "A cél fájlnév bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetFileName' input parameter missing.");\r
-               }\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(String sourceProtocol, String sourcePath, String sourceFileName, String targetProtocol, String targetPath, String targetFileName,\r
-                       int killDateDays, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-\r
-               check(sourceProtocol, sourcePath, sourceFileName, targetProtocol, targetPath, targetFileName, jobEngine, jobRuntime);\r
-\r
-               StoreUri source = null;\r
-               StoreUri target = null;\r
-\r
-               try {\r
-                       source = manager.createStoreUri(Enum.valueOf(RemoteStoreProtocol.class, sourceProtocol), sourcePath);\r
-                       target = manager.createStoreUri(Enum.valueOf(RemoteStoreProtocol.class, targetProtocol), targetPath);\r
-                       source.addProgressListener(new IProgressEventListener() {\r
-                               @Override\r
-                               public void progressChanged(ProgressEvent evt) {\r
-                                       jobRuntime.incrementProgress(evt.getProgress());\r
-                               }\r
-                       });\r
-\r
-                       source.transferFrom(target, sourceFileName, targetFileName);\r
-                       if (killDateDays > -1)\r
-                               EscortFiles.createUNCKillDate(targetPath, targetFileName, killDateDays, marker);\r
-\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       throw e;\r
-               } finally {\r
-                       if (source != null) {\r
-                               source.cleanUp();\r
-                       }\r
-                       if (target != null) {\r
-                               target.cleanUp();\r
-                       }\r
-               }\r
-\r
-               return null;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/FileSearchFilterOptions.java b/server/-product/production/LOCAL/jobs/steps/FileSearchFilterOptions.java
deleted file mode 100644 (file)
index 436c3be..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.nio.file.Path;\r
-import java.util.regex.Matcher;\r
-import java.util.regex.Pattern;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-public class FileSearchFilterOptions {\r
-\r
-       private BasicDBObject filter;\r
-\r
-       public FileSearchFilterOptions(BasicDBObject filter) {\r
-               this.filter = filter;\r
-       }\r
-\r
-       public boolean acceptFile(Path file) {\r
-               if (filter == null)\r
-                       return true;\r
-\r
-               if (filter.containsKey("fileName")) {\r
-                       //.*\.(sh|ini|conf|vhost|xml|php)$\r
-                       String fileNamePattern = filter.getString("fileName");\r
-                       if (fileNamePattern == null || fileNamePattern.trim().length() == 0)\r
-                               return true;\r
-\r
-                       Pattern pattern = Pattern.compile(fileNamePattern, Pattern.CASE_INSENSITIVE);\r
-\r
-                       Matcher matcher = pattern.matcher(file.getFileName().toString());\r
-                       if (matcher.find())\r
-                               return true;\r
-\r
-               }\r
-\r
-               return false;\r
-       }\r
-\r
-       public boolean preAcceptDirectory(Path file) {\r
-               return true;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/HSMMigrateStep.java b/server/-product/production/LOCAL/jobs/steps/HSMMigrateStep.java
deleted file mode 100644 (file)
index 6b85f1d..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.BufferedInputStream;\r
-import java.io.BufferedOutputStream;\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.FileOutputStream;\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-import java.io.OutputStream;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.attribute.BasicFileAttributes;\r
-import java.text.SimpleDateFormat;\r
-import java.util.Arrays;\r
-import java.util.LinkedHashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.apache.commons.io.FilenameUtils;\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.apache.logging.log4j.Marker;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-import com.ibm.nosql.json.api.DB;\r
-import com.ibm.nosql.json.api.DBCollection;\r
-import com.ibm.nosql.json.api.QueryBuilder;\r
-\r
-import user.commons.IEntityBase;\r
-import user.commons.MediaCubeMarker;\r
-import user.commons.nosql.NoSQLUtils;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.MediaFile;\r
-import user.jobengine.db.MediaFileDAO;\r
-import user.mediacube.metadata.interfaces.IMetadata;\r
-import user.mediacube.metadata.interfaces.IMetadataProvider;\r
-import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
-import user.mediacube.metadata.interfaces.MetadataProviderType;\r
-import user.mediacube.metadata.interfaces.MetadataType;\r
-import user.mediacube.metadata.interfaces.PlanAirMetadataListOptions;\r
-\r
-public class HSMMigrateStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String MXFEXT = ".mxf";\r
-       private static final String MOVEXT = ".mov";\r
-       private Marker marker = null;\r
-       private IMetadataProvider hsmProvider;\r
-       private Map<String, BasicDBObject> tapeContents = new LinkedHashMap<>();\r
-       private DBCollection excludes;\r
-       private DBCollection fileHistory;\r
-       private DBCollection volumeHistory;\r
-       private DB db;\r
-       private IMetadataProvider planairProvider;\r
-       private SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");\r
-\r
-       private void cleanupHistory() {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (fileHistory == null)\r
-                       fileHistory = db.getCollection("hsm_migrate_file_history");\r
-               if (volumeHistory == null)\r
-                       volumeHistory = db.getCollection("hsm_migrate_volume_history");\r
-               fileHistory.drop();\r
-               volumeHistory.drop();\r
-       }\r
-\r
-       private BasicDBObject createMetadata(String volumeName, String fileName) throws Exception {\r
-\r
-               Path filePath = Paths.get(fileName);\r
-               String mediaHouseId = FilenameUtils.removeExtension(filePath.getFileName().toString());\r
-               BasicDBObject result = null;\r
-               try {\r
-                       result = getPlanAirMetadata(mediaHouseId);\r
-               } catch (Exception e) {\r
-\r
-                       logger.error("PlanAir metadata error", e);\r
-                       //nem latja a drivert pl.\r
-                       //throw e;\r
-               }\r
-\r
-               if (result == null) {\r
-                       result = new BasicDBObject();\r
-                       BasicFileAttributes attr = Files.readAttributes(filePath, BasicFileAttributes.class);\r
-                       result.put("itemHouseId", df.format(attr.lastModifiedTime().toMillis()));\r
-                       result.put("itemTitle", filePath.getParent().toString());\r
-                       result.put("mediaHouseId", mediaHouseId);\r
-                       result.put("mediaTitle", fileName);\r
-                       result.put("mediaDescription", volumeName);\r
-                       result.put("mediaType", "Generic");\r
-               }\r
-               result.put("userName", "mediacube");\r
-               return result;\r
-       }\r
-\r
-       @SuppressWarnings("serial")\r
-       @StepEntry\r
-       public Object[] execute(String sourceLocation, String targetLocation) throws Exception {\r
-               marker = getJobRuntime().getSessionMarker();\r
-               //remove from prod\r
-               //cleanupHistory();\r
-               hsmProvider = getMetadataProvider(MetadataProviderType.HSM);\r
-               if (hsmProvider == null)\r
-                       throw new NullPointerException("No HSM metadata provider available");\r
-               planairProvider = getMetadataProvider(MetadataProviderType.PLANAIR);\r
-               if (planairProvider == null)\r
-                       throw new NullPointerException("No PLANAIR metadata provider available");\r
-               Path targetPath = Paths.get(targetLocation);\r
-               try {\r
-                       List<IMetadata> volumes = hsmProvider.list(new BasicDBObject());\r
-                       for (IMetadata volume : volumes) {\r
-                               String volumeName = volume.getTitle();\r
-\r
-                               BasicDBObject historyResult = queryVolumeHistory(volumeName);\r
-                               if (historyResult != null) {\r
-                                       logger.info(marker, "A kazetta már feldolgozásra került: {}", volumeName);\r
-                                       continue;\r
-                               }\r
-                               logger.info(marker, "A kazetta feldolgozása elindul: {}", volumeName);\r
-                               List<IMetadata> contents = getContents(volumeName);\r
-                               int p = 0;\r
-                               boolean oneSuccess = false;\r
-                               boolean hasError = false;\r
-                               for (IMetadata content : contents) {\r
-                                       BasicDBObject c = content.asJSON();\r
-                                       String hsmFileName = c.getString("fileName");\r
-                                       long contentFileSize = NoSQLUtils.asLong(c, "fileSize");\r
-                                       if (!tapeContents.containsKey(hsmFileName)) {\r
-                                               tapeContents.put(hsmFileName, c);\r
-                                               Path sourceFilePath = Paths.get(sourceLocation, hsmFileName);\r
-                                               if (contentFileSize < Files.getFileStore(targetPath).getUsableSpace()) {\r
-                                                       Path targetFilePath = Paths.get(targetLocation, sourceFilePath.getFileName().toString());\r
-\r
-                                                       try {\r
-                                                               if (processHSMFile(volumeName, hsmFileName, sourceFilePath, targetFilePath)) {\r
-                                                                       oneSuccess = true;\r
-                                                               }\r
-                                                       } catch (Exception e) {\r
-                                                               hasError = true;\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                                       setProgress(p++ * 100 / contents.size());\r
-\r
-                                       if (getJobRuntime().isWaitingCancel()) {\r
-                                               logger.info("Job canceled by user");\r
-                                               //ne mentsuk a szalagot meg\r
-                                               return null;\r
-                                       }\r
-\r
-                               }\r
-\r
-                               if (oneSuccess && !hasError) {\r
-                                       saveVolumeHistory(volumeName);\r
-                                       String subject = "A kazetta eltávolítható a HSM rendszerből: " + volumeName;\r
-                                       logger.info(new MediaCubeMarker() {\r
-                                               {\r
-                                                       setSubject(subject);\r
-                                               }\r
-                                       }, subject);\r
-                               }\r
-\r
-                               //ha mar sikerult valamit archivalni kilepunk\r
-                               if (oneSuccess)\r
-                                       break;\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.error(marker, "Hiba a migráció során. A rendszer hibaüzenete: {}", e.getMessage());\r
-                       throw e;\r
-               }\r
-\r
-               return null;\r
-       }\r
-\r
-       private List<IMetadata> getContents(String volumeName) throws Exception {\r
-               List<IMetadata> contents = null;\r
-               contents = hsmProvider.list(new BasicDBObject("volumeName", volumeName));\r
-               return contents;\r
-       }\r
-\r
-       protected IMetadataProvider getMetadataProvider(MetadataProviderType type) {\r
-               IMetadataProviderFactory factory = getService(IMetadataProviderFactory.class);\r
-               if (factory == null)\r
-                       return null;\r
-               return factory.getProvider(type);\r
-       }\r
-\r
-       private BasicDBObject getPlanAirMetadata(String mediaHouseId) throws Exception {\r
-               PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();\r
-               opt.setSearch(mediaHouseId);\r
-\r
-               List<IMetadata> result = null;\r
-               opt.setType(MetadataType.Material);\r
-               result = planairProvider.list(opt);\r
-               if (result.size() != 0)\r
-                       return result.get(0).asJSON();\r
-\r
-               opt.setType(MetadataType.Promo);\r
-               result = planairProvider.list(opt);\r
-               if (result.size() != 0)\r
-                       return result.get(0).asJSON();\r
-\r
-               opt.setType(MetadataType.AD);\r
-               result = planairProvider.list(opt);\r
-               if (result.size() != 0)\r
-                       return result.get(0).asJSON();\r
-\r
-               return null;\r
-       }\r
-\r
-       //true if need copy\r
-       public boolean prepareCopy(String hsmFileName, Path source, Path target) throws IOException {\r
-               boolean result = true;\r
-               BasicDBObject excludeResult = queryExclude(hsmFileName);\r
-               if (excludeResult != null) {\r
-                       logger.warn(marker, "Kivételként megjelölt: {}", hsmFileName);\r
-                       return false;\r
-               }\r
-\r
-               File sourceFile = source.toFile();\r
-               File targetFile = target.toFile();\r
-\r
-               if (!sourceFile.exists()) {\r
-                       logger.warn(marker, "A forrás nem elérhető: {}", source);\r
-                       return false;\r
-               }\r
-\r
-               //              BasicDBObject historyResult = queryFileHistory(contentFileName);\r
-               //              if (historyResult != null)\r
-               //                      return false;\r
-\r
-               //              if (!mediaFile.getName().toLowerCase().endsWith(MOVEXT.toLowerCase()) && !mediaFile.getName().toLowerCase().endsWith(MXFEXT.toLowerCase()))\r
-               //                      return;\r
-               //              logger.info("Start copy from {} to {}", sourceFilePath, targetFilePath);\r
-\r
-               boolean targetExists = targetFile.exists();\r
-\r
-               long targetLength = targetFile.length();\r
-               long sourceLength = sourceFile.length();\r
-\r
-               if (targetLength == sourceLength) {\r
-                       logger.warn(marker, "A fájl már fel van dolgozva: {}, {} -> {}", source, sourceLength, targetLength);\r
-                       return false;\r
-               }\r
-\r
-               if (targetLength > sourceLength) {\r
-                       logger.warn(marker, "A célfájl nagyobb, törlöm: {}", target);\r
-                       Files.delete(target);\r
-                       targetLength = 0;\r
-                       targetExists = false;\r
-               }\r
-\r
-               if (targetExists) {\r
-                       logger.warn(marker, "A fájl már létezik, a másolás folytatódik: {}, {} -> {}", target, sourceLength, targetLength);\r
-               } else\r
-                       logger.warn(marker, "Migrálás: {}, {} -> {}", source, sourceLength, targetLength);\r
-\r
-               return result;\r
-       }\r
-\r
-       private boolean processHSMFile(String volumeName, String hsmFileName, Path sourceFilePath, Path targetFilePath) throws Exception {\r
-               int repeat = 4;\r
-               boolean successCopy = false;\r
-\r
-               IItemManager manager = getManager();\r
-               MediaFileDAO mfDAO = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);\r
-               List<IEntityBase> mediaFiles = mfDAO.getByHouseId(sourceFilePath.getFileName().toString());\r
-               if (mediaFiles != null && mediaFiles.size() > 0) {\r
-                       logger.warn(marker, "Már archivált: {}", hsmFileName);\r
-                       return false;\r
-               }\r
-\r
-               if (prepareCopy(hsmFileName, sourceFilePath, targetFilePath)) {\r
-                       while (repeat > 0) {\r
-                               try {\r
-                                       resumeableCopy(sourceFilePath, targetFilePath);\r
-                                       repeat = 0;\r
-                                       successCopy = true;\r
-                               } catch (Exception e) {\r
-                                       if (Files.exists(targetFilePath) && targetFilePath.toFile().length() == 0)\r
-                                               Files.delete(targetFilePath);\r
-                                       //logger.warn(marker, "Hiba a másolás során: {} ({})", sourceFilePath, e.getMessage());\r
-                                       repeat--;\r
-                               }\r
-                       }\r
-               }\r
-               String metadataFileName = sourceFilePath.getFileName() + EscortFiles.DOT_JSON;\r
-               Path metadataPath = Paths.get(targetFilePath.getParent().toString(), EscortFiles.STATUSFOLDER, metadataFileName);\r
-               boolean createMetadata = Files.exists(targetFilePath) && !Files.exists(metadataPath);\r
-\r
-               if (successCopy || createMetadata) {\r
-                       String metadata = null;\r
-                       try {\r
-                               metadata = createMetadata(volumeName, hsmFileName).toPrettyString("");\r
-                               EscortFiles.createMetadata(targetFilePath.getParent().toString(), targetFilePath.getFileName().toString(), metadata);\r
-                               //saveFileHistory(contentFileName);\r
-\r
-                       } catch (Exception e) {\r
-                               logger.error(marker, "Metadata error", e);\r
-                               return false;\r
-                       }\r
-                       return true;\r
-               }\r
-\r
-               logger.error(marker, "A fájl másolása nem lehetséges: {}", sourceFilePath);\r
-               return false;\r
-       }\r
-\r
-       public BasicDBObject queryExclude(String fileName) {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (excludes == null)\r
-                       excludes = db.getCollection("hsm_migrate_exclude");\r
-               Path filePath = Paths.get(fileName);\r
-               String pureFileName = FilenameUtils.removeExtension(filePath.getFileName().toString());\r
-               QueryBuilder qb = QueryBuilder.start("name").in(Arrays.asList(fileName, pureFileName));\r
-               BasicDBObject exceptionResult = NoSQLUtils.asSingle(excludes.find(qb.get()));\r
-               return exceptionResult;\r
-       }\r
-\r
-       public BasicDBObject queryFileHistory(String fileName) {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (fileHistory == null)\r
-                       fileHistory = db.getCollection("hsm_migrate_file_history");\r
-               QueryBuilder qb = QueryBuilder.start("name").in(Arrays.asList(fileName));\r
-               BasicDBObject historyResult = NoSQLUtils.asSingle(fileHistory.find(qb.get()));\r
-               return historyResult;\r
-       }\r
-\r
-       public BasicDBObject queryVolumeHistory(String volumeName) {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (volumeHistory == null)\r
-                       volumeHistory = db.getCollection("hsm_migrate_volume_history");\r
-               QueryBuilder qb = QueryBuilder.start("name").in(Arrays.asList(volumeName));\r
-               BasicDBObject historyResult = NoSQLUtils.asSingle(volumeHistory.find(qb.get()));\r
-               return historyResult;\r
-       }\r
-\r
-       public void resumeableCopy(Path source, Path target) throws Exception {\r
-               File sourceFile = source.toFile();\r
-               File targetFile = target.toFile();\r
-               boolean targetExists = targetFile.exists();\r
-\r
-               long targetLength = targetFile.length();\r
-               long sourceLength = sourceFile.length();\r
-\r
-               try (InputStream in = new BufferedInputStream(new FileInputStream(sourceFile));\r
-                               OutputStream out = new BufferedOutputStream(new FileOutputStream(targetFile, targetExists))) {\r
-\r
-                       byte[] buffer = new byte[128 * 1024];\r
-                       int lengthRead;\r
-\r
-                       if (targetExists)\r
-                               in.skip(targetLength);\r
-\r
-                       while ((lengthRead = in.read(buffer)) > 0) {\r
-                               out.write(buffer, 0, lengthRead);\r
-                               out.flush();\r
-                               targetLength = targetFile.length();\r
-                               if (targetLength > sourceLength) {\r
-                                       throw new Exception("Hiba! A fájl túl nagy lett.");\r
-                               }\r
-\r
-                               if (getJobRuntime().isWaitingCancel()) {\r
-                                       break;\r
-                               }\r
-                       }\r
-\r
-                       targetLength = targetFile.length();\r
-                       sourceLength = sourceFile.length();\r
-                       if (targetLength != sourceLength) {\r
-                               throw new Exception("Hiba! A fájl mérete nem egyezik.");\r
-                       }\r
-               }\r
-       }\r
-\r
-       private void saveFileHistory(String fileName) {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (fileHistory == null)\r
-                       fileHistory = db.getCollection("hsm_migrate_file_history");\r
-               BasicDBObject item = new BasicDBObject();\r
-               item.put("name", fileName);\r
-               fileHistory.save(item);\r
-\r
-       }\r
-\r
-       private void saveVolumeHistory(String volumeName) {\r
-               if (db == null)\r
-                       db = NoSQLUtils.getNoSQLDB();\r
-               if (volumeHistory == null)\r
-                       volumeHistory = db.getCollection("hsm_migrate_volume_history");\r
-               BasicDBObject item = new BasicDBObject();\r
-               item.put("name", volumeName);\r
-               volumeHistory.save(item);\r
-\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/IExternalCallback.java b/server/-product/production/LOCAL/jobs/steps/IExternalCallback.java
deleted file mode 100644 (file)
index 1e07191..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-package user.jobengine.server.steps.shared;\r
-\r
-public interface IExternalCallback {\r
-       void onResponse(String data);\r
-}
\ No newline at end of file
diff --git a/server/-product/production/LOCAL/jobs/steps/MXFCutterStep.java b/server/-product/production/LOCAL/jobs/steps/MXFCutterStep.java
deleted file mode 100644 (file)
index 58a5944..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-package user.jobengine.server.steps;\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.Marker;\r
-\r
-import user.commons.RemoteFile;\r
-import user.commons.StoreUri;\r
-import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-//import user.jobengine.db.Media;\r
-import user.jobengine.db.ArchivedMedia;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.Store;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class MXFCutterStep extends JobStep {\r
-       private static final String TARGETNAMEPATTERN = "-ARCH-%s";\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager manager;\r
-       private StoreUri tempTargetUri;\r
-       private StoreUri tempSourceUri;\r
-       private String sourceFileName;\r
-       private Marker marker;\r
-       private int nexioPort;\r
-       private String nexioUserName, nexioPassword;\r
-       private String nexioHost;\r
-\r
-       protected void checkTargetPath(String targetPath) {\r
-               if (StringUtils.isBlank(targetPath)) {\r
-                       logger.error(marker, "A folyamat 'targetPath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetPath' input parameter missing.");\r
-               }\r
-       }\r
-\r
-       protected StoreUri createTargetUri(IItemManager manager, String targetPath) throws NullPointerException {\r
-               StoreUri result = null;\r
-               result = manager.createStoreUri(RemoteStoreProtocol.FTP, nexioHost);\r
-               result.setPortNumber(nexioPort);\r
-               result.setUserName(nexioUserName);\r
-               result.setPassword(nexioPassword);\r
-\r
-               return result;\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchivedMedia archivedMedia, String targetPath, String houseId, String successRecipient, int killDateDays, boolean useNexioTarget,\r
-                       String nexioAgency, int nexioPort, String nexioUserName, String nexioPassword, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               this.nexioPort = nexioPort;\r
-               this.nexioUserName = nexioUserName;\r
-               this.nexioPassword = nexioPassword;\r
-               nexioHost = System.getProperty("nexio.host");\r
-               marker = jobRuntime.getSessionMarker();\r
-\r
-               if (useNexioTarget && archivedMedia.getTcIn() != null && archivedMedia.getTcOut() != null) {\r
-                       setAndCheck(archivedMedia, houseId, targetPath, useNexioTarget, jobEngine);\r
-\r
-                       final IJobRuntime runtime = jobRuntime;\r
-                       sourceFileName = houseId + TARGETNAMEPATTERN;\r
-                       tempSourceUri.addProgressListener(new IProgressEventListener() {\r
-                               @Override\r
-                               public void progressChanged(ProgressEvent evt) {\r
-                                       runtime.incrementProgress(evt.getProgress());\r
-                               }\r
-                       });\r
-\r
-                       RemoteFile result = tempSourceUri.transferFrom(tempTargetUri, sourceFileName, sourceFileName);\r
-\r
-                       EscortFiles.setNEXIOKillDate(killDateDays, houseId, nexioAgency, tempTargetUri);\r
-\r
-                       logger.info("A {} videó kivágva {}s - {}s", sourceFileName, archivedMedia.getTcIn(), archivedMedia.getTcOut());\r
-               }\r
-\r
-               return null;\r
-       }\r
-\r
-       // private String getSourceFileName(ArchivedMedia archivedMedia, Store\r
-       // store) {\r
-       // List<MediaFile> mediaFiles = archivedMedia.getMedia().getMediaFiles();\r
-       // if (mediaFiles == null)\r
-       // return null;\r
-       // for (MediaFile mediaFile : mediaFiles) {\r
-       // if (mediaFile.getStore().getId() == store.getId())\r
-       // return mediaFile.getRelativePath();\r
-       // }\r
-       // return null;\r
-       // }\r
-\r
-       private void setAndCheck(ArchivedMedia archivedMedia, String houseId, String targetPath, boolean useNexioTarget, IJobEngine jobEngine) {\r
-               if (jobEngine == null) {\r
-                       logger.error(marker, "A folyamatkezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing JobEngine reference.");\r
-               }\r
-               manager = jobEngine.getItemManager();\r
-               if (manager == null) {\r
-                       logger.error(marker, "Az adatbáziskezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing ItemManager reference.");\r
-               }\r
-               if (archivedMedia == null) {\r
-                       logger.error(marker, "A folyamat 'mediaCubeMedia' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'mediaCubeMedia' input parameter missing.");\r
-               }\r
-               checkTargetPath(targetPath);\r
-               if (StringUtils.isBlank(houseId)) {\r
-                       logger.error(marker, "A folyamat 'houseId' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'houseId' input parameter missing.");\r
-               }\r
-               Store tsmStore = manager.getSystemStore(false);\r
-               if (tsmStore == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás nem elérhető.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM Store.");\r
-               }\r
-\r
-               tempSourceUri = manager.createStoreUri(RemoteStoreProtocol.LOCAL, targetPath);\r
-               if (tempSourceUri == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás paraméterei nem elérhetőek.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM StoreUri.");\r
-               }\r
-               tempTargetUri = createTargetUri(manager, targetPath);\r
-               // sourceFileName = getSourceFileName(archivedMedia, tsmStore);\r
-               if (sourceFileName == null) {\r
-                       logger.error(marker, "Adatbázis bejegyzés hiba, a visszatöltendő fájl neve nem található.");\r
-                       throw new NullPointerException("Database error, missing MediaFile 'relativePath'.");\r
-               }\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/MediaCubeClient.java b/server/-product/production/LOCAL/jobs/steps/MediaCubeClient.java
deleted file mode 100644 (file)
index 840925e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import javax.ws.rs.client.Entity;\r
-import javax.ws.rs.client.Invocation.Builder;\r
-import javax.ws.rs.core.MediaType;\r
-import javax.ws.rs.core.MultivaluedMap;\r
-import javax.ws.rs.core.Response;\r
-import javax.ws.rs.core.Response.Status;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r
-import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r
-import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\r
-import org.jboss.resteasy.specimpl.MultivaluedMapImpl;\r
-\r
-import com.ibm.nosql.json.JSONUtil;\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-public class MediaCubeClient {\r
-       private static Logger logger = LogManager.getLogger();\r
-       private ResteasyWebTarget webTarget;\r
-\r
-       public MediaCubeClient(String address) {\r
-               ResteasyClient client = new ResteasyClientBuilder().build();\r
-               webTarget = client.target(address);\r
-       }\r
-\r
-       BasicDBObject getDbObject(String json) {\r
-               BasicDBObject result = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
-\r
-               if (result == null)\r
-                       throw new NullPointerException("API Result is null!");\r
-\r
-               if (result.containsKey("exception")) {\r
-                       BasicDBObject e = (BasicDBObject) result.get("exception");\r
-                       throw new RuntimeException(e.getString("message"));\r
-               }\r
-               //{"exception":{"message":"Invalid credentials.","publicName":"AuthenticationFailedException"}}\r
-               return result;\r
-       }\r
-\r
-       public BasicDBObject getStatus(long jobId) {\r
-               MultivaluedMap<String, Object> vars = new MultivaluedMapImpl<>();\r
-               vars.add("jobId", jobId);\r
-               Response response = query("services/rest/jobengine/jobstatus", vars).get();\r
-               if (response.getStatus() != Status.OK.getStatusCode()) {\r
-                       logger.error(response.readEntity(String.class));\r
-                       System.out.println(response.readEntity(String.class));\r
-                       return null;\r
-               }\r
-               String result = response.readEntity(String.class);\r
-               return getDbObject(result);\r
-       }\r
-\r
-       private Builder query(String path, MultivaluedMap<String, Object> vars) {\r
-               ResteasyWebTarget target = webTarget.path(path).queryParams(vars);\r
-               Builder result = target.request();\r
-               return result;\r
-       }\r
-\r
-       public long startjob(String template, String name, BasicDBObject jobParams) throws Exception {\r
-               MultivaluedMap<String, Object> vars = new MultivaluedMapImpl<>();\r
-               vars.add("template", template);\r
-               vars.add("name", name);\r
-               Response response = query("services/rest/jobengine/startjob", vars).post(Entity.entity(jobParams.toString(), MediaType.APPLICATION_JSON));\r
-\r
-               if (response.getStatus() != Status.OK.getStatusCode()) {\r
-                       logger.error(response.readEntity(String.class));\r
-                       return 0;\r
-               }\r
-\r
-               String resultObject = response.readEntity(String.class);\r
-               return Long.parseLong(resultObject);\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/MediaToolStep.java b/server/-product/production/LOCAL/jobs/steps/MediaToolStep.java
deleted file mode 100644 (file)
index c0c56f6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-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.Marker;\r
-\r
-import user.commons.mediatool.MediaInfo;\r
-import user.jobengine.db.Media;\r
-\r
-public class MediaToolStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private Marker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia) throws Exception {\r
-               marker = getSessionMarker();\r
-\r
-               //TODO ez most minden esetben ujranezi\r
-               //              if (mediaCubeMedia.getLength() > 0)\r
-               //                      return null;\r
-\r
-               Path filePath = Paths.get(archiveItem.getMediaFile());\r
-               MediaInfo mi = new MediaInfo(filePath);\r
-               try {\r
-                       mi.process();\r
-                       long frames = mi.getFrames();\r
-                       if (frames > 0) {\r
-                               mediaCubeMedia.setLength(frames);\r
-                               getManager().modify(mediaCubeMedia);\r
-                       }\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(marker, "A '{}' média analizálása sikertelen. A  rendszer üzenete: {}", filePath, e.getMessage());\r
-               }\r
-               return null;\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/MetadataTransformStep.java b/server/-product/production/LOCAL/jobs/steps/MetadataTransformStep.java
deleted file mode 100644 (file)
index d193820..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.attribute.FileAttribute;\r
-import java.nio.file.attribute.PosixFilePermission;\r
-import java.nio.file.attribute.PosixFilePermissions;\r
-import java.util.Date;\r
-import java.util.Set;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.apache.logging.log4j.Marker;\r
-\r
-import com.ibm.nosql.json.api.BasicDBList;\r
-\r
-import user.jobengine.db.Item;\r
-import user.jobengine.db.ItemManager;\r
-import user.jobengine.db.ItemType;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-/**\r
- * Itemek es mediak krealasa a ArchiveItem objektum alapjan.\r
- *\r
- * @author robi\r
- */\r
-public class MetadataTransformStep extends JobStep {\r
-       private static final String CONFLICT = ".CONFLICT";\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private static final String ITEM_MANAGER_IS_NULL = "ItemManager is null";\r
-       public static final String DEFAULT_MEDIATYPE = "Generic";\r
-       private ItemManager itemManager;\r
-\r
-       private Marker marker;;\r
-\r
-       private void addTags(ArchiveItem archiveItem, Media mediaCubeMedia) {\r
-               BasicDBList tags = archiveItem.getTags();\r
-               if (tags != null) {\r
-                       for (Object tag : tags) {\r
-\r
-                               try {\r
-                                       String tagText = String.valueOf(tag);\r
-                                       itemManager.addMediaTag(tagText, mediaCubeMedia.getId());\r
-                                       System.out.println();\r
-\r
-                               } catch (Exception e) {\r
-                                       logger.catching(e);\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       private void checkDuplicates(ArchiveItem archiveItem, String sourceFileName) throws Exception {\r
-               if (itemManager.isMediaFileExists(sourceFileName)) {\r
-                       try {\r
-                               Path sourcePath = Paths.get(archiveItem.getMediaFile());\r
-                               Path parent = sourcePath.getParent();\r
-                               Path conflictPath = Paths.get(parent.toString(), CONFLICT);\r
-                               File folder = conflictPath.toFile();\r
-                               if (!folder.exists() || !folder.isDirectory()) {\r
-                                       Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");\r
-                                       FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);\r
-                                       try {\r
-                                               Files.createDirectories(conflictPath, attr);\r
-                                       } catch (Exception e) {\r
-                                               try {\r
-                                                       Files.createDirectory(conflictPath);\r
-                                               } catch (Exception e1) {\r
-                                                       logger.catching(e);\r
-                                                       throw e;\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               Files.move(sourcePath, Paths.get(conflictPath.toString(), sourceFileName + (new Date()).getTime()));\r
-                       } catch (Exception e1) {\r
-                               logger.catching(e1);\r
-                               logger.error(marker, "Hiba az '{}' állomány mappába másolásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage());\r
-                       }\r
-                       throw new Exception("Az '" + sourceFileName + "' állomány már megtalálható az archívumban, archiválása nem lehetséges.");\r
-               }\r
-       }\r
-\r
-       private Item createItem(ArchiveItem archiveItem) {\r
-               Item mediaCubeItem = getExistingItem(archiveItem.getItemHouseId(), archiveItem.getItemTitle());\r
-               if (mediaCubeItem == null)\r
-                       mediaCubeItem = itemManager.createItem(DEFAULT_MEDIATYPE, archiveItem.getItemTitle(), archiveItem.getItemDescription(),\r
-                                       archiveItem.getItemHouseId());\r
-               return mediaCubeItem;\r
-       }\r
-\r
-       private Media createMedia(ArchiveItem archiveItem, Item mediaCubeItem, String mediaType) {\r
-               Media mediaCubeMedia;\r
-               mediaCubeMedia = itemManager.createMedia(mediaType, archiveItem.getMediaTitle(), archiveItem.getMediaDescription(), archiveItem.getMediaHouseId());\r
-               mediaCubeMedia.setLength(archiveItem.getDuration());\r
-               mediaCubeItem.appendMedia(mediaCubeMedia);\r
-\r
-               return mediaCubeMedia;\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchiveItem archiveItem, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-               Media mediaCubeMedia = null;\r
-               itemManager = (ItemManager) jobEngine.getItemManager();\r
-               if (itemManager == null)\r
-                       throw new NullPointerException(ITEM_MANAGER_IS_NULL);\r
-               try {\r
-                       File sourceMediaFile = new File(archiveItem.getMediaFile());\r
-                       String sourceFileName = sourceMediaFile.getName();\r
-                       checkDuplicates(archiveItem, sourceFileName);\r
-                       Item mediaCubeItem = createItem(archiveItem);\r
-                       jobRuntime.incrementProgress(50);\r
-                       String mediaType = getCreateType(archiveItem);\r
-                       mediaCubeMedia = createMedia(archiveItem, mediaCubeItem, mediaType);\r
-                       //ha itemid 0 akkor merge, egyebkent media insert\r
-\r
-                       if (mediaCubeItem.getId() == 0)\r
-                               itemManager.mergeItemStructure(mediaCubeItem);\r
-                       else {\r
-                               mediaCubeMedia.setItemId(mediaCubeItem.getId());\r
-                               mediaCubeMedia.add();\r
-                       }\r
-\r
-                       addTags(archiveItem, mediaCubeMedia);\r
-\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       String fileName = new File(archiveItem.getMediaFile()).getName();\r
-                       logger.error(marker, "Az '{}' állomány nem archiválható, mert a metaadat transzformáció sikertelen. A rendszer üzenete: {}", fileName,\r
-                                       e.getMessage());\r
-                       if (!archiveItem.removeCatchedFile())\r
-                               logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető.", fileName);\r
-                       throw e;\r
-               } finally {\r
-                       jobRuntime.incrementProgress(100);\r
-               }\r
-               return new Object[] { mediaCubeMedia };\r
-       }\r
-\r
-       private String getCreateType(ArchiveItem archiveItem) {\r
-               String mediaType = archiveItem.getMediaType();\r
-               if (mediaType == null || mediaType.length() == 0)\r
-                       mediaType = DEFAULT_MEDIATYPE;\r
-               else {\r
-                       ItemType mediaItemType = itemManager.getItemType(mediaType);\r
-                       if (mediaItemType == null)\r
-                               itemManager.createItemType(mediaType, mediaType).add();\r
-               }\r
-               return mediaType;\r
-       }\r
-\r
-       private Item getExistingItem(String itemHouseId, String itemTitle) {\r
-               Item[] result = new Item[] { null };\r
-               String sql = String.format("select id from item where houseid='%s' and title='%s'", itemHouseId, itemTitle);\r
-               itemManager.executeQuery(sql, rs -> {\r
-                       long id = rs.getLong("id");\r
-                       result[0] = itemManager.getItem(id);\r
-                       return true;\r
-               }, null);\r
-               return result[0];\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/OutputPathAndNameSelectorStep.java b/server/-product/production/LOCAL/jobs/steps/OutputPathAndNameSelectorStep.java
deleted file mode 100644 (file)
index 7148df4..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.IOException;\r
-import java.nio.file.FileVisitResult;\r
-import java.nio.file.FileVisitor;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.SimpleFileVisitor;\r
-import java.nio.file.attribute.BasicFileAttributes;\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.Marker;\r
-\r
-import user.jobengine.db.ArchivedMedia;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class OutputPathAndNameSelectorStep extends JobStep {\r
-\r
-       private static final String TARGETNAMEPATTERN = "-ARCH-%s";\r
-\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       private Marker marker;\r
-\r
-       private void check(String localRetrievePath, String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder,\r
-                       String octopusOutputFolder, String genericOutputFolder, String houseId, String targetPathType) {\r
-               if (StringUtils.isBlank(localRetrievePath)) {\r
-                       logger.error(marker, "A folyamat 'localRetrievePath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'localRetrievePath' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(materialOutputFolder)) {\r
-                       logger.error(marker, "A folyamat 'materialOutputFolder' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'materialOutputFolder' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(promoOutputFolder)) {\r
-                       logger.error(marker, "A folyamat 'promoOutputFolder' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'promoOutputFolder' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(advertisementOutputFolder)) {\r
-                       logger.error(marker, "A folyamat 'advertisementOutputFolder' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'advertisementOutputFolder' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(octopusOutputFolder)) {\r
-                       logger.error(marker, "A folyamat 'octopusOutputFolder' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'octopusOutputFolder' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(genericOutputFolder)) {\r
-                       logger.error(marker, "A folyamat 'genericOutputFolder' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'genericOutputFolder' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(houseId)) {\r
-                       logger.error(marker, "A folyamat 'houseId' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'houseId' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(targetPathType)) {\r
-                       logger.error(marker, "A folyamat 'targetPathType' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetPathType' input parameter missing.");\r
-               }\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(String localRetrievePath, String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder,\r
-                       String octopusOutputFolder, String genericOutputFolder, String onlineOutputFolder, String houseId, String targetPathType,\r
-                       ArchivedMedia archivedMedia, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-               check(localRetrievePath, materialOutputFolder, promoOutputFolder, advertisementOutputFolder, octopusOutputFolder, genericOutputFolder, houseId,\r
-                               targetPathType);\r
-               Object[] result = null;\r
-               switch (Integer.parseInt(targetPathType)) {\r
-               case 0:\r
-                       String outputFolder = getFolderById(materialOutputFolder, promoOutputFolder, advertisementOutputFolder, octopusOutputFolder, genericOutputFolder,\r
-                                       houseId, archivedMedia);\r
-                       result = localTargetInit(localRetrievePath, outputFolder, houseId, jobRuntime);\r
-                       break;\r
-               case 1:\r
-                       result = localTargetInit(localRetrievePath, onlineOutputFolder, houseId, jobRuntime);\r
-                       break;\r
-               case 2:\r
-\r
-                       if (archivedMedia.getTcIn() != null && archivedMedia.getTcOut() != null)\r
-                               result = new Object[] { genericOutputFolder, houseId, true };\r
-                       else\r
-                               result = new Object[] { null, houseId, true };\r
-                       break;\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private String getFolderById(String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder, String octopusOutputFolder,\r
-                       String genericOutputFolder, String houseId, ArchivedMedia archivedMedia) throws Exception {\r
-               String id = houseId.toUpperCase();\r
-               MetadataType mdType = MetadataTypeDetector.GuessMetadataType(id);\r
-               String result = null;\r
-\r
-               //a groovy nem latja enumnak, hanem az objektum tulajdonsaganak\r
-               switch (mdType.toString()) {\r
-               case "OctopusPlaceholder":\r
-               case "OctopusStory":\r
-                       result = octopusOutputFolder;\r
-                       break;\r
-               case "TrafficMaterial":\r
-                       result = materialOutputFolder;\r
-                       break;\r
-               case "TrafficPromo":\r
-                       result = promoOutputFolder;\r
-                       break;\r
-               case "TrafficAD":\r
-                       result = advertisementOutputFolder;\r
-                       break;\r
-               case "Generic":\r
-                       result = genericOutputFolder;\r
-                       break;\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private String getPossiblePath(String id, Path targetPath) throws IOException {\r
-               String[] result = new String[] { targetPath.toString() };\r
-               FileVisitor<Path> matcherVisitor = new SimpleFileVisitor<Path>() {\r
-                       @Override\r
-                       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {\r
-                               String dirName = dir.getFileName().toString();\r
-                               if (dirName.startsWith(id + "-") || dirName.equals(id)) {\r
-                                       result[0] = dir.toString();\r
-                                       return FileVisitResult.TERMINATE;\r
-                               }\r
-                               return FileVisitResult.CONTINUE;\r
-                       }\r
-               };\r
-               Files.walkFileTree(targetPath.getParent(), matcherVisitor);\r
-               return result[0];\r
-       }\r
-\r
-       private Object[] localTargetInit(String localRetrievePath, String outputFolder, String houseId, IJobRuntime jobRuntime) throws IOException {\r
-               String id = houseId.toUpperCase();\r
-               String targetPath = getPossiblePath(id, Paths.get(localRetrievePath, outputFolder, id)).toString();\r
-               String targetNamePattern = houseId + TARGETNAMEPATTERN;\r
-               try {\r
-                       EscortFiles.ensureUNCFolder(Paths.get(targetPath));\r
-               } catch (Exception e) {\r
-                       logger.error(jobRuntime.getSessionMarker(), "A cél mappa '{}' nem létezik és nem hozható létre. A rendszer hibaüzenete: {}", targetPath,\r
-                                       e.getMessage());\r
-                       throw e;\r
-               }\r
-               return new Object[] { targetPath, targetNamePattern, false };\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/PathItemsCollectorStep.java b/server/-product/production/LOCAL/jobs/steps/PathItemsCollectorStep.java
deleted file mode 100644 (file)
index de1ae3a..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.IOException;\r
-import java.nio.file.FileVisitResult;\r
-import java.nio.file.FileVisitor;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-import java.nio.file.SimpleFileVisitor;\r
-import java.nio.file.attribute.BasicFileAttributes;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-/* DO NOT REMOVE!\r
-import user.jobengine.server.steps.FileSearchFilterOptions;\r
-*/\r
-\r
-public class PathItemsCollectorStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(String sourceFolder, BasicDBObject filter) throws Exception {\r
-               Path sourcePath = Paths.get(sourceFolder);\r
-\r
-               List<String> files = new ArrayList<>();\r
-\r
-               //teljes rekurzivitas szuressel\r
-               FileSearchFilterOptions filterOptions = new FileSearchFilterOptions(filter);\r
-               FileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {\r
-                       @Override\r
-                       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {\r
-                               if (!filterOptions.preAcceptDirectory(dir))\r
-                                       return FileVisitResult.SKIP_SUBTREE;\r
-                               return FileVisitResult.CONTINUE;\r
-                       }\r
-\r
-                       @Override\r
-                       public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {\r
-                               if (filterOptions.acceptFile(file)) {\r
-                                       files.add(file.toString());\r
-                                       logger.info(file.getFileName());\r
-                               }\r
-                               return FileVisitResult.CONTINUE;\r
-                       }\r
-\r
-                       @Override\r
-                       public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {\r
-                               return FileVisitResult.CONTINUE;\r
-                       }\r
-\r
-               };\r
-\r
-               try {\r
-                       Files.walkFileTree(sourcePath, visitor);\r
-               } catch (Exception e) {\r
-                       logger.error(getSessionMarker(), "Hiba a '{}' mappa feldolgozásában. A rendszer hibaüzenete: {}", sourcePath, e.getMessage());\r
-                       logger.catching(e);\r
-                       throw e;\r
-               } finally {\r
-               }\r
-               return new Object[] { files };\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/PrepareRemoteTranscodeJobParametersStep.java b/server/-product/production/LOCAL/jobs/steps/PrepareRemoteTranscodeJobParametersStep.java
deleted file mode 100644 (file)
index 37306e6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.nio.file.Paths;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-public class PrepareRemoteTranscodeJobParametersStep extends JobStep {\r
-       @StepEntry\r
-       public Object[] execute(String profileName, String fileName) throws Exception {\r
-               String transcoderInputDir = "m:\";\r
-               String transcoderOutputDir = "m:\";\r
-               String outFileName = fileName.substring(0, fileName.lastIndexOf(".")) + ".mp4";\r
-               BasicDBObject parameters = new BasicDBObject();\r
-               parameters.put("profile", profileName);\r
-               parameters.put("input", Paths.get(transcoderInputDir, fileName));\r
-               parameters.put("output", Paths.get(transcoderOutputDir, outFileName));\r
-               return new Object[] { parameters };\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/QueryMissingProxyMediaStep.java b/server/-product/production/LOCAL/jobs/steps/QueryMissingProxyMediaStep.java
deleted file mode 100644 (file)
index 9e8d194..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-import com.ibm.nosql.json.api.DB;\r
-import com.ibm.nosql.json.api.DBCollection;\r
-\r
-import user.commons.MediaCubeUndoMarker;\r
-import user.commons.nosql.NoSQLUtils;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.Media;\r
-\r
-public class QueryMissingProxyMediaStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute() throws Exception {\r
-               Object[] result = new Object[] { null };\r
-               DB db = NoSQLUtils.getNoSQLDB();\r
-               DBCollection collection = db.getCollection("missing_lowres");\r
-               Media media = getFirstUntranscodedMedia(collection);\r
-\r
-               try {\r
-                       if (media == null) {\r
-                               logger.info(new MediaCubeUndoMarker(getSessionMarker().getSessionID()), "Nincs feldolgozandó hiány.");\r
-                               // throw new Exception("Nincs feldolgozandó hiány.");\r
-                               cancel();\r
-                               return null;\r
-                       }\r
-\r
-                       String name = media.getMediaFileRealName();\r
-                       collection.save(new BasicDBObject("name", name));\r
-                       logger.info(getSessionMarker(), "Processing mediaID: {}", media.getId());\r
-                       result[0] = media;\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(getSessionMarker(), e.getMessage());\r
-                       throw e;\r
-               } finally {\r
-                       setProgress(100);\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private Media getFirstUntranscodedMedia(DBCollection collection) {\r
-               Media[] result = new Media[] { null };\r
-               //MV\r
-               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC";\r
-\r
-               //HTV\r
-               //String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS";\r
-               IItemManager manager = getManager();\r
-               manager.executeQuery(query, rs -> {\r
-                       try {\r
-                               long mediaId = rs.getLong(1);\r
-                               Media media = manager.getMedia(mediaId);\r
-                               //a nevgeneralas miatt az eredeti MediaFilesName nem jo, a pontos nev kell nekunk\r
-                               String name = media.getMediaFileRealName();\r
-                               logger.info(getSessionMarker(), "Checking {}", name);\r
-                               long existing = collection.find(new BasicDBObject("name", name)).count();\r
-                               if (existing > 0) {\r
-                                       logger.info(getSessionMarker(), "{} is on missing_lowres list", name);\r
-                                       return true;\r
-                               }\r
-\r
-                               result[0] = media;\r
-                       } catch (Exception e) {\r
-                               logger.error(e);\r
-                       }\r
-                       return false;\r
-               }, null);\r
-               return result[0];\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/RemoteJobStep.java b/server/-product/production/LOCAL/jobs/steps/RemoteJobStep.java
deleted file mode 100644 (file)
index 8e022f4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-/*\r
-import user.jobengine.server.steps.MediaCubeClient;\r
-*/\r
-public class RemoteJobStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(String server, String template, String name, String profile) throws Exception {\r
-               try {\r
-                       MediaCubeClient mc = new MediaCubeClient(server);\r
-                       BasicDBObject params = new BasicDBObject();\r
-                       params.put("profile", profile);\r
-                       params.put("input", "c:/_workspace/data/video/proba1.mxf");\r
-                       params.put("output", "c:/_video/proba1.mp4");\r
-\r
-                       long jobId = mc.startjob(template, name, params);\r
-                       logger.info(getMarker(), "Started {} on server {}", jobId, server);\r
-                       while (true) {\r
-                               BasicDBObject status = mc.getStatus(jobId);\r
-                               if (status != null)\r
-                                       setProgress(status.getInt("progress"));\r
-\r
-                               String jobStatus = status.getString("status");\r
-                               if ("SUSPENDED".equals(jobStatus))\r
-                                       throw new Exception(status.getString("description"));\r
-\r
-                               if ("FINISHED".equals(jobStatus))\r
-                                       break;\r
-                       }\r
-\r
-               } catch (Exception e) {\r
-                       throw e;\r
-               }\r
-               return new Object[] { null };\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TSMBackupStep.java b/server/-product/production/LOCAL/jobs/steps/TSMBackupStep.java
deleted file mode 100644 (file)
index 60adc66..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.nio.file.Files;\r
-import java.nio.file.attribute.BasicFileAttributes;\r
-import java.sql.Timestamp;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import org.apache.commons.lang.RandomStringUtils;\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.message.Message;\r
-import org.apache.logging.log4j.message.ParameterizedMessage;\r
-\r
-import user.commons.RemoteFile;\r
-import user.commons.StoreUri;\r
-import user.commons.mediatool.Timecode;\r
-import user.commons.mediatool.Timecode.Type;\r
-import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.IStatusEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.commons.remotestore.StatusEvent;\r
-import user.jobengine.db.FileType;\r
-import user.jobengine.db.IItemManager;\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
-import user.jobengine.server.JobEngineException;\r
-\r
-public class TSMBackupStep extends JobStep {\r
-       private static final String MXFEXT = ".MXF";\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager manager;\r
-       private File sourceMediaFile;\r
-       private Store tsmStore;\r
-       private StoreUri targetUri;\r
-       private FileType fileType;\r
-       private Marker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, int killDateDays) throws Exception {\r
-               marker = getSessionMarker();\r
-\r
-               File sourceMediaFile = new File(archiveItem.getMediaFile());\r
-               String sourceFileName = sourceMediaFile.getName();\r
-               Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL);\r
-               String details = String.format("%s (%s, %d bytes)", sourceFileName, timecode.toString(), sourceMediaFile.length());\r
-               getJobRuntime().setDescription(details);\r
-               try {\r
-\r
-                       setAndCheck(archiveItem, mediaCubeMedia, getEngine());\r
-\r
-                       //TODO mxf helyett az osszes kiterjesztest!!!!!\r
-                       //A dupla ellenorzes a napon beluli ismetlesek miatt kell\r
-                       long existingMediaId = archiveItem.getExistingMediaId();\r
-                       if (sourceMediaFile.length() == 0 && existingMediaId == 0) {\r
-                               existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, sourceFileName.replace(MXFEXT, ""));\r
-                               if (existingMediaId == 0)\r
-                                       existingMediaId = -1;\r
-                       }\r
-\r
-                       if (existingMediaId == 0)\r
-                               existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, sourceFileName.replace(MXFEXT, ""));\r
-\r
-                       boolean randomizeName = Boolean.parseBoolean(System.getProperty("jobengine.randomize.archives", "false"));\r
-\r
-                       String targetFileName;\r
-                       if (randomizeName) {\r
-                               // a-z, A-Z, 0-9. For example: WRMcpIk7, s57JwCVA\r
-                               //veletlenszeru neveket adunk!\r
-                               targetFileName = String.format("%s-%s", RandomStringUtils.randomAlphanumeric(8), sourceFileName);\r
-                       } else\r
-                               targetFileName = sourceFileName;\r
-\r
-                       if (existingMediaId == 0) {\r
-                               StoreUri sourceUri = manager.createStoreUri(RemoteStoreProtocol.LOCAL, sourceMediaFile.getParent().toString());\r
-\r
-                               final IJobRuntime runtime = getJobRuntime();\r
-                               sourceUri.addProgressListener(new IProgressEventListener() {\r
-                                       @Override\r
-                                       public void progressChanged(ProgressEvent evt) {\r
-                                               runtime.incrementProgress(evt.getProgress());\r
-                                       }\r
-                               });\r
-                               sourceUri.addStatusListener(new IStatusEventListener() {\r
-                                       @Override\r
-                                       public void statusChanged(StatusEvent evt) {\r
-                                               evt.setCancel(!canContinue());\r
-                                       }\r
-                               });\r
-\r
-                               RemoteFile remoteFile = sourceUri.transferFrom(targetUri, sourceFileName, targetFileName);\r
-                       }\r
-\r
-                       if (existingMediaId > 0)\r
-                               logger.info(marker, "Az '{}' TSM mentése nem szükséges, mert már megtalálható az archívumban.", sourceFileName);\r
-\r
-                       //Fel kell szabadítani, hogy a kovetkezo archivalaskor is nekifusson\r
-                       if (existingMediaId == -1) {\r
-                               logger.info(marker, "Az '{}' mentése jelenleg nem lehetséges, mert a szükséges metaadat még nem található meg az archívumban.", sourceFileName);\r
-                               if (!archiveItem.removeCatchedFile())\r
-                                       logger.error(marker,\r
-                                                       "Az '{}' állomány .catched jelző állománya nem törölhető. Az újabb archiválási kísérlethez annak kézi eltávolítása szükséges!",\r
-                                                       sourceMediaFile.getName());\r
-                               mediaCubeMedia.remove();\r
-                       } else {\r
-                               saveMetadata(mediaCubeMedia, sourceMediaFile, targetFileName, existingMediaId);\r
-                               logger.info(marker, "Az '{}' archiválása sikeres.", sourceFileName);\r
-                               if (killDateDays != 0)\r
-                                       EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, marker);\r
-                       }\r
-\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       Message m = new ParameterizedMessage("Az '{}' állomány archiválása sikertelen. A rendszer hibaüzenete: {}", details, e.getMessage());\r
-                       logger.error(marker, m);\r
-                       if (!archiveItem.removeCatchedFile())\r
-                               logger.error(marker,\r
-                                               "Az '{}' állomány .catched jelző állománya nem törölhető. Az újabb archiválási kísérlethez annak kézi eltávolítása szükséges!",\r
-                                               sourceMediaFile.getName());\r
-                       throw new Exception(m.getFormattedMessage());\r
-               }\r
-               return null;\r
-       }\r
-\r
-       private void saveMetadata(Media mediaCubeMedia, File sourceFile, String targetFileName, long existingMediaId) {\r
-\r
-               if (existingMediaId == 0) {\r
-                       MediaFile mediaFile = manager.createMediaFile(targetFileName, fileType, tsmStore, mediaCubeMedia);\r
-                       mediaFile.setHouseId(sourceFile.getName());\r
-                       mediaFile.add();\r
-               } else {\r
-                       Media existingMedia = manager.getMedia(existingMediaId);\r
-                       List<MediaFile> mediaFiles = existingMedia.getMediaFiles();\r
-                       if (mediaFiles != null) {\r
-                               for (MediaFile mf : mediaFiles) {\r
-                                       mf.setPersister(manager);\r
-                                       mf.setId(0);\r
-                                       mf.setMedia(mediaCubeMedia);\r
-                                       mf.add();\r
-                               }\r
-                       }\r
-               }\r
-               mediaCubeMedia.setPersister(manager);\r
-\r
-               try {\r
-                       BasicFileAttributes attr = Files.readAttributes(sourceFile.toPath(), BasicFileAttributes.class);\r
-                       mediaCubeMedia.setArchived(new Timestamp(attr.creationTime().toMillis()));\r
-               } catch (IOException e) {\r
-                       logger.catching(e);\r
-                       mediaCubeMedia.setArchived(new Timestamp(new Date().getTime()));\r
-               }\r
-\r
-               mediaCubeMedia.modify();\r
-       }\r
-\r
-       private void setAndCheck(ArchiveItem archiveItem, Media mediaCubeMedia, IJobEngine jobEngine) throws JobEngineException, IOException {\r
-               if (jobEngine == null) {\r
-                       logger.error(marker, "Az folyamatkezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing JobEngine reference.");\r
-               }\r
-               manager = jobEngine.getItemManager();\r
-               if (manager == null) {\r
-                       logger.error(marker, "Az adatbáziskezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing ItemManager reference.");\r
-               }\r
-               if (archiveItem == null) {\r
-                       logger.error(marker, "A folyamat 'archiveItem' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, missing 'archiveItem' input parameter.");\r
-               }\r
-               sourceMediaFile = new File(archiveItem.getMediaFile());\r
-               if (sourceMediaFile == null) {\r
-                       logger.error(marker, "A folyamat 'archiveItem' bemeneti paraméter 'mediaFile' értéke üres.");\r
-                       throw new NullPointerException("System is not configured properly, missing 'mediaFile' value in 'archiveItem' input parameter.");\r
-               }\r
-               if (!sourceMediaFile.exists()) {\r
-                       logger.error(marker, "Az {} állomány nem létezik vagy nem érhető el.", sourceMediaFile.getName());\r
-                       throw new IOException(String.format("Input file {} not exists or unreachable.", sourceMediaFile.getName()));\r
-               }\r
-               tsmStore = manager.getSystemStore(false);\r
-               if (tsmStore == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás nem elérhető.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM Store.");\r
-               }\r
-               targetUri = tsmStore.getSourceStoreUri(RemoteStoreProtocol.TSM);\r
-               if (targetUri == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás paraméterei nem elérhetőek.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM StoreUri.");\r
-               }\r
-               fileType = manager.getFileType("High-res");\r
-               if (fileType == null) {\r
-                       logger.error(marker, "Adatbázis bejegyzés hiba, a 'High-res' FileType nem található.");\r
-                       throw new NullPointerException("System is not configured properly, missing 'High-res' FileType.");\r
-               }\r
-               if (mediaCubeMedia == null) {\r
-                       logger.error(marker, "A folyamat 'mediaCubeMedia' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'mediaCubeMedia' input parameter missing.");\r
-               }\r
-\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TSMExtendedRetrieveStep.java b/server/-product/production/LOCAL/jobs/steps/TSMExtendedRetrieveStep.java
deleted file mode 100644 (file)
index 79a601c..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-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.StoreUri;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.jobengine.db.ArchivedMedia;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class TSMExtendedRetrieveStep extends TSMRestoreStep {\r
-       private static String NEXIO_HOST = System.getProperty("nexio.host");\r
-       //      private static String NEXIO_HOST = SystemConfiguration.getInstance().value("services.nexio.host");\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       private boolean useNexioTarget;\r
-       private int nexioPort;\r
-       private String nexioUserName, nexioPassword;\r
-       private String nexioAgency;\r
-\r
-       @Override\r
-       protected void afterRestore(StoreUri targetUri, String targetPath, int killDateDays, String targetFileName) throws Exception {\r
-               if (useNexioTarget) {\r
-                       EscortFiles.setNEXIOKillDate(killDateDays, targetFileName, nexioAgency, targetUri);\r
-               } else {\r
-                       super.afterRestore(targetUri, targetPath, killDateDays, targetFileName);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       protected void beforeRestore(StoreUri targetURI, String targetName) throws Exception {\r
-               String newTargetName = targetName;\r
-               if (targetName.contains("."))\r
-                       newTargetName = targetName.substring(0, targetName.lastIndexOf('.'));\r
-               if (useNexioTarget)\r
-                       if (targetURI.fileExists(newTargetName + ".mxf"))\r
-                               throw new Exception(String.format("%s-The newly created file name is existed.", getClass().getSimpleName()));\r
-       }\r
-\r
-       @Override\r
-       protected void checkTargetPath(String targetPath) {\r
-               if (!useNexioTarget)\r
-                       super.checkTargetPath(targetPath);\r
-       }\r
-\r
-       @Override\r
-       protected StoreUri createTargetUri(IItemManager manager, String targetPath) throws NullPointerException {\r
-               StoreUri result = null;\r
-               logger.info(getSessionMarker(), "Create target uri {}", targetPath);\r
-               if (useNexioTarget) {\r
-                       if (NEXIO_HOST == null) {\r
-                               throw new NullPointerException("Missing system property on 'nexio.host' name");\r
-                       }\r
-                       result = manager.createStoreUri(RemoteStoreProtocol.FTP, NEXIO_HOST);\r
-                       result.setPortNumber(nexioPort);\r
-                       result.setUserName(nexioUserName);\r
-                       result.setPassword(nexioPassword);\r
-               } else\r
-                       result = super.createTargetUri(manager, targetPath);\r
-               return result;\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchivedMedia archivedMedia, String targetPath, String targetNamePattern, String successRecipient, int killDateDays,\r
-                       String localRetrievePath, String globalRetrievePath, boolean useNexioTarget, String nexioAgency, int nexioPort, String nexioUserName,\r
-                       String nexioPassword, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               this.useNexioTarget = useNexioTarget;\r
-               this.nexioAgency = nexioAgency;\r
-               this.nexioPort = nexioPort;\r
-               this.nexioUserName = nexioUserName;\r
-               this.nexioPassword = nexioPassword;\r
-               if (nexioPort == 0) {\r
-                       throw new NullPointerException("System is not configured properly, 'nexioPort' input parameter missing.");\r
-               }\r
-               if (nexioUserName == null) {\r
-                       throw new NullPointerException("System is not configured properly, 'nexioUserName' input parameter missing.");\r
-               }\r
-               if (nexioPassword == null) {\r
-                       throw new NullPointerException("System is not configured properly, 'nexioPassword' input parameter missing.");\r
-               }\r
-               if (nexioAgency == null) {\r
-                       throw new NullPointerException("System is not configured properly, 'nexioAgency' input parameter missing.");\r
-               }\r
-\r
-               return super.execute(archivedMedia.getMedia(), targetPath, targetNamePattern, successRecipient, killDateDays, localRetrievePath, globalRetrievePath,\r
-                               jobEngine, jobRuntime);\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TSMRestoreStep.java b/server/-product/production/LOCAL/jobs/steps/TSMRestoreStep.java
deleted file mode 100644 (file)
index 5b41005..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.IOException;\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
-import org.apache.logging.log4j.Marker;\r
-import org.apache.logging.log4j.message.Message;\r
-\r
-import user.commons.LogUtils;\r
-import user.commons.RemoteFile;\r
-import user.commons.StoreUri;\r
-import user.commons.mediatool.Timecode;\r
-import user.commons.mediatool.Timecode.Type;\r
-import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.IStatusEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.commons.remotestore.StatusEvent;\r
-import user.jobengine.db.IItemManager;\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 TSMRestoreStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private IItemManager manager;\r
-       private StoreUri targetUri;\r
-       private StoreUri sourceUri;\r
-       private String sourceFileName;\r
-       private Marker marker;\r
-\r
-       protected void afterRestore(StoreUri targetUri, String targetPath, int killDateDays, String targetFileName) throws IOException, Exception {\r
-               if (killDateDays > 0)\r
-                       EscortFiles.createUNCKillDate(targetPath, targetFileName, killDateDays, marker);\r
-       }\r
-\r
-       protected void beforeRestore(StoreUri targetURI, String targetFileName) throws Exception {\r
-       }\r
-\r
-       protected void checkTargetPath(String targetPath) {\r
-               if (StringUtils.isBlank(targetPath)) {\r
-                       logger.error(marker, "A folyamat 'targetPath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetPath' input parameter missing.");\r
-               }\r
-       }\r
-\r
-       protected StoreUri createTargetUri(IItemManager manager, String targetPath) {\r
-               return manager.createStoreUri(RemoteStoreProtocol.LOCAL, targetPath);\r
-       }\r
-\r
-       @StepEntry\r
-       public Object[] execute(Media mediaCubeMedia, String targetPath, String targetNamePattern, String successRecipient, int killDateDays,\r
-                       String localRetrievePath, String globalRetrievePath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-               setAndCheck(mediaCubeMedia, targetPath, targetNamePattern, localRetrievePath, globalRetrievePath, jobEngine);\r
-               String targetFileName = String.format(targetNamePattern, sourceFileName);\r
-               Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL);\r
-               try {\r
-                       String details = String.format("%s (%s)", sourceFileName, timecode.toString());\r
-                       jobRuntime.setDescription(details);\r
-                       beforeRestore(targetUri, targetNamePattern);\r
-                       final IJobRuntime runtime = jobRuntime;\r
-                       sourceUri.addProgressListener(new IProgressEventListener() {\r
-                               @Override\r
-                               public void progressChanged(ProgressEvent evt) {\r
-                                       runtime.incrementProgress(evt.getProgress());\r
-                               }\r
-                       });\r
-                       sourceUri.addStatusListener(new IStatusEventListener() {\r
-                               @Override\r
-                               public void statusChanged(StatusEvent evt) {\r
-                                       evt.setCancel(!canContinue());\r
-                               }\r
-                       });\r
-                       RemoteFile result = sourceUri.transferFrom(targetUri, sourceFileName, targetFileName);\r
-\r
-                       String globalTargetPath = Paths.get(targetPath, targetFileName).getParent().toString().replace(Paths.get(localRetrievePath).toString(),\r
-                                       globalRetrievePath);\r
-\r
-                       logger.info(marker,\r
-                                       "Az '{}' állomány visszatöltése sikeres volt '{}' néven. A célmappa a <a href='{}' target='_blank'>ide kattintva</a> nyitható meg.",\r
-                                       sourceFileName, targetFileName, globalTargetPath);\r
-                       afterRestore(targetUri, targetPath, killDateDays, targetFileName);\r
-\r
-               } catch (Exception e) {\r
-                       Message msg = LogUtils.format("Az '{}' állomány visszatöltése sikertelen. A rendszer hibaüzenete: {}", sourceFileName, e.getMessage());\r
-                       logger.error(marker, msg);\r
-                       // logger.error(jobRuntime.marker, msg);\r
-                       logger.catching(e);\r
-                       throw e;\r
-               }\r
-\r
-               return null;\r
-       }\r
-\r
-       private String getSourceFileName(Media mediaCubeMedia, Store store) {\r
-               List<MediaFile> mediaFiles = mediaCubeMedia.getMediaFiles();\r
-               if (mediaFiles == null)\r
-                       return null;\r
-               for (MediaFile mediaFile : mediaFiles) {\r
-                       if (mediaFile.getStore().getId() == store.getId())\r
-                               return mediaFile.getRelativePath();\r
-               }\r
-               return null;\r
-       }\r
-\r
-       private void setAndCheck(Media mediaCubeMedia, String targetPath, String targetNamePattern, String localRetrievePath, String globalRetrievePath,\r
-                       IJobEngine jobEngine) {\r
-               if (jobEngine == null) {\r
-                       logger.error(marker, "Az folyamatkezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing JobEngine reference.");\r
-               }\r
-               manager = jobEngine.getItemManager();\r
-               if (manager == null) {\r
-                       logger.error(marker, "Az adatbáziskezelő réteg nem elérhető.");\r
-                       throw new NullPointerException("Internal error, missing ItemManager reference.");\r
-               }\r
-               if (mediaCubeMedia == null) {\r
-                       logger.error(marker, "A folyamat 'mediaCubeMedia' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'mediaCubeMedia' input parameter missing.");\r
-               }\r
-               checkTargetPath(targetPath);\r
-               if (StringUtils.isBlank(targetNamePattern)) {\r
-                       logger.error(marker, "A folyamat 'targetNamePattern' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'targetNamePattern' input parameter missing.");\r
-               }\r
-               Store tsmStore = manager.getSystemStore(false);\r
-               if (tsmStore == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás nem elérhető.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM Store.");\r
-               }\r
-               sourceUri = tsmStore.getSourceStoreUri(RemoteStoreProtocol.TSM);\r
-               if (sourceUri == null) {\r
-                       logger.error(marker, "A TSM rendszer beállítás paraméterei nem elérhetőek.");\r
-                       throw new NullPointerException("System is not configured properly, missing TSM StoreUri.");\r
-               }\r
-               targetUri = createTargetUri(manager, targetPath);\r
-               sourceFileName = getSourceFileName(mediaCubeMedia, tsmStore);\r
-               if (sourceFileName == null) {\r
-                       logger.error(marker, "Adatbázis bejegyzés hiba, a visszatöltendő fájl neve nem található.");\r
-                       throw new NullPointerException("Database error, missing MediaFile 'relativePath'.");\r
-               }\r
-\r
-               if (StringUtils.isBlank(localRetrievePath)) {\r
-                       logger.error(marker, "A folyamat 'localRetrievePath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'localRetrievePath' input parameter missing.");\r
-               }\r
-               if (StringUtils.isBlank(globalRetrievePath)) {\r
-                       logger.error(marker, "A folyamat 'globalRetrievePath' bemeneti paramétere üres.");\r
-                       throw new NullPointerException("System is not configured properly, 'globalRetrievePath' input parameter missing.");\r
-               }\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TSMSimpleRestoreStep.java b/server/-product/production/LOCAL/jobs/steps/TSMSimpleRestoreStep.java
deleted file mode 100644 (file)
index ba63212..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.nio.file.Files;\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.mediatool.Timecode;\r
-import user.commons.mediatool.Timecode.Type;\r
-import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.IStatusEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.commons.remotestore.StatusEvent;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.db.MediaFile;\r
-import user.jobengine.db.Store;\r
-\r
-public class TSMSimpleRestoreStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-\r
-       @StepEntry\r
-       public Object[] execute(long mediaId, String targetPath) throws Exception {\r
-               String fileName = null;\r
-               try {\r
-                       Media media = getManager().getMedia(mediaId);\r
-                       MediaFile mediaFile = getManager().getSystemMediaFile(media);\r
-                       fileName = mediaFile.getRelativePath();\r
-                       Timecode timecode = new Timecode(media.getLength(), Type.PAL);\r
-                       getJobRuntime().setDescription(String.format("%s (%s)", fileName, timecode.toString()));\r
-                       Store tsmStore = getManager().getSystemStore(false);\r
-                       StoreUri sourceStoreUri = getManager().getStoreUri(tsmStore.getName(), RemoteStoreProtocol.TSM);\r
-                       sourceStoreUri.addProgressListener(new IProgressEventListener() {\r
-                               @Override\r
-                               public void progressChanged(ProgressEvent evt) {\r
-                                       setProgress(evt.getProgress());\r
-                               }\r
-                       });\r
-                       sourceStoreUri.addStatusListener(new IStatusEventListener() {\r
-                               @Override\r
-                               public void statusChanged(StatusEvent evt) {\r
-                                       evt.setCancel(!canContinue());\r
-                               }\r
-                       });\r
-                       StoreUri targetStoreUri = getManager().createStoreUri(RemoteStoreProtocol.LOCAL, targetPath);\r
-                       sourceStoreUri.transferFrom(targetStoreUri, fileName, fileName + ".part");\r
-                       Files.move(Paths.get(targetPath, fileName + ".part"), Paths.get(targetPath, fileName));\r
-               } catch (Exception e) {\r
-                       logger.error("Az '{}' állomány visszatöltése sikertelen. A rendszer üzenete: {}", fileName, e.getMessage());\r
-                       throw e;\r
-               }\r
-\r
-               return null;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TestForkCancelableStep.java b/server/-product/production/LOCAL/jobs/steps/TestForkCancelableStep.java
deleted file mode 100644 (file)
index c1b49f7..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-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 = 3;\r
-\r
-       @StepEntry\r
-       public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               for (int i = 0; i < count; i++) {\r
-                       IJobRuntime rt = getEngine().submit(null, e -> {\r
-                               if (e.getStatus().equals(JobStatus.SUSPENDED)) {\r
-                                       IJobRuntime rt = (IJobRuntime) e.getSource();\r
-                                       logger.info("Cleanup on SUSPEND {}, {}", rt.getId(), rt.isDisableRetry());\r
-                               }\r
-                       }, CHILD_TEMPLATE, "JOB " + i, 0, IJobEngine.DEFAULT_OWNER, ListUtils.asMap("param", i));\r
-                       \r
-                       rt.setRelated("TEST" + rt.getId());\r
-               }\r
-\r
-               logger.info("Done");\r
-               return null;\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TestLib.java b/server/-product/production/LOCAL/jobs/steps/TestLib.java
deleted file mode 100644 (file)
index 040153e..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-public class TestLib {\r
-\r
-       public void hello() {\r
-               System.out.println("Hello from lib");\r
-       }\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TranscodeFFAStranStep.java b/server/-product/production/LOCAL/jobs/steps/TranscodeFFAStranStep.java
deleted file mode 100644 (file)
index a73ff66..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.nio.file.Files;\r
-import java.nio.file.Path;\r
-import java.nio.file.Paths;\r
-\r
-import org.apache.commons.io.FilenameUtils;\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.message.Message;\r
-import org.apache.logging.log4j.message.ParameterizedMessage;\r
-\r
-import user.commons.FFAStransAPI;\r
-import user.commons.IFFAStransAPI;\r
-import user.commons.StoreUri;\r
-import user.commons.mediatool.Timecode;\r
-import user.commons.mediatool.Timecode.Type;\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.jobengine.db.FileType;\r
-import user.jobengine.db.IItemManager;\r
-import user.jobengine.db.Media;\r
-import user.jobengine.db.Store;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
-\r
-public class TranscodeFFAStranStep extends JobStep {\r
-       private static final int POLL_INTERVALL = 3000;\r
-       private static final String MP4EXT = ".MP4";\r
-       private static final String MXFEXT = ".MXF";\r
-       private static final String LOWRES_FILETYPE = "Low-res";\r
-       private static final Logger logger = LogManager.getLogger("TranscodeFFAStranStep");\r
-       private IItemManager manager;\r
-       private Store store;\r
-       private FileType fileType;\r
-       private Media mediaCubeMedia;\r
-       private Marker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderAddress, String transcoderTemplateName,\r
-                       String globalHiresSourcePath, String localLowresTargetPath, boolean deleteSource, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-\r
-               this.marker = jobRuntime.getSessionMarker();\r
-               this.manager = jobEngine.getItemManager();\r
-               this.store = check(manager.getCurrentLowresStore(), "lowres Store");\r
-               this.fileType = check(manager.getFileType(LOWRES_FILETYPE), "lowres FileType");\r
-               this.mediaCubeMedia = check(mediaCubeMedia, "mediaCubeMedia");\r
-               check(archiveItem, "archiveItem");\r
-               check(transcoderAddress, "transcoderAddress");\r
-               check(transcoderTemplateName, "transcoderTemplateName");\r
-               check(globalHiresSourcePath, "globalHiresSourcePath");\r
-               check(localLowresTargetPath, "localLowresTargetPath");\r
-\r
-               File sourceMediaFile = new File(archiveItem.getMediaFile());\r
-               logger.info("Transcoding {}", archiveItem.getMediaFile());\r
-               String sourceFileName = sourceMediaFile.getName();\r
-               Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL);\r
-\r
-               String details = String.format("%s (%s, %d bytes)", sourceFileName, timecode.toString(), sourceMediaFile.length());\r
-\r
-               StoreUri storeUri = store.getTargetStoreUri(RemoteStoreProtocol.LOCAL);\r
-               if (storeUri == null)\r
-                       throw new Exception("Can not detect proxy folder.");\r
-\r
-               String webPath = storeUri.toString(true);\r
-\r
-               Path targetPath = null;\r
-               try {\r
-                       String targetFileName = FilenameUtils.removeExtension(sourceFileName) + MP4EXT;\r
-                       targetPath = Paths.get(localLowresTargetPath, targetFileName);\r
-                       if (!targetPath.toFile().exists()) {\r
-                               //                              jobRuntime.setDescription(String.format("%s: %s", jobRuntime.getDescription(), details));\r
-                               jobRuntime.setDescription(String.format("%s transzkódolása", details));\r
-                               String sourceFile = Paths.get(globalHiresSourcePath, sourceFileName).toString();\r
-                               IFFAStransAPI api = new FFAStransAPI(transcoderAddress, p -> {\r
-                                       if (p <= 100)\r
-                                               jobRuntime.incrementProgress(p);\r
-                               });\r
-\r
-                               api.submit(transcoderTemplateName, sourceFile);\r
-                               api.monitor(POLL_INTERVALL);\r
-                       }\r
-\r
-                       //a sikeres transzkod utan nem mindig van ott egybol a fajl\r
-                       long started = System.currentTimeMillis();\r
-                       while (!targetPath.toFile().exists()) {\r
-                               long current = System.currentTimeMillis();\r
-                               //max 5 perc varakozas\r
-                               if (current - started > 5 * 60 * 1000)\r
-                                       throw new Exception("Transcode job target file access timed out");\r
-                               Thread.sleep(POLL_INTERVALL);\r
-                       }\r
-\r
-                       postprocess(targetPath, webPath);\r
-\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       Message m = new ParameterizedMessage("{} átkódolás hiba: {}", sourceFileName, e.getMessage());\r
-                       logger.error(marker, m);\r
-                       throw new Exception(m.getFormattedMessage());\r
-               } finally {\r
-                       try {\r
-                               if (deleteSource && sourceMediaFile != null && sourceMediaFile.exists())\r
-                                       sourceMediaFile.delete();\r
-                       } catch (Exception e) {\r
-                               logger.catching(e);\r
-                       }\r
-                       try {\r
-                               if (deleteSource && targetPath != null && targetPath.toFile().exists())\r
-                                       Files.delete(targetPath);\r
-                       } catch (Exception e) {\r
-                               logger.catching(e);\r
-                       }\r
-               }\r
-               return null;\r
-       }\r
-\r
-       private void postprocess(Path transcodedFilePath, String webPath) throws IOException {\r
-               Path lowresPath = null;\r
-               try {\r
-                       String transcodedFileName = transcodedFilePath.getFileName().toString();\r
-                       String targetPath = null;\r
-                       if (transcodedFileName.indexOf(".") > 2) {\r
-                               Path subdir = Paths.get(transcodedFileName.substring(0, 1), transcodedFileName.substring(1, 2), transcodedFileName.substring(2, 3));\r
-                               EscortFiles.ensureUNCFolder(webPath, subdir.toString());\r
-                               targetPath = Paths.get(subdir.toString(), transcodedFileName).toString();\r
-                       } else {\r
-                               targetPath = transcodedFileName;\r
-                       }\r
-                       lowresPath = Paths.get(webPath, targetPath);\r
-                       int version = 1;\r
-                       while (lowresPath.toFile().exists()) {\r
-                               String fileName = transcodedFileName + version + MP4EXT;\r
-                               lowresPath = Paths.get(lowresPath.toString().replace(transcodedFileName, fileName));\r
-                               targetPath = targetPath.replace(transcodedFileName, fileName);\r
-                               transcodedFileName = fileName;\r
-                               version++;\r
-                       }\r
-\r
-                       Files.move(transcodedFilePath, lowresPath);\r
-                       manager.createMediaFile(targetPath, fileType, store, mediaCubeMedia).add();\r
-               } catch (IOException e) {\r
-                       logger.catching(e);\r
-                       logger.error(marker, "A '{}' állomány mozgatása a '{}' helyre nem sikerült.", transcodedFilePath, lowresPath);\r
-                       throw e;\r
-               }\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/TranscodeFFMpegStep.java b/server/-product/production/LOCAL/jobs/steps/TranscodeFFMpegStep.java
deleted file mode 100644 (file)
index 4033b8e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-/*\r
-import user.jobengine.server.steps.shared.IExternalCallback;\r
-import user.jobengine.server.steps.shared.ExternalProfile;\r
-import user.jobengine.server.steps.shared.ExternalProfilesConfig;\r
-import user.jobengine.server.steps.shared.ExternalCommand;\r
-import user.jobengine.server.steps.shared.ExternalCommandExecutor;\r
- */\r
-\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.mediaarea.MediaArea;\r
-import user.jobengine.server.steps.shared.ExternalCommandExecutor;\r
-import user.jobengine.server.steps.shared.IExternalCallback;\r
-\r
-public class TranscodeFFMpegStep extends JobStep implements IExternalCallback {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private long allFrameCount;\r
-       private long processedFrameCount;\r
-\r
-       @StepEntry\r
-       public Object[] execute(String input, String output, String profile) throws Exception {\r
-               try {\r
-                       MediaArea ma = new MediaArea(Paths.get(input));\r
-                       ma.process();\r
-                       allFrameCount = ma.getFrameCount();\r
-\r
-                       ExternalCommandExecutor executor = new ExternalCommandExecutor();\r
-                       executor.execute(profile, input, output, this);\r
-               } catch (Exception e) {\r
-                       logger.error(getMarker(), "Media information not available. System message: {}", e.getMessage());\r
-                       throw e;\r
-               }\r
-               return null;\r
-       }\r
-\r
-       @Override\r
-       public void onResponse(String line) {\r
-               String[] values = line.split("=");\r
-               if ("frame".equals(values[0])) {\r
-                       processedFrameCount = Integer.parseInt(values[1]);\r
-                       int progress = (int) (processedFrameCount * 100 / allFrameCount);\r
-                       if (progress > 0)\r
-                               setProgress(progress);\r
-               }\r
-       }\r
-\r
-}\r
diff --git a/server/-product/production/LOCAL/jobs/steps/UpdateGhostMediaDataStep.java b/server/-product/production/LOCAL/jobs/steps/UpdateGhostMediaDataStep.java
deleted file mode 100644 (file)
index e59008d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-package user.jobengine.server.steps;\r
-\r
-import java.util.List;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-import org.apache.logging.log4j.Marker;\r
-\r
-import user.commons.remotestore.RemoteStoreProtocol;\r
-import user.jobengine.db.IItemManager;\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
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
-\r
-public class UpdateGhostMediaDataStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private Marker marker;\r
-\r
-       @StepEntry\r
-       public Object[] execute(Media mediaCubeMedia, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               marker = jobRuntime.getSessionMarker();\r
-\r
-               IItemManager manager = jobEngine.getItemManager();\r
-               //Refresh from db\r
-               List<MediaFile> mediaFiles = manager.getMedia(mediaCubeMedia.getId()).getMediaFiles();\r
-               if (mediaFiles != null && mediaFiles.size() == 2) {\r
-                       MediaFile lowres = null;\r
-                       MediaFile highres = null;\r
-\r
-                       for (MediaFile mf : mediaFiles) {\r
-                               if (mf.getStore().getSourceStoreUri(RemoteStoreProtocol.HTTP) != null)\r
-                                       lowres = mf;\r
-                               else\r
-                                       highres = mf;\r
-                       }\r
-\r
-                       if (highres == null) {\r
-                               logger.info(marker, "Nincs highres mediaId: {}", mediaCubeMedia.getId());\r
-                               return null;\r
-                       }\r
-                       if (lowres == null) {\r
-                               logger.info(marker, "Nincs lowres mediaId: {}", mediaCubeMedia.getId());\r
-                               return null;\r
-                       }\r
-\r
-                       String id = MetadataTypeDetector.truncateExtension(highres.getRelativePath());\r
-                       id = MetadataTypeDetector.truncateVersion(id);\r
-                       boolean detect = MetadataTypeDetector.GuessMetadataType(id) == MetadataType.OctopusPlaceholder\r
-                                       || MetadataTypeDetector.GuessMetadataType(id) == MetadataType.OctopusStory;\r
-                       if (!detect) {\r
-                               logger.info(marker, "Nem bejátszó mediaId: {}, file: {}", mediaCubeMedia.getId(), highres.getRelativePath());\r
-                               return null;\r
-                       }\r
-\r
-                       Store highresStore = manager.getSystemStore(false);\r
-                       final long sourceMediaId = lowres.getId();\r
-                       final long highresMediaFileId = highres.getId();\r
-                       final String highresRealtivePath = highres.getRelativePath();\r
-\r
-                       manager.executeQuery("SELECT mediaid FROM mediafile WHERE relativepath=? and storeid=? and id!=?", rs -> {\r
-                               long mediaId = rs.getLong(1);\r
-                               Media media = manager.getMedia(mediaId);\r
-                               if (media.getMediaFilesCount() == 1) {\r
-                                       logger.info(marker, "Hiányzó szellem lowres hozzáadása {} alapján", media.getId());\r
-\r
-                                       MediaFile mf = (MediaFile) manager.get(MediaFile.class, sourceMediaId);\r
-                                       mf.setMedia(media);\r
-                                       mf.setId(0);\r
-                                       manager.add(mf);\r
-                                       media.setLength(mediaCubeMedia.getLength());\r
-                                       manager.modify(media);\r
-                               }\r
-                               return true;\r
-                       }, st -> {\r
-                               st.setString(1, highresRealtivePath);\r
-                               st.setLong(2, highresStore.getId());\r
-                               st.setLong(3, highresMediaFileId);\r
-                       });\r
-\r
-               }\r
-\r
-               return null;\r
-       }\r
-\r
-}\r
index 3dbde68378ff0e84130637289f187f7c5a2673d3..b579b23e0ef820de447e9897e821308aa45a31de 100644 (file)
@@ -1,28 +1,16 @@
 datasource:\r
   mediacube:\r
-#    url: jdbc:db2://10.11.1.90:50000/mc\r
-#    user: db2admin\r
-#    password: password\r
-    url: jdbc:db2://192.168.100.2:50000/mc\r
-    user: db2inst1\r
+    url: jdbc:db2://10.10.1.27:50000/mc\r
+    user: db2admin\r
     password: password\r
-#    url: jdbc:db2://10.10.1.27: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
-    url: jdbc:db2://192.168.100.2:50000/mc\r
-    user: db2inst1\r
+    url: jdbc:db2://10.10.1.27:50000/mc\r
+    user: db2admin\r
     password: password\r
-#    url: jdbc:db2://10.10.1.27:50000/mc\r
-#    user: db2admin\r
-#    password: password\r
     schema: test\r
     login-timeout: 3\r
   hsm: \r
diff --git a/server/-product/production/config-210526.ini b/server/-product/production/config-210526.ini
new file mode 100644 (file)
index 0000000..0ff1f35
--- /dev/null
@@ -0,0 +1,9 @@
+#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser\r
+#Thu May 13 15:59:00 CEST 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_5.8.0.jar@4,reference\:file\:com.sun.jna.platform_5.8.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 4bf9bf02937ec3a8f6d03eb183dec8ad63930197..db99a328411f11af0c13cf356caa65edd52528c0 100644 (file)
@@ -9,6 +9,7 @@ Import-Package: org.apache.commons.io.filefilter;version="2.2.0",
  org.apache.commons.io.output;version="2.2.0",
  org.apache.commons.logging,
  org.apache.commons.logging.impl,
+ org.apache.commons.net.ftp;version="3.6.0",
  org.apache.ibatis.jdbc;version="3.5.2",
  org.codehaus.groovy.control;version="3.0.3",
  org.junit
index 1797e98cb83421ba345b07cb5cd702d7d3e2b49d..58d2470dff4cd36aa68a8c0c922301dcbd9f8e36 100644 (file)
@@ -29,7 +29,10 @@ import com.ibm.nosql.json.api.DBCursor;
 import com.ibm.nosql.json.api.QueryBuilder;\r
 \r
 import user.commons.ListUtils;\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
 import user.commons.nosql.NoSQLUtils;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.Item;\r
 import user.jobengine.db.ItemManager;\r
@@ -284,6 +287,20 @@ public class Support {
                manager.remove(i);\r
        }\r
 \r
+       @Test\r
+       public void testFTP() throws Exception {\r
+\r
+               StoreUri sourceUri = manager.createStoreUri(RemoteStoreProtocol.FTP, "10.10.1.55");\r
+               sourceUri.setPortNumber(2098);\r
+               sourceUri.setUserName("administrator");\r
+               sourceUri.setPassword("system");\r
+               List<RemoteFile> remoteFiles = sourceUri.getRemoteFiles();\r
+               RemoteFile remoteFile = sourceUri.getRemoteFile("210506_0000_HIRADO.mxf");\r
+\r
+               assertNotNull(remoteFile);\r
+\r
+       }\r
+\r
        @Test\r
        public void testLoadMVExclude() throws Exception {\r
                DB db = NoSQLUtils.getNoSQLDB();\r
index 287a265095fb544e170ad6969ce2098dc77162d9..164e552c073b956427b1340dfa36df10fa55a1c2 100644 (file)
@@ -13,7 +13,7 @@ public class CancelableStep extends JobStep {
                        logger.info(getMarker(), "Executing {}", i);\r
                        if (getJobRuntime().isWaitingCancel())\r
                                break;\r
-                       Thread.sleep(100);\r
+                       Thread.sleep(1000);\r
                        int progress = (i + 1) * 100 / 10;\r
                        setProgress(progress);\r
                }\r
index 19bad479f092e0a4f3e1deb3688dd80eb85caaf9..0767e726c2fefd0022b52c16da32196cee81bef5 100644 (file)
@@ -22,6 +22,7 @@ public class CreateMissingLowresStep extends JobStep {
        @StepEntry\r
        public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
                Object[] result = new Object[] { null, null, "%s", null, 0, true };\r
+\r
                DB db = NoSQLUtils.getNoSQLDB();\r
                DBCollection collection = db.getCollection("missing_lowres");\r
                IItemManager manager = jobEngine.getItemManager();\r
@@ -56,10 +57,10 @@ public class CreateMissingLowresStep extends JobStep {
        private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {\r
                Media[] result = new Media[] { null };\r
                //MV\r
-               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC";\r
+               //String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC";\r
 \r
                //HTV\r
-               //String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS";\r
+               String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS";\r
                manager.executeQuery(query, rs -> {\r
                        try {\r
                                long mediaId = rs.getLong(1);\r
@@ -69,7 +70,7 @@ public class CreateMissingLowresStep extends JobStep {
                                logger.info(getSessionMarker(), "Checking {}", name);\r
                                long existing = collection.find(new BasicDBObject("name", name)).count();\r
                                if (existing > 0) {\r
-                                       logger.info(getSessionMarker(), "{} is on missing_lowres list", name);\r
+                                       //logger.info(getSessionMarker(), "{} is on missing_lowres list", name);\r
                                        return true;\r
                                }\r
 \r
index cad3d110daeceaa13f47c5dce40e865da196c0c6..d6e06d5d8276f847ca3be73948ba356037675f95 100644 (file)
@@ -27,7 +27,7 @@ import user.jobengine.server.IJobEngine;
 import user.jobengine.server.IJobRuntime;\r
 \r
 public class DeleteNEXIOMaterialsStep extends JobStep {\r
-       private static final Logger logger = LogManager.getLogger();\r
+       private static final Logger logger = LogManager.getLogger(DeleteNEXIOMaterialsStep.class);\r
        private static final String NEXIOCLIPS = "nexioclips";\r
        private static final String KILLDATE = "killdate";\r
        private static final String LONGNAMEID = "longnameid";\r
@@ -45,9 +45,9 @@ public class DeleteNEXIOMaterialsStep extends JobStep {
                                return;\r
                        }\r
                        sourceUri.delete(remoteFile);\r
-                       logger.info(jobRuntime.getSessionMarker(), "A '{}' fájl törlése sikeres volt.", remoteFile.getName());\r
+                       logger.info(jobRuntime.getSessionMarker(), "A '{}' fájl törlése sikeres volt.", name);\r
                } catch (Exception e) {\r
-                       logger.error(jobRuntime.getSessionMarker(), "A '{}' fájl nem törölhető. A rendszer hibaüzenete: {}", remoteFile.getName(), e.getMessage());\r
+                       logger.error(jobRuntime.getSessionMarker(), "A '{}' fájl nem törölhető. A rendszer hibaüzenete: {}", name, e.getMessage());\r
                }\r
        }\r
 \r
@@ -55,6 +55,7 @@ public class DeleteNEXIOMaterialsStep extends JobStep {
        public Object[] execute(int port, String userName, String password, String filterAgencies, int gracePeriodDays, boolean notificationOnly,\r
                        IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
                this.jobRuntime = jobRuntime;\r
+               logger.info("TESZT");\r
                if (StringUtils.isBlank(NEXIO_HOST)) {\r
                        logger.error(jobRuntime.getSessionMarker(), "A 'nexio.host' rendszer paraméter nem található.");\r
                        throw new NullPointerException("System is not configured properly, 'nexio.host' startup parameter missing.");\r
@@ -100,7 +101,8 @@ public class DeleteNEXIOMaterialsStep extends JobStep {
                        else\r
                                delete(name);\r
                        i++;\r
-                       setProgress(i * 100 / clips.size());\r
+                       int progress = i * 100 / clips.size();\r
+                       setProgress(progress);\r
                }\r
 \r
                return null;\r
index 0c69ee3aa414a02c362edab0a9d0c47f5d680465..fe8ca7e2306a42c09638d5d760cdcfe18ac335b2 100644 (file)
@@ -30,6 +30,7 @@ public class PASAPOOLTransferToStep extends TransferStep {
                this.sourceStoreUri = sourceStoreUri;\r
                this.sourceFileName = sourceFileName;\r
                long start = System.currentTimeMillis();\r
+\r
                Object[] result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
                RemoteFile remoteFile = sourceStoreUri.getRemoteFile(targetFileName);\r
                if (remoteFile != null && remoteFile.getSize() > 0) {\r
@@ -40,6 +41,7 @@ public class PASAPOOLTransferToStep extends TransferStep {
                                logger.info(getMarker(), "{} size is {}, upload speed was {}/sec", targetFileName, FileSizeUtils.sizeAsString(remoteFile.getSize()), speed);\r
                        }\r
                }\r
+\r
                return result;\r
        }\r
 \r
@@ -77,6 +79,7 @@ public class PASAPOOLTransferToStep extends TransferStep {
                } catch (Exception e) {\r
                        logger.error(getSessionMarker(), e.getMessage());\r
                }\r
+\r
                return result;\r
        }\r
 \r
index a7a0832fe6998d013ffe7507dab7137e2633695b..2560cfb5947e46a071642a29e10fd42a1e1159da 100644 (file)
@@ -4,33 +4,20 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 \r
 import user.commons.remotestore.IProgressEventListener;\r
-import user.commons.remotestore.ProgressEvent;\r
-import user.jobengine.server.IJobEngine;\r
-import user.jobengine.server.IJobRuntime;\r
 import user.jobengine.server.steps.shared.OctopusDataMiner;\r
 \r
 public class SyncOCTOPUSDataStep extends JobStep {\r
        private static final Logger logger = LogManager.getLogger();\r
        private IProgressEventListener progressListener;\r
 \r
-       private IProgressEventListener createListener(final IJobRuntime jobRuntime) {\r
-               return new IProgressEventListener() {\r
-                       @Override\r
-                       public void progressChanged(ProgressEvent evt) {\r
-                               //logger.debug("Progress changed to " + evt.getProgress() + "%");\r
-                               jobRuntime.incrementProgress(evt.getProgress());\r
-                       }\r
-               };\r
-       }\r
-\r
        @StepEntry\r
-       public Object[] execute(boolean includeArchived, IJobEngine jobEngine, final IJobRuntime jobRuntime) throws Exception {\r
+       public Object[] execute(boolean includeArchived, String address, String user, String pwd) throws Exception {\r
                OctopusDataMiner dataMiner = null;\r
                try {\r
-                       //jobRuntime.incrementProgress(10);\r
-                       progressListener = createListener(jobRuntime);\r
-                       dataMiner = new OctopusDataMiner();\r
-                       dataMiner.addProgressListener(progressListener);\r
+                       dataMiner = new OctopusDataMiner(address, user, pwd);\r
+                       dataMiner.addProgressListener(e -> {\r
+                               setProgress(e.getProgress());\r
+                       });\r
                        dataMiner.execute(includeArchived);\r
                } catch (Exception e) {\r
                        logger.error(getMarker(), "Általános folyamat hiba. A rendszer hibaüzenete: {}", e.getMessage());\r
index 67cc025c9b5aaae4063e73f3d7a341ebd919030d..c10084fa073a57d6e2ccc3161fa2c8fce7b8154d 100644 (file)
@@ -7,6 +7,7 @@ import org.apache.commons.net.ftp.FTPClient;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
+import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
 import user.commons.remotestore.FtpDirectoryLister;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
@@ -16,42 +17,7 @@ public class TransferStep extends JobStep {
        private static final String DOT_PART = ".part";\r
        private static final Logger logger = LogManager.getLogger();\r
 \r
-       @StepEntry\r
-       public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
-               try {\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
-                       sourceStoreUri.addProgressListener(e -> setProgress(e.getProgress()));\r
-\r
-                       StoreUri currentTargetStoreUri = getTargetStoreUri(targetStoreUri);\r
-                       tryCopy(sourceStoreUri, sourceFileName, currentTargetStoreUri, targetFileName);\r
-               } catch (Exception e) {\r
-                       logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}.", sourceFileName, sourceStoreUri, targetStoreUri);\r
-                       throw e;\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(StoreUri targetStoreUri) {\r
-               return targetStoreUri;\r
-       }\r
-\r
-       protected String getTmpExtension() {\r
-               return DOT_PART;\r
-       }\r
-\r
-       private void tryCopy(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+       private void copy(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
                String currentTargetFileName = targetFileName;\r
 \r
                boolean renameAfterCopy = false;\r
@@ -97,4 +63,48 @@ public class TransferStep extends JobStep {
                        }\r
                }\r
        }\r
+\r
+       @StepEntry\r
+       public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
+               try {\r
+                       getJobRuntime().setCancelable(false);\r
+\r
+                       Store sourceStore = getManager().getStore(sourceStoreUri.getStoreId());\r
+                       Store targetStore = getManager().getStore(targetStoreUri.getStoreId());\r
+\r
+                       setDescription("{} -> {} : {}", sourceStore.getName(), targetStore.getName(), sourceFileName);\r
+\r
+                       sourceStoreUri.addProgressListener(e -> setProgress(e.getProgress()));\r
+\r
+                       StoreUri currentTargetStoreUri = getTargetStoreUri(targetStoreUri);\r
+\r
+                       try {\r
+                               RemoteFile remoteFile = currentTargetStoreUri.getRemoteFile(targetFileName);\r
+                               if (remoteFile != null) {\r
+                                       logger.info("File {} already exists on target {}, skipping transfer", targetFileName, targetStore.getName());\r
+                               }\r
+                       } catch (Exception e) {\r
+                       }\r
+\r
+                       copy(sourceStoreUri, sourceFileName, currentTargetStoreUri, targetFileName);\r
+               } catch (Exception e) {\r
+                       logger.error(getMarker(), "Error in transfer of {} when copying from {} to {}.", sourceFileName, sourceStoreUri, targetStoreUri);\r
+                       throw e;\r
+               } finally {\r
+                       getJobRuntime().setDescription(null);\r
+                       if (sourceStoreUri != null)\r
+                               sourceStoreUri.cleanUp();\r
+                       if (targetStoreUri != null)\r
+                               targetStoreUri.cleanUp();\r
+               }\r
+               return null;\r
+       }\r
+\r
+       protected StoreUri getTargetStoreUri(StoreUri targetStoreUri) {\r
+               return targetStoreUri;\r
+       }\r
+\r
+       protected String getTmpExtension() {\r
+               return DOT_PART;\r
+       }\r
 }\r
index 34512b964661e36ced13e0b0e362631d73a896f0..a34ff7f0dfd0aaea2c82485918d6d4acaa2a7326 100644 (file)
@@ -2,13 +2,6 @@ package user.jobengine.server.steps.shared;
 \r
 import user.commons.configuration.SystemConfiguration;\r
 \r
-/*\r
- package user.jobengine.server.steps.IExternalCallback;\r
- package user.jobengine.server.steps.ExternalProfile;\r
- package user.jobengine.server.steps.ExternalProfilesConfig;\r
- package user.jobengine.server.steps.ExternalCommand;\r
-\r
- */\r
 public class ExternalCommandExecutor {\r
 \r
        public void execute(String profileName, String input, String output, IExternalCallback responseCallBack) throws Exception {\r
index 8d12f04f59cf8a4aefc78428d68fa9088a4c7061..cd4ebc756ef8cb4ca697eef10b7ebc555fbf2107 100644 (file)
@@ -32,7 +32,6 @@ import com.ibm.nosql.json.api.DBCursor;
 \r
 import user.commons.CalendarUtils;\r
 import user.commons.ListUtils;\r
-import user.commons.configuration.SystemConfiguration;\r
 import user.commons.nosql.NoSQLUtils;\r
 import user.commons.octopus.IOctopusAPI;\r
 import user.commons.remotestore.IProgressEventListener;\r
@@ -53,8 +52,8 @@ public class OctopusDataMiner {
        private static final String FIELDS_STORYFOLDER = "id,name,modified";\r
        private static final String FIELDS_STORYFOLDER_STORYIDS = "id,stories,Story.id";\r
        private static final String RUNDOWN = "Rundown";\r
-       private static final String OCTOPUS_DEVICE_NAME = "Octopus-Device-Name";\r
-       private static final String OCTOPUS_DEVICE_ID = "Octopus-Device-Id";\r
+       //      private static final String OCTOPUS_DEVICE_NAME = "Octopus-Device-Name";\r
+       //      private static final String OCTOPUS_DEVICE_ID = "Octopus-Device-Id";\r
        private static final String FIELDS = "fields";\r
        private static final String EXIT = "Exit";\r
        private static final String RESULT = "result";\r
@@ -65,9 +64,9 @@ public class OctopusDataMiner {
        private static final String MOSLABEL = "MOS: ";\r
        private static final Object STORY = "Story";\r
 \r
-       private static String OCTOPUS_API_ADDRESS = SystemConfiguration.getInstance().value("services.octopus.api.address");\r
-       private static String OCTOPUS_API_USER = SystemConfiguration.getInstance().value("services.octopus.api.user");\r
-       private static String OCTOPUS_API_PASSWORD = SystemConfiguration.getInstance().value("services.octopus.api.password");\r
+       //      private static String OCTOPUS_API_ADDRESS = SystemConfiguration.getInstance().value("services.octopus.api.address");\r
+       //      private static String OCTOPUS_API_USER = SystemConfiguration.getInstance().value("services.octopus.api.user");\r
+       //      private static String OCTOPUS_API_PASSWORD = SystemConfiguration.getInstance().value("services.octopus.api.password");\r
        private DB db;\r
        private ResteasyWebTarget webTarget;\r
        private HashSet<Long> storyIDs = new HashSet<>();\r
@@ -86,10 +85,10 @@ public class OctopusDataMiner {
        private int currentObjectIndex;\r
        private boolean disableWrite = false;\r
 \r
-       public OctopusDataMiner() {\r
+       public OctopusDataMiner(String address, String user, String pwd) {\r
                db = NoSQLUtils.getNoSQLDB();\r
                ResteasyClient client = new ResteasyClientBuilder().build();\r
-               webTarget = client.target(OCTOPUS_API_ADDRESS).register(new BasicAuthentication(OCTOPUS_API_USER, OCTOPUS_API_PASSWORD));\r
+               webTarget = client.target(address).register(new BasicAuthentication(user, pwd));\r
        }\r
 \r
        public void addProgressListener(IProgressEventListener listener) {\r
@@ -440,7 +439,8 @@ public class OctopusDataMiner {
 \r
        private Builder query(String path, String fields) {\r
                ResteasyWebTarget target = webTarget.path(path).queryParam(FIELDS, fields);\r
-               Builder result = target.request().header(OCTOPUS_DEVICE_ID, OCTOPUS_API_USER).header(OCTOPUS_DEVICE_NAME, OCTOPUS_API_PASSWORD);\r
+               //Builder result = target.request().header(OCTOPUS_DEVICE_ID, OCTOPUS_API_USER).header(OCTOPUS_DEVICE_NAME, OCTOPUS_API_PASSWORD);\r
+               Builder result = target.request();\r
                return result;\r
        }\r
 \r
index 4bfc04d13db30df8eea9c706b7f63a7e435bf4f6..6770706e1d9a91a638498efc77862afca3c4bcd3 100644 (file)
@@ -425,7 +425,9 @@ public class StoreUri extends EntityBase implements Serializable {
                if (remoteFile == null)
                        throw new Exception(String.format("RemoteFile '%s' not exists.", fileName));
                logger.info("Transfering RemoteFile {}, size {}", remoteFile.getName(), remoteFile.getSize());
+
                IDirectoryLister outputLister = RemoteFileHandler.createLister(targetStoreUri);
+
                if (outputLister == null)
                        throw new Exception("OutputLister is null.");
 
index 7339d0069894763eba36b7e7acc0f71fd690fc97..247762fb21f021fa544bf3a388afc9f6cb016993 100644 (file)
@@ -120,7 +120,7 @@ public class FtpDirectoryLister implements IDirectoryLister {
                ftpClient.enterLocalPassiveMode();\r
 \r
                //210510 ha tud, akkor menjen a gyoker konyvtarba ld. AMC ISILON valtas\r
-               ftpClient.changeWorkingDirectory("/");\r
+               //ftpClient.changeWorkingDirectory("/");\r
 \r
                if (pathElements.length > 1) {\r
                        for (int i = 1; i < pathElements.length; i++) {\r
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/036_alter_BeabbleBeach_storeuri.sql b/server/user.jobengine.osgi.db/migrations/scripts/036_alter_BeabbleBeach_storeuri.sql
new file mode 100644 (file)
index 0000000..1f5df25
--- /dev/null
@@ -0,0 +1,52 @@
+--
+--    Copyright 2010-2016 the original author or authors.
+--
+--    Licensed under the Apache License, Version 2.0 (the "License");
+--    you may not use this file except in compliance with the License.
+--    You may obtain a copy of the License at
+--
+--       http://www.apache.org/licenses/LICENSE-2.0
+--
+--    Unless required by applicable law or agreed to in writing, software
+--    distributed under the License is distributed on an "AS IS" BASIS,
+--    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--    See the License for the specific language governing permissions and
+--    limitations under the License.
+--
+
+-- // Alter PASA STOREURI change to FTP protocol
+-- Migration SQL that makes the change goes here.
+
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/PasaPool' where storeid in (select id from store where name = 'PASAPOOL');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/BeachPool' where storeid in (select id from store where name = 'PEABLEBEACH');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/SelenioPool' where storeid in (select id from store where name = 'SELENIOPOOL');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/SelenioPool/16_9' where storeid in (select id from store where name = 'SELENIOPOOL_16_9');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/SelenioPool/16_9/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_16_9_PROCESSING');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/SelenioPool/4_3' where storeid in (select id from store where name = 'SELENIOPOOL_4_3');
+@
+update storeuri set protocol='FTP', URI='isilon.bcplay.local', username='mcube', password='K6NV5aFemp', rootpath='ifs/MEDIA/SelenioPool/4_3/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_4_3_PROCESSING');
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/PasaPool' where storeid in (select id from store where name = 'PASAPOOL');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/BeachPool' where storeid in (select id from store where name = 'PEABLEBEACH');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool' where storeid in (select id from store where name = 'SELENIOPOOL');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/16_9' where storeid in (select id from store where name = 'SELENIOPOOL_16_9');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/16_9/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_16_9_PROCESSING');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/4_3' where storeid in (select id from store where name = 'SELENIOPOOL_4_3');
+@
+update storeuri set protocol='FTP', URI='10.170.100.21', username='10.170.100.21\pbadmin', password='Txhkkmot52', rootpath='MEDIA_FS/SelenioPool/4_3/Processiong' where storeid in (select id from store where name = 'SELENIOPOOL_4_3_PROCESSING');
+@
+
index 026fc1ba612d722928929ecf2d64e5794505d989..99252c3672d9dcfc667f19581ebc822869d0aa49 100644 (file)
@@ -36,6 +36,7 @@ public class MediaFinder implements IMediaFinder {
                sql.append("i.title itemtitle,");\r
                sql.append("m.id mediaid,");\r
                sql.append("m.title mediatitle,");\r
+               sql.append("m.archived,");\r
                sql.append("m.creation,");\r
                sql.append("m.length,");\r
                sql.append("m.itemtypeid mediaitemtypeid,");\r
@@ -79,10 +80,10 @@ public class MediaFinder implements IMediaFinder {
                }\r
 \r
                if (options.getFrom() != null)\r
-                       sql.append(String.format(" AND m.creation > '%s'", df.format(options.getFrom())));\r
+                       sql.append(String.format(" AND m.archived > '%s'", df.format(options.getFrom())));\r
 \r
                if (options.getTo() != null)\r
-                       sql.append(String.format(" AND m.creation < '%s'", df.format(options.getTo())));\r
+                       sql.append(String.format(" AND m.archived < '%s'", df.format(options.getTo())));\r
 \r
                if (options.isMissingProxy())\r
                        sql.append(" AND vw_mf.mediafilecount=1");\r
@@ -187,6 +188,7 @@ public class MediaFinder implements IMediaFinder {
                                media.setTitle(rs.getString("mediatitle"));\r
                                media.setHouseId(rs.getString("mediahouseid"));\r
                                media.setCreation(rs.getTimestamp("creation"));\r
+                               media.setArchived(rs.getTimestamp("archived"));\r
                                media.setLength(rs.getLong("length"));\r
                                media.setMediaFilesCount(rs.getInt("mediafilecount"));\r
                                media.setMediaFilesName(rs.getString("mediafilehouseid"));\r
index 58138c02499f421302082906ddcbe5ba6f9541cf..9c18761ecb35d7db94b2d380af9900cea4d433c8 100644 (file)
@@ -33,4 +33,6 @@ public interface IJobEngineConfiguration {
 \r
        String loadTemplateXml(String template);\r
 \r
+       void resetStepClassLoader();\r
+\r
 }\r
index 88e4177adcf3c7b65017f8ba6f47d5a4b7f20567..7857e8e19e03fd3959c6ecd23a6104d9bfdf5414 100644 (file)
@@ -711,6 +711,7 @@ public class JobEngine implements IJobEngine {
                if (schedulerService != null)
                        schedulerService.shutdown();
 
+               jobEngineConfiguration.resetStepClassLoader();
                jobEngineConfiguration.load(this, true);
 
                schedulerService = new SchedulerService(this);
@@ -812,6 +813,7 @@ public class JobEngine implements IJobEngine {
                startUpBarrier.reset();
                logger.info("JobEngine gracefully stopped");
 
+               jobEngineConfiguration.resetStepClassLoader();
                jobEngineConfiguration.load(this, false);
 
                vm.start();
@@ -821,6 +823,7 @@ public class JobEngine implements IJobEngine {
 
                schedulerService = new SchedulerService(this);
                schedulerService.startup();
+               logger.info("JobEngine gracefully started");
                isRunning = true;
        }
 
index 86d2fdc3b1acdb5165c5beb7879bb181d76ad86b..470e617f5e2277ab39d23f86aa7e5b4f90cd5d3b 100644 (file)
@@ -54,6 +54,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
        private final List<JobTemplate> templates = Collections.synchronizedList(new ArrayList<JobTemplate>());\r
        private final Map<String, BasicDBObject> schedules = new LinkedHashMap<String, BasicDBObject>();\r
        private URLClassLoader stepsClassLoader;\r
+       private boolean resetStepClassLoader;\r
 \r
        public synchronized void bindSystemConfiguration(Object service) {\r
                if (service instanceof IConfiguration) {\r
@@ -88,6 +89,12 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
 \r
                if (stepsClassLoader == null)\r
                        stepsClassLoader = createParentClassLoader();\r
+               else {\r
+                       if (resetStepClassLoader) {\r
+                               stepsClassLoader.close();\r
+                               stepsClassLoader = createParentClassLoader();\r
+                       }\r
+               }\r
 \r
                Class<IJobStep> stepClass = null;\r
 \r
@@ -108,19 +115,16 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
        }\r
 \r
        private URLClassLoader createParentClassLoader() throws MalformedURLException {\r
+               logger.info("Creating URLClassLoader");\r
                try {\r
                        String stepClassesDir = systemConfig.getConfig(DIR_CLASSES);\r
                        Path path = Paths.get(stepClassesDir);\r
                        URL[] urls = { path.toUri().toURL() };\r
-                       logger.info("Creating URLClassLoader with {}", this.getClass().getClassLoader());\r
-                       //                      stepsClassLoader = URLClassLoader.newInstance(urls, Thread.currentThread().getContextClassLoader());\r
                        stepsClassLoader = URLClassLoader.newInstance(urls, Thread.currentThread().getContextClassLoader());\r
                } catch (FileNotFoundException e) {\r
                        //nincs jobs/classes mappa\r
                        URL[] urls = {};\r
-                       logger.info("Creating URLClassLoader");\r
-                       //                      stepsClassLoader = URLClassLoader.newInstance(urls, Thread.currentThread().getContextClassLoader());\r
-                       stepsClassLoader = URLClassLoader.newInstance(urls, this.getClass().getClassLoader());\r
+                       stepsClassLoader = URLClassLoader.newInstance(urls, Thread.currentThread().getContextClassLoader());\r
                }\r
                return stepsClassLoader;\r
        }\r
@@ -366,4 +370,9 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                }\r
                return result;\r
        }\r
+\r
+       @Override\r
+       public void resetStepClassLoader() {\r
+               resetStepClassLoader = true;\r
+       }\r
 }\r
index 588bfe599a78181890fb3d4e92ac68a8bfed8630..4a6e602a89b8a46362509c0feb85b4d877cc46be 100644 (file)
@@ -152,11 +152,11 @@ public class JobStepExecutor implements IJobStepExecutor {
                                                GroovyClassLoader stepClassLoader = (GroovyClassLoader) cl;
                                                stepClassLoader.close();
 
-                                               URLClassLoader stepParentClassLoader = (URLClassLoader) cl.getParent();
-                                               stepParentClassLoader.close();
+                                               //                                              URLClassLoader stepParentClassLoader = (URLClassLoader) cl.getParent();
+                                               //                                              stepParentClassLoader.close();
                                        } else if (cl instanceof URLClassLoader) {
-                                               URLClassLoader stepClassLoader = (URLClassLoader) cl;
-                                               stepClassLoader.close();
+                                               //                                              URLClassLoader stepClassLoader = (URLClassLoader) cl;
+                                               //                                              stepClassLoader.close();
 
                                        }
                                }
index 8a1fcef07d2a005aa8a5313ceddf82e5f0865e92..b0f23b2e67a94272084f78e7d1e9ab9b950c339e 100644 (file)
@@ -61,7 +61,7 @@ public class ScheduledJob extends NativeJob { //implements InterruptableJob{
                        try {\r
                                realJob.doJob();\r
                        } catch (Exception e) {\r
-                               logger.warn(e.getMessage());\r
+                               //logger.warn(e.getMessage());\r
                        }\r
                }\r
        }\r
index 7d84e06c9e0b1aa1a5d32726c0b8a389c78b73cc..867e1ac4d6a1daf45d0fc071ad59ef1a81bbd830 100644 (file)
@@ -68,6 +68,7 @@
 \r
 \r
 <!-- Enable http to https redirect \r
+-->    \r
        <security-constraint>\r
                <web-resource-collection>\r
                        <web-resource-name>Everything on the app</web-resource-name>\r
@@ -77,5 +78,4 @@
                        <transport-guarantee>CONFIDENTIAL</transport-guarantee>\r
                </user-data-constraint>\r
        </security-constraint>\r
--->    \r
 </web-app>\r
index ea00300c78d708cad67a05acc1dd67acff9f7dc0..48146dea20c5555fdfd9705b0a134c9fd8f06a53 100644 (file)
@@ -44,7 +44,7 @@
                                        <label value="@load(each.media.houseId)" />\r
                                        <label value="@load(each.media.title)" />\r
                                        <label value="@load(each.media.mediaFileRealName)" />\r
-                                       <label style="font-size: 10px;" value="@load(each.media.creation) @converter('user.jobengine.zk.model.ShortDateConverter')" />\r
+                                       <label style="font-size: 10px;" value="@load(each.media.archived) @converter('user.jobengine.zk.model.ShortDateConverter')" />\r
                                        <cell>\r
                                                <vlayout>\r
                                                        <hlayout>\r
index 85263bb4f92f875ec4f814b0530608ca71b50704..0ce1e9e4f6468a92f89048a7beebaf9a93297c0c 100644 (file)
@@ -1,4 +1,4 @@
-version=2.7.3\r
+version=2.7.4\r
 footer=2016-2021 © Copyright User Rendszerház Kft.\r
 \r
 login_info=Információ\r
index dc13abda18b80d379ee0ed1b8e0f56a3d5464446..220de981047d4a3525d82515b0d0e0ba5fd505ac 100644 (file)
@@ -19,6 +19,8 @@ public class ComponentBinder {
                if (service instanceof IJobEngine) {\r
                        jobEngine = (IJobEngine) service;\r
                        logger.info("IJobEngine service binded");\r
+\r
+                       FrameworkUtil.getBundle(ClassFromBundle).getBundleContext().\r
                }\r
        }\r
 \r