git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Wed, 9 Dec 2020 10:04:49 +0000 (10:04 +0000)
committervasary.daniel <TFS\vasary.daniel>
Wed, 9 Dec 2020 10:04:49 +0000 (10:04 +0000)
27 files changed:
server/-configuration/test-debug-mediacube-mv-9999.launch [new file with mode: 0644]
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/GGGClassLoader.java [new file with mode: 0644]
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportCheckItem.java
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportCleanMissingTSM.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/PASAPOOLTransferToStep.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/SyncSubtitlesStep.java [moved from server/user.jobengine.executors/src/user/jobengine/server/steps/SyncSubtitlesStep.java with 100% similarity]
server/user.jobengine.executors/jobtemplates/mediavivantis/archive-material.xml
server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/ArchiveRecursive.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CleanupMountedLocationStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIOMaterialsStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateArchiveItemStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java
server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataType.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTypeDetector.java
server/user.jobengine.executors/src/user/jobengine/server/steps/OctopusDataMiner.java
server/user.jobengine.executors/src/user/jobengine/server/steps/OutputPathAndNameSelectorStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/PlanAirExtensions.java
server/user.jobengine.executors/src/user/jobengine/server/steps/ProjectCleanupMountedLocationStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/UpdateGhostMediaDataStep.java [moved from server/user.jobengine.executors/src/user/jobengine/server/steps/UpdateGhostMediaData.java with 93% similarity]
server/user.jobengine.osgi.server/src/user/jobengine/server/JobStepExecutor.java
server/user.mediacube.gui/resources/i3-label_hu.properties

diff --git a/server/-configuration/test-debug-mediacube-mv-9999.launch b/server/-configuration/test-debug-mediacube-mv-9999.launch
new file mode 100644 (file)
index 0000000..d46d216
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="org.eclipse.jdt.launching.remoteJavaApplication">\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
+<listEntry value="/user.jobengine.osgi.server"/>\r
+</listAttribute>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">\r
+<listEntry value="4"/>\r
+</listAttribute>\r
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>\r
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.commons.zk&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/commons-codec-1.10.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/commons-fileupload-1.2.1.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/commons-io-1.4.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/commons-logging-1.1.1.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zcommon.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zel.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zhtml.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_bsh.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_commons-collections.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_elinez.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_eplotz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_Filters.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_flashchart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_gmapsz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jackson-annotations.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jackson-core.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jackson-databind.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jasperreports.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_javassist.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jcommon.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jfreechart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_jsp.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_monitor.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_psz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_sapphire.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_shchart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_silvertail.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_timelinez.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_timeplotz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk_zuljsp.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zk.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zkbind.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zkcharts.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zkex_r.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zkmax.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zkplus.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zml.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zsoup.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zul.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zuti.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.commons.zk/lib\/zweb.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.mediacube.gui&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.mediacube.gui/WEB-INF\/classes&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.mediacube.metadata&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.commons.log4j2&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.jobengine.executors&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.jobengine.osgi.commons&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.jobengine.osgi.db&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.jobengine.osgi.server&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkcharts.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/classes&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-codec-1.10.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-fileupload-1.2.1.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-io-1.4.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-logging-1.1.1.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zcommon.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zel.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zhtml.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_bsh.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_commons-collections.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_elinez.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_eplotz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_Filters.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_flashchart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_gmapsz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-annotations.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-core.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-databind.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jasperreports.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_javassist.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jcommon.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jfreechart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jsp.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_monitor.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_psz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_sapphire.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_shchart.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_silvertail.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_timelinez.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_timeplotz.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_zuljsp.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkbind.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkex_r.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkmax.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkplus.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zml.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zsoup.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zul.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zuti.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zweb.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.jobengine.osgi.services&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;user.tsm.client&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>\r
+<booleanAttribute key="org.eclipse.jdt.launching.ALLOW_TERMINATE" value="false"/>\r
+<mapAttribute key="org.eclipse.jdt.launching.CONNECT_MAP">\r
+<mapEntry key="hostname" value="10.11.1.90"/>\r
+<mapEntry key="port" value="9999"/>\r
+</mapAttribute>\r
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="user.jobengine.osgi.server"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_CONNECTOR_ID" value="org.eclipse.jdt.launching.socketAttachConnector"/>\r
+</launchConfiguration>\r
diff --git a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/GGGClassLoader.java b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/GGGClassLoader.java
new file mode 100644 (file)
index 0000000..1c9109f
--- /dev/null
@@ -0,0 +1,7 @@
+package hu.user.mediacube.executors.tests;\r
+\r
+import groovy.lang.GroovyClassLoader;\r
+\r
+public class GGGClassLoader extends GroovyClassLoader {\r
+\r
+}\r
index 6fb7c300b5c4d010dee1fabcac0e4cff765eca03..fe9a0a14c2be9aca2eca04db2f5c20fa807fd320 100644 (file)
@@ -1,8 +1,12 @@
 package hu.user.mediacube.executors.tests;\r
 \r
+import static org.junit.Assert.assertFalse;\r
 import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.assertTrue;\r
 \r
 import java.io.File;\r
+import java.io.IOException;\r
+import java.lang.reflect.Method;\r
 import java.nio.file.DirectoryStream;\r
 import java.nio.file.Files;\r
 import java.nio.file.Path;\r
@@ -66,6 +70,28 @@ public class SmallTests {
                return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];\r
        }\r
 \r
+       Class<?> parseClassHierarchy(GroovyClassLoader cl, String root, String className) throws IOException {\r
+               System.out.println("Loading " + className);\r
+               Path path = Paths.get(root, className + ".java");\r
+               Class<?> result = null;\r
+               if (!path.toFile().exists())\r
+                       return result;\r
+               List<String> lines = Files.readAllLines(path);\r
+\r
+               for (String line : lines) {\r
+                       if (line.contains("extends")) {\r
+                               String[] tokens = line.split("extends");\r
+                               String parent = tokens[tokens.length - 1];\r
+                               parent = parent.replace("{", "").trim();\r
+\r
+                               parseClassHierarchy(cl, root, parent);\r
+                               break;\r
+                       }\r
+               }\r
+               result = cl.parseClass(path.toFile());\r
+               return result;\r
+       }\r
+\r
        @Test\r
        public void test0() throws Exception {\r
                File f = new File("/opt/test.txt");\r
@@ -934,27 +960,51 @@ public class SmallTests {
        public void test9995() throws Exception {\r
                String className = "TestStep1";\r
                String root = "/opt/steps";\r
+\r
                try (GroovyClassLoader cl = new GroovyClassLoader(this.getClass().getClassLoader())) {\r
-                       List<String> lines = Files.readAllLines(Paths.get(root, className + ".java"));\r
-                       String packageName = null;\r
-                       for (String line : lines) {\r
-                               String trimedLine = line.trim();\r
-                               if (trimedLine.startsWith("package")) {\r
-                                       packageName = trimedLine.replace("package", "").replace(";", ".");\r
-                               }\r
 \r
-                               if (packageName != null && trimedLine.startsWith("import") && trimedLine.contains(packageName)) {\r
-                                       System.out.println(trimedLine);\r
-                               }\r
-                       }\r
+                       Class<?> myClass = parseClassHierarchy(cl, root, className);\r
+                       System.out.println(myClass.getCanonicalName());\r
+                       Method method = myClass.getMethod("execute");\r
+                       method.invoke(myClass.newInstance());\r
+               } catch (Exception e) {\r
+                       throw e;\r
+               }\r
 \r
-                       //                      Class<?> myClass = cl.parseClass(Paths.get("/opt/steps/TestStep1.java").toFile());\r
-                       //                      System.out.println(myClass.getCanonicalName());\r
-                       //                      Method method = myClass.getMethod("execute");\r
-                       //                      method.invoke(myClass.newInstance());\r
+       }\r
+\r
+       @Test\r
+       public void test9996() throws Exception {\r
+               String className = "TestStep1";\r
+               String root = "/opt/steps";\r
+\r
+               try (GroovyClassLoader cl = new GroovyClassLoader(this.getClass().getClassLoader())) {\r
+                       Path path = Paths.get(root, className + ".java");\r
+                       cl.addURL(path.toUri().toURL());\r
+                       Class<?> myClass = cl.loadClass("user.jobengine.server.steps.TestStep1", true, true);\r
+                       System.out.println(myClass.getCanonicalName());\r
+                       Method method = myClass.getMethod("execute");\r
+                       method.invoke(myClass.newInstance());\r
                } catch (Exception e) {\r
                        throw e;\r
                }\r
 \r
        }\r
+\r
+       @Test\r
+       public void test9997() throws Exception {\r
+               Path sut = Paths.get("/opt/test.mxf");\r
+               Path catched = Paths.get("/opt/.STATUS/test.mxf.catched");\r
+               assertFalse(catched.toFile().exists());\r
+               assertFalse(EscortFiles.isMediaCatched(sut));\r
+\r
+               EscortFiles.createMediaCatch(sut);\r
+\r
+               assertTrue(catched.toFile().exists());\r
+               assertTrue(EscortFiles.isMediaCatched(sut));\r
+\r
+               EscortFiles.removeMediaCatch(sut);\r
+               assertFalse(catched.toFile().exists());\r
+               assertFalse(EscortFiles.isMediaCatched(sut));\r
+       }\r
 }\r
index b15d1ef0e1ef7b092f2666df441e3ad7e338482c..e26ca596617c306f9ff559b592c08fb42c1415c2 100644 (file)
@@ -16,8 +16,8 @@ import user.jobengine.db.IStatementDecorator;
 import user.jobengine.db.Item;\r
 import user.jobengine.db.ItemManager;\r
 import user.jobengine.db.Media;\r
+import user.jobengine.server.steps.MetadataType;\r
 import user.jobengine.server.steps.MetadataTypeDetector;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 import user.jobengine.server.steps.PlanAirExtensions;\r
 \r
 public class SupportCheckItem {\r
index 93d705167133be92410f2bd35beb23f553b59289..e9153071829258b639e305b75d2e53d9371c9170 100644 (file)
@@ -22,8 +22,8 @@ import user.jobengine.db.Item;
 import user.jobengine.db.ItemManager;\r
 import user.jobengine.db.MediaFile;\r
 import user.jobengine.db.Store;\r
+import user.jobengine.server.steps.MetadataType;\r
 import user.jobengine.server.steps.MetadataTypeDetector;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 import user.jobengine.server.steps.PlanAirExtensions;\r
 \r
 public class SupportCleanMissingTSM {\r
index f404fcf18e5075e8e24cf3440043b9b3698dc1a9..db31f9240fd7b4d908133551b5f35906775cb37b 100644 (file)
@@ -104,22 +104,22 @@ public class PASAPOOLTransferToStep extends TransferStep {
                        mi.process();\r
 \r
                        if (isHD(mi)) {\r
-                               logger.info(marker, "%s is HD", sourceFileName);\r
+                               logger.info(marker, "{} is HD", sourceFileName);\r
                                return;\r
                        }\r
 \r
                        if (isSD_HIGH_16_9(mi)) {\r
-                               logger.info(marker, "%s is SD_HIGH_16_9", sourceFileName);\r
+                               logger.info(marker, "{} is SD_HIGH_16_9", sourceFileName);\r
                                return;\r
                        }\r
 \r
                        if (isSD_HIGH_4_3(mi)) {\r
-                               logger.info(marker, "%s is SD_HIGH_4_3", sourceFileName);\r
+                               logger.info(marker, "{} is SD_HIGH_4_3", sourceFileName);\r
                                return;\r
                        }\r
 \r
                        if (isSD_MAIN_422(mi)) {\r
-                               logger.info(marker, "%s is SD_MAIN_422", sourceFileName);\r
+                               logger.info(marker, "{} is SD_MAIN_422", sourceFileName);\r
                                return;\r
                        }\r
                } catch (Exception e) {\r
index d2fe5e9312ccf279e64682742cb3ecaf98a0a1d3..0898657bc3231dec60e0d5fca501c3df568f7c8a 100644 (file)
@@ -22,7 +22,7 @@
                                </output>\r
                        </outputs>\r
                </calljobstep>\r
-               <calljobstep id="id2" type="user.jobengine.server.steps.TSMBackupStep" weight="1">\r
+               <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
                        <inputs>\r
                                <input>\r
                                        <parameter name="archiveItem" />\r
                                <input>\r
                                        <variable name="mediaCubeMedia" />\r
                                </input>\r
-                               <input>\r
-                                       <parameter name="killDateDays" />\r
-                               </input>\r
                        </inputs>\r
-               </calljobstep>\r
-               <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
+               </calljobstep>          \r
+               <calljobstep id="id2" type="user.jobengine.server.steps.TSMBackupStep" weight="1">\r
                        <inputs>\r
                                <input>\r
                                        <parameter name="archiveItem" />\r
                                <input>\r
                                        <variable name="mediaCubeMedia" />\r
                                </input>\r
+                               <input>\r
+                                       <parameter name="killDateDays" />\r
+                               </input>\r
                        </inputs>\r
-               </calljobstep>          \r
+               </calljobstep>\r
        </commands>\r
 </jobtemplate>
\ No newline at end of file
index 2763174f7069457054ce1dc96bbe01f285050a7b..7e507404438b3272d958a19f1d5203508ea44d37 100644 (file)
@@ -2,7 +2,8 @@ package user.jobengine.server.steps;
 \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
@@ -11,8 +12,10 @@ import java.nio.file.attribute.FileAttribute;
 import java.nio.file.attribute.PosixFilePermission;\r
 import java.nio.file.attribute.PosixFilePermissions;\r
 import java.text.SimpleDateFormat;\r
+import java.util.Arrays;\r
 import java.util.Date;\r
 import java.util.List;\r
+import java.util.Map;\r
 import java.util.Set;\r
 \r
 import org.apache.commons.io.FilenameUtils;\r
@@ -22,7 +25,10 @@ import org.apache.logging.log4j.Logger;
 \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
@@ -31,7 +37,7 @@ import user.mediacube.metadata.interfaces.MetadataProviderType;
 import user.mediacube.metadata.interfaces.MetadataType;\r
 import user.mediacube.metadata.interfaces.PlanAirMetadataListOptions;\r
 \r
-public class ArchiveRecursive extends JobStep {\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
@@ -45,6 +51,41 @@ public class ArchiveRecursive extends JobStep {
        private static final String KILL_DATE_DAYS = "killDateDays";\r
        private static final String CONFLICT = ".CONFLICT";\r
        private SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");\r
+       private String sourcePath;\r
+\r
+       private List<String> skipPathNames = Arrays.asList("!ARCHIVALAS_ALATT", "Transfered", "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
@@ -68,7 +109,7 @@ public class ArchiveRecursive extends JobStep {
                        result.setMediaHouseId(mediaHouseId);\r
                        result.setMediaTitle(fileName);\r
                        //TODO kesobb kivenni\r
-                       result.setMediaDescription("/OMARCHIVE");\r
+                       //result.setMediaDescription("/OMARCHIVE");\r
                        result.setMediaType("Generic");\r
                }\r
 \r
@@ -78,27 +119,14 @@ public class ArchiveRecursive extends JobStep {
 \r
        @StepEntry\r
        public Object[] execute(String sourcePath, int killDateDays, int limit) {\r
-               DirectoryStream<Path> directoryStream = null;\r
+               this.sourcePath = sourcePath;\r
+               this.killDateDays = killDateDays;\r
+               this.limit = limit;\r
                try {\r
-                       DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
-                       int current = 0;\r
-                       for (Path p : stream) {\r
-                               if (processPathItem(p, killDateDays))\r
-                                       current++;\r
-                               if (current == limit)\r
-                                       return null;\r
-                       }\r
+                       Files.walkFileTree(Paths.get(sourcePath), this);\r
                } catch (Exception e) {\r
-                       logger.error(getSessionMarker(), "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
+                       logger.error(getSessionMarker(), "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath, e.getMessage());\r
                }\r
-\r
                return null;\r
        }\r
 \r
@@ -141,7 +169,7 @@ public class ArchiveRecursive extends JobStep {
                return result;\r
        }\r
 \r
-       private boolean handleConflict(Path sourcePath) throws Exception {\r
+       private boolean handleArchiveConflict(Path sourcePath) throws Exception {\r
                boolean result = false;\r
                String sourceFileName = sourcePath.getFileName().toString();\r
                if (getManager().isMediaFileExists(sourceFileName)) {\r
@@ -177,59 +205,78 @@ public class ArchiveRecursive extends JobStep {
                return result;\r
        }\r
 \r
-       private boolean processPathItem(Path mediaFilePath, int killDateDays) throws Exception {\r
-               File mediaFile = mediaFilePath.toFile();\r
-               if (mediaFile.isDirectory())\r
-                       return false;\r
-\r
-               Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), EscortFiles.STATUSFOLDER, mediaFilePath.getFileName().toString());\r
+       @Override\r
+       public FileVisitResult postVisitDirectory(Path paramT, IOException paramIOException) throws IOException {\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
 \r
-               if (EscortFiles.isCatchedFileExists(dotStorePath))\r
-                       return false;\r
+       @Override\r
+       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes paramBasicFileAttributes) throws IOException {\r
+               Path dirName = dir.getFileName();\r
 \r
-               //mar letezik az archivumban, atmozgatjuk\r
-               if (handleConflict(mediaFilePath))\r
-                       return false;\r
+               if (skipPathNames.contains(dirName.toString())) {\r
+                       //logger.info("Skipping {}", dir);\r
+                       return FileVisitResult.SKIP_SUBTREE;\r
+               } else\r
+                       logger.info("PreVisit {}", dir);\r
 \r
-               ArchiveItem archiveItem = createArchiveItem(mediaFilePath);\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
 \r
-               if (archiveItem == null) {\r
-                       logger.warn("{} has no metadata specified.", mediaFile.getName());\r
+       private boolean processPathItem(Path mediaPath) throws Exception {\r
+               if (submitted == limit)\r
                        return false;\r
-               }\r
 \r
-               if (StringUtils.isBlank(archiveItem.getItemHouseId())) {\r
-                       logger.warn("{} has no Item HouseID specified in metadata.", mediaFile.getName());\r
+               File mediaFile = mediaPath.toFile();\r
+               if (mediaFile.isDirectory())\r
                        return false;\r
-               }\r
 \r
-               if (StringUtils.isBlank(archiveItem.getItemTitle())) {\r
-                       logger.warn("{} has no Item Title specified in metadata.", mediaFile.getName());\r
+               if (EscortFiles.isMediaCatched(mediaPath))\r
                        return false;\r
-               }\r
 \r
-               if (StringUtils.isBlank(archiveItem.getMediaHouseId())) {\r
-                       logger.warn("{} has no Media HouseID specified in metadata.", mediaFile.getName());\r
+               if (!canReadMediaInfo(mediaPath))\r
                        return false;\r
-               }\r
 \r
-               if (StringUtils.isBlank(archiveItem.getMediaTitle())) {\r
-                       logger.warn("{} has no Media Title specified in metadata.", mediaFile.getName());\r
+               if (handleArchiveConflict(mediaPath))\r
                        return false;\r
-               }\r
+\r
+               ArchiveItem archiveItem = createArchiveItem(mediaPath);\r
 \r
                try {\r
-                       IJobRuntime runtime = getEngine().submit(JOBTEMPLATE, ARCHIVE, ListUtils.asMap(ARCHIVE_ITEM, archiveItem, KILL_DATE_DAYS, killDateDays));\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(null, 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
 \r
-                       EscortFiles.createCatchedFile(dotStorePath);\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
-                       throw e;\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
index 5bcad928206cd434bccd23c002135523faebf7cb..7fa3d092b409f27f947cd11c99fe6ac234d751ec 100644 (file)
@@ -41,8 +41,8 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
 \r
        private static boolean isEmpty(final Path directory) throws IOException {\r
                try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(directory)) {\r
-                       final int[] count = { 0 };\r
-                       final int[] specialCount = { 0 };\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
@@ -59,8 +59,8 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
 \r
        private Marker marker;\r
 \r
-       final int[] allCount = { 0 };\r
-       final int[] currentCount = { 0 };\r
+       final int[] allCount = new int[] { 0 };\r
+       final int[] currentCount = new int[] { 0 };\r
 \r
        private Path sourcePath;\r
        private SimpleDateFormat dateFormat;\r
@@ -188,7 +188,8 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
        private void processPathItem(Path filePath) {\r
                currentCount[0]++;\r
 \r
-               setProgress(currentCount[0] * 100 / allCount[0]);\r
+               int progress = currentCount[0] * 100 / allCount[0];\r
+               setProgress(progress);\r
 \r
                logger.info("Checking {}", filePath);\r
                List<Path> killDateFiles = getKillDateFiles(filePath);\r
@@ -243,8 +244,8 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
 \r
                removeFile(Paths.get(filePath.toString() + EWC2EXT));\r
                removeFile(Paths.get(filePath.toString() + XMPEXT));\r
-               removeFile(Paths.get(Paths.get(filePath.getParent().toString(), STATUSFOLDER, filePath.getFileName().toString()) + CATCHEDEXT));\r
-               removeFile(Paths.get(Paths.get(filePath.getParent().toString(), STATUSFOLDER, filePath.getFileName().toString()) + JSONEXT));\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
index 5fdb991840e56252a58d0681a7f7e407403df8be..008369b1340402a4d5b7218d000c902dc5575674 100644 (file)
@@ -34,7 +34,6 @@ import user.commons.remotestore.RemoteStoreProtocol;
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class CopyForArchiveNEXIOMaterialsStep extends JobStep {\r
        private static final String SCHEDULED_FORMAT = "yyyy.MM.dd HH:mm";\r
index cec48f78e56ab7c63168618c8f907b19d4613061..b169edf54edc8e0304a14de49ea341ad5466fbe8 100644 (file)
@@ -40,7 +40,6 @@ public class CreateArchiveItemStep extends JobStep {
                } finally {\r
                        setProgress(100);\r
                }\r
-               Object[] result = { archiveItem };\r
-               return result;\r
+               return new Object[] { archiveItem };\r
        }\r
 }\r
index 0128e099291150d5f434fe1dafe4dbc473b8f6ae..5a1ddc5f024904516a74937a277d3337c855b2ab 100644 (file)
@@ -23,7 +23,7 @@ public class CreateMissingLowresStep extends JobStep {
 \r
        @StepEntry\r
        public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
-               Object[] result = { null, null, "%s", null, 0, true };\r
+               Object[] result = new Object[] { null, null, "%s", null, 0, true };\r
                marker = (MediaCubeMarker) jobRuntime.getSessionMarker();\r
                DB db = NoSQLUtils.getNoSQLDB();\r
                DBCollection collection = db.getCollection("missing_lowres");\r
@@ -57,7 +57,7 @@ public class CreateMissingLowresStep extends JobStep {
        }\r
 \r
        private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {\r
-               Media[] result = { null };\r
+               Media[] result = new Media[] { null };\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 FETCH FIRST ROW ONLY";\r
                manager.executeQuery(query, rs -> {\r
                        try {\r
index e885a7a0a9a890feea4b64c829da3b4b5e2f34e0..cce5921f87a18848c20f7bca84259f1841f48b17 100644 (file)
@@ -62,6 +62,7 @@ public class EscortFiles {
        private static final String KILLDATE_FILENAME = "%s.%s.killdate";\r
        private static final String FORMAT_KILLDATENAME = "yyyyMMdd";\r
        public static final String STATUSFOLDER = ".STATUS";\r
+       public static final String CONFLICTFOLDER = ".CONFLICT";\r
 \r
        public static String composeKillDate(int days) {\r
                Calendar killDate = Calendar.getInstance();\r
@@ -89,6 +90,22 @@ public class EscortFiles {
                Files.copy(Paths.get(escortFile), Paths.get(escortFile + "." + extension));\r
        }\r
 \r
+       /***\r
+        * A media eleresi utjan alapjan a .STATUS almappaban letrehozza a .catch fajlt.\r
+        *\r
+        * @param mediaFile\r
+        * @throws IOException\r
+        */\r
+       public static void createMediaCatch(Path mediaFile) throws IOException {\r
+               Path catchedFile = createMediaCathFilePath(mediaFile);\r
+               ensureUNCFolder(mediaFile.getParent());\r
+               Files.createFile(catchedFile);\r
+       }\r
+\r
+       private static Path createMediaCathFilePath(Path mediaFile) {\r
+               return Paths.get(mediaFile.getParent().toString(), STATUSFOLDER, mediaFile.getFileName() + DOT_CATCHED);\r
+       }\r
+\r
        public static void createMetadata(String filePath, String fileName, String metadata) throws IOException {\r
                ensureUNCFolder(filePath, STATUSFOLDER);\r
                String metadataFileName = fileName + DOT_JSON;\r
@@ -220,6 +237,17 @@ public class EscortFiles {
                return catchedFilePath.toFile().exists();\r
        }\r
 \r
+       /***\r
+        * A media eleresi utjan alapjan a .STATUS almappaban vizsgalja .catch fajl letezeset.\r
+        *\r
+        * @param mediaFile\r
+        * @return\r
+        */\r
+       public static boolean isMediaCatched(Path mediaFile) {\r
+               Path catchedFile = createMediaCathFilePath(mediaFile);\r
+               return catchedFile.toFile().exists();\r
+       }\r
+\r
        public static boolean isMetadataExists(String filePath, String fileName) throws IOException {\r
                boolean result = false;\r
                String metadataFileName = fileName + DOT_JSON;\r
@@ -256,6 +284,17 @@ public class EscortFiles {
                remove(Paths.get(escortFile.toString() + DOT_CATCHED));\r
        }\r
 \r
+       /***\r
+        * A media eleresi utjan alapjan a .STATUS almappabol torli a .catch fajlt.\r
+        *\r
+        * @param mediaFile\r
+        * @throws IOException\r
+        */\r
+       public static void removeMediaCatch(Path mediaFile) {\r
+               Path catchedFile = createMediaCathFilePath(mediaFile);\r
+               remove(catchedFile);\r
+       }\r
+\r
        public static void setNEXIOKillDate(int killDateDays, String targetFileName, String nexioAgency, StoreUri targetUri) throws Exception {\r
                OutputStream outStream = null;\r
                try {\r
@@ -268,8 +307,8 @@ public class EscortFiles {
                        String xml = targetFileName + ".xml";\r
                        outStream = targetFTP.storeFileStream(xml);\r
                        if (outStream == null) {\r
-                               throw new NullPointerException(\r
-                                               "Can not open: " + targetFileName.substring(0, targetFileName.lastIndexOf('.')) + ".xml" + " Reply:" + targetFTP.getReplyString());\r
+                               throw new NullPointerException("Can not open: " + targetFileName.substring(0, targetFileName.lastIndexOf('.')) + ".xml" + " Reply:"\r
+                                               + targetFTP.getReplyString());\r
                        }\r
                        outStream.write(killDateFile);\r
                        outStream.flush();\r
index 81f199c03615dedd8d7dcafaded2979c6dda990f..bf8077918ae5abb0de4489c1ba4ab4cff3435b30 100644 (file)
@@ -4,7 +4,6 @@ import com.ibm.nosql.json.api.BasicDBObject;
 \r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.IResultSetConsumer;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class ItemManagerExtensions {\r
 \r
index d7085875c5392211098c1ec2d4b6b447490cc09f..d19382037bfb7a731bae89825c2dc055aac67953 100644 (file)
@@ -34,7 +34,8 @@ public class MetadataTransformStep extends JobStep {
        private static final String ITEM_MANAGER_IS_NULL = "ItemManager is null";\r
        public static final String DEFAULT_MEDIATYPE = "Generic";\r
        private ItemManager itemManager;\r
-       private Marker marker;\r
+\r
+       private Marker marker;;\r
 \r
        private void addTags(ArchiveItem archiveItem, Media mediaCubeMedia) {\r
                BasicDBList tags = archiveItem.getTags();\r
@@ -154,7 +155,7 @@ public class MetadataTransformStep extends JobStep {
        }\r
 \r
        private Item getExistingItem(String itemHouseId, String itemTitle) {\r
-               Item[] result = { null };\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
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataType.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataType.java
new file mode 100644 (file)
index 0000000..12e166c
--- /dev/null
@@ -0,0 +1,5 @@
+package user.jobengine.server.steps;\r
+\r
+public enum MetadataType {\r
+       TrafficMaterial, TrafficPromo, TrafficAD, OctopusStory, OctopusPlaceholder, Generic\r
+}\r
index 778dd7b9b82f15c69f5537fe81b73df6d541606c..0bb6992343549cd816c95c24f0d9ca386e41daea 100644 (file)
@@ -4,10 +4,6 @@ import org.apache.commons.lang.StringUtils;
 \r
 public class MetadataTypeDetector {\r
 \r
-       public enum MetadataType {\r
-               TrafficMaterial, TrafficPromo, TrafficAD, OctopusStory, OctopusPlaceholder, Generic\r
-       }\r
-\r
        private static final String HYPHEN = "-";\r
        private static final String DOT = ".";\r
 \r
index 57f5cadb7fab3ac84b84053585c5e61c59861218..a2ce97bd0182a6962ecb29828e86b901b073010b 100644 (file)
@@ -36,7 +36,6 @@ import user.commons.nosql.NoSQLUtils;
 import user.commons.octopus.IOctopusAPI;\r
 import user.commons.remotestore.IProgressEventListener;\r
 import user.commons.remotestore.ProgressEvent;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class OctopusDataMiner {\r
        private static final String MOS_ABSTRACT = "<mosAbstract>";\r
index 7ac816288d938cc14926afe5733a4a047bee413a..7148df4c366c70d84b8c31584c2663ea9111bfb3 100644 (file)
@@ -17,7 +17,6 @@ import org.apache.logging.log4j.Marker;
 import user.jobengine.db.ArchivedMedia;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class OutputPathAndNameSelectorStep extends JobStep {\r
 \r
@@ -66,7 +65,7 @@ public class OutputPathAndNameSelectorStep extends JobStep {
        @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 IOException {\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
@@ -92,34 +91,35 @@ public class OutputPathAndNameSelectorStep extends JobStep {
        }\r
 \r
        private String getFolderById(String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder, String octopusOutputFolder,\r
-                       String genericOutputFolder, String houseId, ArchivedMedia archivedMedia) {\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
-               switch (mdType) {\r
-               case Generic:\r
-                       result = genericOutputFolder;\r
-                       break;\r
-               case OctopusPlaceholder:\r
-               case OctopusStory:\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
+               case "TrafficMaterial":\r
                        result = materialOutputFolder;\r
                        break;\r
-               case TrafficPromo:\r
+               case "TrafficPromo":\r
                        result = promoOutputFolder;\r
                        break;\r
-               case TrafficAD:\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 = { targetPath.toString() };\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
@@ -142,7 +142,8 @@ public class OutputPathAndNameSelectorStep extends JobStep {
                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, e.getMessage());\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
index 46d1f7976d61314e28dff53f4bc678ead2f05cc2..8e7cef260bbc145d435fb994c3f1f9b32e7b48db 100644 (file)
@@ -31,7 +31,6 @@ import user.commons.mediatool.Timecode.Type;
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.IResultSetConsumer;\r
 import user.jobengine.db.IStatementDecorator;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class PlanAirExtensions {\r
        private static final Logger logger = LogManager.getLogger();\r
index 096ef6b7756a459599d1df5857c21786ef3dc437..3fdc396a8fb66102deb8e7952cb04c28ac5a3f6a 100644 (file)
@@ -25,7 +25,6 @@ import org.apache.logging.log4j.Marker;
 \r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
-import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class ProjectCleanupMountedLocationStep extends JobStep implements FileVisitor<Path> {\r
 \r
index 07743474dda552eef6c621e247e00c8927a79ff8..a9589e01f56acef9938a2976e8dbd9d3b63bedcf 100644 (file)
@@ -60,7 +60,7 @@ public class TSMRestoreStep extends JobStep {
                String targetFileName = String.format(targetNamePattern, sourceFileName);\r
                try {\r
                        String details = String.format("%s (%d frames)", sourceFileName, mediaCubeMedia.getLength());\r
-                       jobRuntime.setDescription(String.format("%s: %s", jobRuntime.getDescription(), details));\r
+                       jobRuntime.setDescription(details);\r
                        beforeRestore(targetUri, targetNamePattern);\r
                        final IJobRuntime runtime = jobRuntime;\r
                        sourceUri.addProgressListener(new IProgressEventListener() {\r
index 310df0d2f365bcdbaada0dc9809e91263d6e600f..5b3907d4d6267d01b039e69d43e8a236b897563c 100644 (file)
@@ -29,7 +29,7 @@ public class TranscodeFFAStranStep extends JobStep {
        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();\r
+       private static final Logger logger = LogManager.getLogger("TranscodeFFAStranStep");\r
        private IItemManager manager;\r
        private Store store;\r
        private FileType fileType;\r
similarity index 93%
rename from server/user.jobengine.executors/src/user/jobengine/server/steps/UpdateGhostMediaData.java
rename to server/user.jobengine.executors/src/user/jobengine/server/steps/UpdateGhostMediaDataStep.java
index b13d49625402b45bfba89536bbef4ac9c9ce1bea..1edbda88b77de27c9b7d97e4353d93142d9e154f 100644 (file)
@@ -13,9 +13,8 @@ import user.jobengine.db.MediaFile;
 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 UpdateGhostMediaData extends JobStep {\r
+public class UpdateGhostMediaDataStep extends JobStep {\r
        private static final Logger logger = LogManager.getLogger();\r
        private Marker marker;\r
 \r
index 23e19ad5d08abcf03fa8146301fe5f8aca68711c..6f26e22f4531ec1c7d36603d79b2365b239262bc 100644 (file)
@@ -1,6 +1,9 @@
 package user.jobengine.server;
 
+import java.io.IOException;
 import java.net.URLClassLoader;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
@@ -230,16 +233,20 @@ public class JobStepExecutor implements IJobStepExecutor {
                if (isGroovyStep()) {
                        try (GroovyClassLoader gcl = new GroovyClassLoader(parentLoader)) {
                                String stepsDir = System.getProperty("jobengine.jobsteps.groovy.root", "");
-                               for (String executorName : jobEngine.getExecutors().keySet()) {
-                                       if (!executorName.endsWith(".java"))
-                                               continue;
 
-                                       Class<?> myClass = gcl.parseClass(Paths.get(stepsDir, executorName).toFile());
-                                       if (stepUnitName.equals(executorName)) {
-                                               result = (IJobStep) myClass.newInstance();
-                                               break;
-                                       }
-                               }
+                               Class<?> myClass = parseClassHierarchy(gcl, stepsDir, stepUnitName);
+                               result = (IJobStep) myClass.newInstance();
+
+                               //                              for (String executorName : jobEngine.getExecutors().keySet()) {
+                               //                                      if (!executorName.endsWith(".java"))
+                               //                                              continue;
+                               //
+                               //                                      Class<?> myClass = gcl.parseClass(Paths.get(stepsDir, executorName).toFile());
+                               //                                      if (stepUnitName.equals(executorName)) {
+                               //                                              result = (IJobStep) myClass.newInstance();
+                               //                                              break;
+                               //                                      }
+                               //                              }
                        } catch (Exception e) {
                                logger.error(e.getMessage());
                                throw e;
@@ -279,6 +286,27 @@ public class JobStepExecutor implements IJobStepExecutor {
                return isRemote;
        }
 
+       private Class<?> parseClassHierarchy(GroovyClassLoader cl, String root, String className) throws IOException {
+               Path path = Paths.get(root, className);
+               Class<?> result = null;
+               if (!path.toFile().exists())
+                       return result;
+               List<String> lines = Files.readAllLines(path);
+
+               for (String line : lines) {
+                       if (line.contains("extends")) {
+                               String[] tokens = line.split("extends");
+                               String parent = tokens[tokens.length - 1];
+                               parent = parent.replace("{", "").trim();
+
+                               parseClassHierarchy(cl, root, parent);
+                               break;
+                       }
+               }
+               result = cl.parseClass(path.toFile());
+               return result;
+       }
+
        @Override
        public void revoke(IJobRuntime jobRuntime) {
                queue.remove(jobRuntime);
index e67cb167fc49e6a21928b42788ff95d796d1e262..afba507ebd23a1a7f9457ed1d9b927a06567bb16 100644 (file)
@@ -1,4 +1,4 @@
-version=2.6.7\r
+version=2.6.8\r
 footer=2016-2020 © Copyright User Rendszerház Kft.\r
 \r
 login_info=Információ\r