--- /dev/null
+<?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="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.commons.log4j2&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.jobengine.executors&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.jobengine.osgi.commons&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.jobengine.osgi.db&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.jobengine.osgi.server&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkcharts.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/classes&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-codec-1.10.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-fileupload-1.2.1.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-io-1.4.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/commons-logging-1.1.1.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zcommon.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zel.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zhtml.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_bsh.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_commons-collections.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_elinez.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_eplotz.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_Filters.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_flashchart.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_gmapsz.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-annotations.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-core.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jackson-databind.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jasperreports.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_javassist.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jcommon.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jfreechart.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_jsp.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_monitor.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_psz.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_sapphire.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_shchart.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_silvertail.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_timelinez.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_timeplotz.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk_zuljsp.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zk.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkbind.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkex_r.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkmax.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zkplus.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zml.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zsoup.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zul.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zuti.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;packageFragmentRoot handle=&quot;=user.jobengine.osgi.server/WEB-INF\/lib\/zweb.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.jobengine.osgi.services&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;user.tsm.client&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> </sourceContainers> </sourceLookupDirector> "/>\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="8888"/>\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
--- /dev/null
+package hu.user.mediacube.executors.tests;\r
+\r
+import java.util.Arrays;\r
+\r
+import org.junit.Test;\r
+\r
+import user.jobengine.db.Media;\r
+import user.jobengine.server.steps.TSMExtendedRetrieveStep;\r
+\r
+public class SmallTests {\r
+ class Pojo extends PojoRoot {\r
+\r
+ @Override\r
+ public String toString() {\r
+ return "pojo";\r
+ }\r
+ }\r
+\r
+ class PojoRoot {\r
+ }\r
+\r
+ @Test\r
+ public void test1() throws Exception {\r
+ Object[] sut = { 1, 5, "valami", new Pojo() };\r
+\r
+ System.out.println(Arrays.toString(sut));\r
+ }\r
+\r
+ @Test\r
+ public void test2() throws Exception {\r
+ Integer i = 5;\r
+ Boolean j = Boolean.FALSE;\r
+ xxx(i, j);\r
+ }\r
+\r
+ @Test\r
+ public void test3() throws Exception {\r
+ TSMExtendedRetrieveStep sut = new TSMExtendedRetrieveStep();\r
+ Media mediaCubeMedia = new Media();\r
+ String targetPath = "/mnt/PROMISE/TRANSCODER/ARCHIVE_RESTORE/TTT";\r
+ String targetNamePattern = "ttt-ARCH-%s";\r
+ String successRecipient = "vasary@elgekko.net";\r
+ Integer killDateDays = 7;\r
+ String localRetrievePath = "/mnt/PROMISE/TRANSCODER/";\r
+ String globalRetrievePath = " file://10.11.1.100/TRANSCODER";\r
+ Boolean useNexioTarget = false;\r
+ String nexioAgency = "ARCHIVE_RESTORE";\r
+ Integer nexioPort = 2098;\r
+ String nexioUserName = "administrator";\r
+ String nexioPassword = "system";\r
+ Object[] inputs = { mediaCubeMedia, targetPath, targetNamePattern, successRecipient, killDateDays, localRetrievePath, globalRetrievePath,\r
+ useNexioTarget, nexioAgency, nexioPort, nexioUserName, nexioPassword };\r
+ // Object[] inputs = { null, null, null, null, 0, null, null, false, null, 0, null, null };\r
+ sut.run(null, null, inputs);\r
+ }\r
+\r
+ void xxx(int x, boolean y) {\r
+ System.out.println("call");\r
+ }\r
+}\r
<stringAttribute key="M2_PROFILES" value=""/>\r
<listAttribute key="M2_PROPERTIES"/>\r
<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>\r
-<booleanAttribute key="M2_SKIP_TESTS" value="false"/>\r
+<booleanAttribute key="M2_SKIP_TESTS" value="true"/>\r
<intAttribute key="M2_THREADS" value="1"/>\r
<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
<stringAttribute key="M2_USER_SETTINGS" value=""/>\r
<downloadSources>true</downloadSources>\r
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
<java.version>1.8</java.version>\r
+ <lucene.version>8.2.0</lucene.version>\r
<maven.compiler.source>1.8</maven.compiler.source>\r
<maven.compiler.target>1.8</maven.compiler.target>\r
</properties>\r
<dependency>\r
<groupId>org.apache.lucene</groupId>\r
<artifactId>lucene-core</artifactId>\r
- <version>8.2.0</version>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-highlighter</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-misc</artifactId>\r
+ <version>${lucene.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.apache.lucene</groupId>\r
<version>5.1.8.RELEASE</version>\r
<scope>test</scope>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-test</artifactId>\r
+ <version>2.1.8.RELEASE</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
</dependencies>\r
<build>\r
<finalName>mediacube-indexer</finalName>\r
public class JsonProperties {\r
private String message;\r
private String polishMessage;\r
+ private String indexLocation;\r
+ private boolean dropIndex;\r
+ private boolean resetIndex;\r
\r
- public String getMessage() {\r
- return message;\r
+ public String getIndexLocation() {\r
+ return indexLocation;\r
}\r
\r
- public void setMessage(String message) {\r
- this.message = message;\r
+ public String getMessage() {\r
+ return message;\r
}\r
\r
public String getPolishMessage() {\r
return polishMessage;\r
}\r
\r
+ public boolean isDropIndex() {\r
+ return dropIndex;\r
+ }\r
+\r
+ public void setDropIndex(boolean dropIndex) {\r
+ this.dropIndex = dropIndex;\r
+ }\r
+\r
+ public void setIndexLocation(String indexLocation) {\r
+ this.indexLocation = indexLocation;\r
+ }\r
+\r
+ public void setMessage(String message) {\r
+ this.message = message;\r
+ }\r
+\r
public void setPolishMessage(String polishMessage) {\r
this.polishMessage = polishMessage;\r
}\r
+\r
+ public boolean isResetIndex() {\r
+ return resetIndex;\r
+ }\r
+\r
+ public void setResetIndex(boolean resetIndex) {\r
+ this.resetIndex = resetIndex;\r
+ }\r
}\r
import java.time.ZoneId;\r
import java.time.ZonedDateTime;\r
import java.util.Date;\r
+import java.util.List;\r
\r
+import org.apache.lucene.document.Document;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
import org.springframework.web.bind.annotation.RestController;\r
\r
+import hu.user.mediacube.indexer.lucene.LuceneIndexer;\r
+\r
@RestController\r
@RequestMapping("rest")\r
public class RESTController {\r
- private static Logger logger = LoggerFactory.getLogger(RESTController.class);\r
-\r
public class CustomResponse {\r
private int age;\r
private String name;\r
return age;\r
}\r
\r
- public void setAge(int age) {\r
- this.age = age;\r
+ public ZonedDateTime getDate() {\r
+ return date;\r
}\r
\r
public String getName() {\r
return name;\r
}\r
\r
- public void setName(String name) {\r
- this.name = name;\r
- }\r
-\r
- public ZonedDateTime getDate() {\r
- return date;\r
+ public void setAge(int age) {\r
+ this.age = age;\r
}\r
\r
public void setDate(ZonedDateTime date) {\r
this.date = date;\r
}\r
\r
+ public void setName(String name) {\r
+ this.name = name;\r
+ }\r
+\r
}\r
\r
-// @Configuration\r
-// public class JacksonConfiguration {\r
-//\r
-// @Bean\r
-// public ObjectMapper objectMapper() {\r
-// ObjectMapper mapper = new ObjectMapper();\r
-// mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);\r
-// mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);\r
-//\r
-// return mapper;\r
-// }\r
-// }\r
+ private static Logger logger = LoggerFactory.getLogger(RESTController.class);\r
+\r
+ // @Configuration\r
+ // public class JacksonConfiguration {\r
+ //\r
+ // @Bean\r
+ // public ObjectMapper objectMapper() {\r
+ // ObjectMapper mapper = new ObjectMapper();\r
+ // mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);\r
+ // mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);\r
+ //\r
+ // return mapper;\r
+ // }\r
+ // }\r
\r
@Autowired\r
GreetingService greetingService;\r
+ @Autowired\r
+ private LuceneIndexer indexer;\r
\r
@GetMapping(path = "/{id}", produces = "application/json")\r
public CustomResponse getBook(@PathVariable int id) {\r
result.setDate(ZonedDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));\r
return result;\r
}\r
+\r
+ @GetMapping(path = "/search/{queryString}/{skipRecords}/{takeRecords}", produces = "application/json")\r
+ public List<Document> search(@PathVariable String queryString, @PathVariable int skipRecords, @PathVariable int takeRecords) {\r
+ return indexer.search(queryString, skipRecords, takeRecords);\r
+ }\r
}
\ No newline at end of file
import org.apache.ibatis.annotations.UpdateProvider;\r
import org.apache.ibatis.type.JdbcType;\r
\r
+//SELECT * FROM VW_INDEXER FETCH FIRST 10000 ROWS ONLY\r
+\r
@Mapper\r
public interface MediadescriptionMapper {\r
/**\r
sql.FROM("DB2ADMIN.MEDIADESCRIPTION");\r
applyWhere(sql, example, false);\r
\r
- sql.FETCH_FIRST_ROWS_ONLY(1);\r
+ //sql.FETCH_FIRST_ROWS_ONLY(1);\r
\r
if (example != null && example.getOrderByClause() != null) {\r
sql.ORDER_BY(example.getOrderByClause());\r
--- /dev/null
+package hu.user.mediacube.indexer.lucene;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import javax.annotation.PostConstruct;\r
+import javax.annotation.PreDestroy;\r
+\r
+import org.apache.lucene.analysis.standard.StandardAnalyzer;\r
+import org.apache.lucene.document.Document;\r
+import org.apache.lucene.document.Field.Store;\r
+import org.apache.lucene.document.LongPoint;\r
+import org.apache.lucene.document.SortedNumericDocValuesField;\r
+import org.apache.lucene.document.TextField;\r
+import org.apache.lucene.index.DirectoryReader;\r
+import org.apache.lucene.index.IndexReader;\r
+import org.apache.lucene.index.IndexWriter;\r
+import org.apache.lucene.index.IndexWriterConfig;\r
+import org.apache.lucene.queryparser.classic.QueryParser;\r
+import org.apache.lucene.search.IndexSearcher;\r
+import org.apache.lucene.search.Query;\r
+import org.apache.lucene.search.ScoreDoc;\r
+import org.apache.lucene.search.Sort;\r
+import org.apache.lucene.search.SortField.Type;\r
+import org.apache.lucene.search.SortedNumericSortField;\r
+import org.apache.lucene.search.TopDocs;\r
+import org.apache.lucene.search.uhighlight.UnifiedHighlighter;\r
+import org.apache.lucene.store.Directory;\r
+import org.apache.lucene.store.SimpleFSDirectory;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
+import org.springframework.util.FileSystemUtils;\r
+\r
+import hu.user.mediacube.indexer.JsonProperties;\r
+import hu.user.mediacube.indexer.db.Mediadescription;\r
+\r
+@Component\r
+public class LuceneIndexer {\r
+ private static Logger logger = LoggerFactory.getLogger(LuceneIndexer.class);\r
+ private static final String DESCRIPTION = "description";\r
+ @Autowired\r
+ private JsonProperties config;\r
+ private Directory directoryIndex;\r
+ private IndexWriterConfig indexWriterConfig;\r
+ private IndexWriter indexWritter;\r
+ private StandardAnalyzer analyzer;\r
+\r
+ public void index(Mediadescription mediadescription, boolean commit) throws IOException {\r
+ Document document = new Document();\r
+ document.add(new SortedNumericDocValuesField("id", mediadescription.getId()));\r
+ document.add(new LongPoint("itemid", mediadescription.getItemid()));\r
+ document.add(new LongPoint("mediaid", mediadescription.getMediaid()));\r
+ document.add(new LongPoint("mediafileid", mediadescription.getMediafileid()));\r
+ document.add(new TextField(DESCRIPTION, mediadescription.getDescription(), Store.YES));\r
+ indexWritter.addDocument(document);\r
+ if (commit)\r
+ indexWritter.commit();\r
+ }\r
+\r
+ public List<Document> search(String queryString, int skipRecords, int takeRecords) {\r
+ List<Document> ret = new ArrayList<Document>();\r
+ IndexReader indexReader = null;\r
+ IndexSearcher searcher = null;\r
+ try {\r
+ indexReader = DirectoryReader.open(directoryIndex);\r
+ searcher = new IndexSearcher(indexReader);\r
+\r
+ Query query = new QueryParser(DESCRIPTION, analyzer).parse(queryString);\r
+\r
+ TopDocs results = searcher.search(query, skipRecords + takeRecords, new Sort(new SortedNumericSortField("id", Type.LONG, true)));\r
+ //TopDocs results = searcher.search(query, skipRecords + takeRecords);\r
+ ScoreDoc[] scoreDocs = results.scoreDocs;\r
+ UnifiedHighlighter highlighter = new UnifiedHighlighter(searcher, analyzer);\r
+ //highlighter.setFormatter(formatter);\r
+ for (int i = skipRecords; i < results.totalHits.value; i++) {\r
+ if (i > (skipRecords + takeRecords) - 1) {\r
+ break;\r
+ }\r
+ Document doc = searcher.doc(scoreDocs[i].doc);\r
+ ret.add(doc);\r
+\r
+ String[] fragments = highlighter.highlight(DESCRIPTION, query, results);\r
+ logger.info("Item " + doc.getValues("id")[0] + " : " + fragments[0]);\r
+ }\r
+ } catch (Exception e) {\r
+ logger.error("Search", e);\r
+ } finally {\r
+ try {\r
+ if (indexReader != null)\r
+ indexReader.close();\r
+ } catch (IOException e) {\r
+ logger.error("Close index reader", e);\r
+ }\r
+ }\r
+ return ret;\r
+ }\r
+\r
+ @PostConstruct\r
+ public void start() throws Exception {\r
+ try {\r
+ Path path = Paths.get(config.getIndexLocation());\r
+ if (config.isDropIndex())\r
+ FileSystemUtils.deleteRecursively(path);\r
+ directoryIndex = new SimpleFSDirectory(path);\r
+ analyzer = new StandardAnalyzer();\r
+ indexWriterConfig = new IndexWriterConfig(analyzer);\r
+ indexWritter = new IndexWriter(directoryIndex, indexWriterConfig);\r
+ } catch (Exception e) {\r
+ logger.error("Could not create indexer", e);\r
+ throw e;\r
+ }\r
+ logger.info("Indexer started");\r
+ }\r
+\r
+ @PreDestroy\r
+ public void stop() {\r
+ try {\r
+ if (indexWritter != null)\r
+ indexWritter.close();\r
+ } catch (IOException e) {\r
+ logger.error("IndexWriter close", e);\r
+ }\r
+ logger.info("Indexer stopped");\r
+ }\r
+\r
+}\r
-#mybatis.config-location=classpath*:mybatis.xml\r
+spring.main.banner-mode=off\r
+spring.output.ansi.enabled=always\r
spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver\r
spring.datasource.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;\r
spring.datasource.username=db2admin\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Base logback configuration provided for compatibility with Spring Boot 1.1
+-->
+
+<included>
+ <include resource="defaults.xml" />
+ <property name="LOG_FILE" value="/opt/indexer/logs/indexer.log}"/>
+ <include resource="console-appender.xml" />
+ <include resource="file-appender.xml" />
+ <root level="INFO">
+ <appender-ref ref="CONSOLE" />
+ <appender-ref ref="FILE" />
+ </root>
+</included>
{\r
"message" : "Hy",\r
- "polishMessage" : "Czesc"\r
+ "polishMessage" : "Czesc",\r
+ "indexLocation" : "/opt/indexer/mediacube",\r
+ "dropIndex": false,\r
+ "resetIndex": false\r
}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Console appender logback configuration provided for import, equivalent to the programmatic
+initialization performed by Boot
+-->
+
+<included>
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+ </encoder>
+ </appender>
+</included>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Default logback configuration provided for import, equivalent to the programmatic
+initialization performed by Boot
+-->
+
+<included>
+ <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+ <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+ <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+ <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+ <property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+ <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
+ <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
+ <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
+ <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
+ <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
+ <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
+ <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
+</included>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+File appender logback configuration provided for import, equivalent to the programmatic
+initialization performed by Boot
+-->
+
+<included>
+ <appender name="FILE"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <encoder>
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ </encoder>
+ <file>${LOG_FILE}</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+ <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
+ <maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
+ </rollingPolicy>
+ </appender>
+</included>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<configuration>\r
+ <include resource="base.xml" />\r
+ <logger name="hu.user.mediacube.indexer" level="info" />\r
+</configuration>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<environments default="development">\r
- <environment id="development">\r
- <transactionManager type="JDBC" />\r
- <dataSource type="POOLED">\r
- <property name="driver" value="com.ibm.db2.jcc.DB2Driver" />\r
- <property name="url" value="jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;" />\r
- <property name="username" value="db2admin" />\r
- <property name="password" value="password" />\r
- </dataSource>\r
- </environment>\r
-</environments>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML>\r
-<html xmlns:th="http://www.thymeleaf.org">\r
-<head>\r
- <title>Getting Started: Serving Web Content</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-</head>\r
-<body>\r
- <p th:text="'Hello ' + ${name} + '!'" />\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-mybatis.config-location=mapper.xml
\ No newline at end of file
import org.junit.Test;\r
import org.junit.runner.RunWith;\r
import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.boot.test.context.SpringBootTest;\r
import org.springframework.test.context.ContextConfiguration;\r
import org.springframework.test.context.junit4.SpringRunner;\r
\r
\r
@RunWith(SpringRunner.class)\r
@ContextConfiguration(classes = IndexerApplication.class)\r
-\r
+@SpringBootTest\r
public class TestDB2 {\r
\r
@Autowired\r
import org.junit.Test;\r
import org.junit.runner.RunWith;\r
import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.boot.test.context.SpringBootTest;\r
import org.springframework.test.context.ContextConfiguration;\r
import org.springframework.test.context.junit4.SpringRunner;\r
\r
-import hu.user.mediacube.indexer.IndexerApplication;\r
-import hu.user.mediacube.indexer.JsonProperties;\r
-\r
@RunWith(SpringRunner.class)\r
@ContextConfiguration(classes = IndexerApplication.class)\r
-\r
+//https://stackoverflow.com/questions/29669393/override-default-spring-boot-application-properties-settings-in-junit-test\r
+@SpringBootTest\r
public class TestJsonProperties {\r
\r
@Autowired\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<configuration>\r
- <dataSource type="POOLED">\r
- <property name="driver" value="com.ibm.db2.jcc.DB2Driver"/>\r
- <property name="url" value="jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;"/>\r
- <property name="username" value="db2admin"/>\r
- <property name="password" value="password"/>\r
- </dataSource>\r
-</configuration>
\ No newline at end of file
<executor className="user.jobengine.server.steps.ImportMORPHEUSMissingMaterialsStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.ImportStatisticsStep" maxConcurrent="7"/>\r
<executor className="user.jobengine.server.steps.MetadataTransformStep" maxConcurrent="1"/>\r
+ <executor className="user.jobengine.server.steps.MXFCutterStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.OutputPathAndNameSelectorStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.RecordingsArchiveItemBuilderStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.SyncOCTOPUSDataStep" maxConcurrent="1"/>\r
<variable name="targetPath" type="java.lang.String" />\r
<variable name="targetNamePattern" type="java.lang.String" />\r
<variable name="useNexioTarget" type="java.lang.Boolean" />\r
- <variable name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
</variables>\r
</declarations>\r
<commands>\r
<calljobstep type="user.jobengine.server.steps.TSMExtendedRetrieveStep" weight="1">\r
<inputs>\r
<input>\r
- <variable name="mediaCubeMedia" />\r
+ <parameter name="archivedMedia" />\r
</input>\r
<input>\r
<variable name="targetPath" />\r
\r
import user.commons.MediaCubeFinishMarker;\r
import user.commons.MediaCubeMarker;\r
-import user.jobengine.db.Media;\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
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 MEDIACUBEMEDIA = "mediaCubeMedia";\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<Media> basket, String houseId, String recipient, String targetPathType, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
+ public Object[] execute(List<ArchivedMedia> basket, String houseId, String recipient, String targetPathType, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
throws Exception {\r
marker = (MediaCubeMarker) jobRuntime.getMarker();\r
\r
logger.info(mailMarker, "A visszatöltések elindultak az alábbi állományokra:");\r
\r
if (jobRuntime.forkPrepare()) {\r
- for (Media mediaCubeMedia : basket) {\r
- logger.info(mailMarker, mediaCubeMedia.getMediaFilesName());\r
- submit(mediaCubeMedia, recipient, houseId, targetPathType, jobEngine, jobRuntime);\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
return null;\r
}\r
\r
- public void submit(Media mediaCubeMedia, String recipient, String houseId, String targetPathType, IJobEngine jobEngine, IJobRuntime jobRuntime)\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(MEDIACUBEMEDIA, mediaCubeMedia);\r
+ parameters.put(ARCHIVEDMEDIA, archivedMedia);\r
parameters.put(HOUSEID, houseId);\r
parameters.put(RECIPIENT, recipient);\r
parameters.put(TARGET_PATH_TYPE, targetPathType);\r
\r
private Marker marker;\r
\r
- private void check(String localRetrievePath, String materialOutputFolder, String promoOutputFolder,\r
- String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder, String houseId,\r
- String targetPathType) {\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(\r
- "System is not configured properly, 'localRetrievePath' input parameter missing.");\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(\r
- "System is not configured properly, 'materialOutputFolder' input parameter missing.");\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(\r
- "System is not configured properly, 'promoOutputFolder' input parameter missing.");\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(\r
- "System is not configured properly, 'advertisementOutputFolder' input parameter missing.");\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(\r
- "System is not configured properly, 'octopusOutputFolder' input parameter missing.");\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(\r
- "System is not configured properly, 'genericOutputFolder' input parameter missing.");\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
}\r
if (StringUtils.isBlank(targetPathType)) {\r
logger.error(marker, "A folyamat 'targetPathType' bemeneti paramétere üres.");\r
- throw new NullPointerException(\r
- "System is not configured properly, 'targetPathType' input parameter missing.");\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,\r
- String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder,\r
- String onlineOutputFolder, String houseId, String targetPathType, ArchivedMedia archivedMedia,\r
- IJobEngine jobEngine, IJobRuntime jobRuntime) throws IOException {\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
marker = jobRuntime.getMarker();\r
- check(localRetrievePath, materialOutputFolder, promoOutputFolder, advertisementOutputFolder,\r
- octopusOutputFolder, genericOutputFolder, houseId, targetPathType);\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,\r
- octopusOutputFolder, genericOutputFolder, houseId, archivedMedia);\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,\r
- String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder, String houseId,\r
- ArchivedMedia archivedMedia) {\r
+ private String getFolderById(String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder, String octopusOutputFolder,\r
+ String genericOutputFolder, String houseId, ArchivedMedia archivedMedia) {\r
String id = houseId.toUpperCase();\r
MetadataType mdType = MetadataTypeDetector.GuessMetadataType(id);\r
String result = null;\r
return result[0];\r
}\r
\r
- private Object[] localTargetInit(String localRetrievePath, String outputFolder, String houseId,\r
- IJobRuntime jobRuntime) throws IOException {\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.getMarker(),\r
- "A cél mappa '{}' nem létezik és nem hozható létre. A rendszer hibaüzenete: {}", targetPath,\r
- e.getMessage());\r
+ logger.error(jobRuntime.getMarker(), "A cél mappa '{}' nem létezik és nem hozható létre. A rendszer hibaüzenete: {}", targetPath, e.getMessage());\r
throw e;\r
}\r
return new Object[] { targetPath, targetNamePattern, false };\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.db.Media;\r
import user.jobengine.server.IJobEngine;\r
import user.jobengine.server.IJobRuntime;\r
\r
private String nexioAgency;\r
\r
@Override\r
- protected void afterRestore(StoreUri targetUri, String targetPath, int killDateDays, String targetFileName)\r
- throws Exception {\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
newTargetName = targetName.substring(0, targetName.lastIndexOf('.'));\r
if (useNexioTarget)\r
if (targetURI.fileExists(newTargetName + ".mxf"))\r
- throw new Exception(\r
- String.format("%s-The newly created file name is existed.", getClass().getSimpleName()));\r
+ throw new Exception(String.format("%s-The newly created file name is existed.", getClass().getSimpleName()));\r
}\r
\r
@Override\r
protected StoreUri createTargetUri(IItemManager manager, String targetPath) throws NullPointerException {\r
StoreUri result = null;\r
if (useNexioTarget) {\r
+ nexioHost = System.getProperty("nexio.host");\r
+ if (nexioHost == null) {\r
+ throw new NullPointerException("Missing system property on 'nexio.host' name");\r
+ }\r
result = manager.createStoreUri(RemoteStoreProtocol.FTP, nexioHost);\r
result.setPortNumber(nexioPort);\r
result.setUserName(nexioUserName);\r
result.setPassword(nexioPassword);\r
-\r
} else\r
result = super.createTargetUri(manager, targetPath);\r
return result;\r
}\r
\r
@StepEntry\r
- public Object[] execute(Media mediaCubeMedia, String targetPath, String targetNamePattern, String successRecipient,\r
- int killDateDays, String localRetrievePath, String globalRetrievePath, boolean useNexioTarget,\r
- String nexioAgency, Integer nexioPort, String nexioUserName, String nexioPassword, IJobEngine jobEngine,\r
- IJobRuntime jobRuntime) throws Exception {\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
- nexioHost = System.getProperty("nexio.host");\r
-\r
- if (nexioHost == null) {\r
- throw new NullPointerException("Missing system property on 'nexio.host' name");\r
- }\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(\r
- "System is not configured properly, 'nexioUserName' input parameter missing.");\r
+ throw new NullPointerException("System is not configured properly, 'nexioUserName' input parameter missing.");\r
}\r
if (nexioPassword == null) {\r
- throw new NullPointerException(\r
- "System is not configured properly, 'nexioPassword' input parameter missing.");\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(mediaCubeMedia, targetPath, targetNamePattern, successRecipient, killDateDays,\r
- localRetrievePath, globalRetrievePath, jobEngine, jobRuntime);\r
+ return super.execute(archivedMedia.getMedia(), targetPath, targetNamePattern, successRecipient, killDateDays, localRetrievePath, globalRetrievePath,\r
+ jobEngine, jobRuntime);\r
}\r
\r
}\r
\r
@Override\r
public String toString() {\r
- return String.format("## %d - %s - %s ##", getId(), getName(), status);\r
+ return String.format("## %d / %s / %s [%s] ##", getId(), getName(), getTemplate(), status);\r
}\r
}\r
--- /dev/null
+--
+-- 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.
+--
+
+-- // Initial data.
+-- Migration SQL that makes the change goes here.
+INSERT INTO ITEMTYPE(NAME,DESCRIPTION,ISSTATIC)
+VALUES
+('Default','Statikus mezők leírója','Y'),
+('Generic','Generic','N'),
+('Visszarögzített','Visszarögzített','N'),
+('Műsor','Műsor','N'),
+('Reklám','Reklám','N'),
+('Promo','Promo','N'),
+('Hír nyers','Hír nyers','N'),
+('Műsor nyers','Műsor nyers','N'),
+('Hír bejátszó','Hír bejátszó','N')
+@
+
+INSERT INTO STORE(NAME,ISSYSTEM,ISLOWRES) VALUES
+('TSM','Y','N'),
+('Low-res','Y','Y')
+@
+
+INSERT INTO STOREURI(STOREID,PROTOCOL,DELIVERY,URI,ISSTREAM,ISSOURCE,ISTARGET,USERNAME,PASSWORD,ROOTPATH,PORTNUMBER) VALUES
+((SELECT ID FROM STORE WHERE NAME='TSM'),'TSM',null,'MEDIACUBE','N','Y','Y','mediacube','password',null,null),
+((SELECT ID FROM STORE WHERE NAME='Low-res'),'HTTP',null,'10.11.1.90:90','Y','Y','N',null,null,null,90),
+((SELECT ID FROM STORE WHERE NAME='Low-res'),'LOCAL',null,'/mediacube/data/lowres','N','Y','Y',null,null,null,null)
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DELETE FROM ITEMTYPE WHERE NAME IN ('Generic','Visszarögzített','Műsor','Reklám','Promo','Hír nyers','Műsor nyers','Hír bejátszó')
+@
+
+DELETE FROM STOREURI WHERE STOREID IN (SELECT ID FROM STORE WHERE NAME='Low-res' OR NAME='TSM')
+@
+
+DELETE FROM STORE WHERE NAME IN ('Low-res', 'TSM')
+@
--- /dev/null
+--
+-- 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.
+--
+
+-- // Metadata.
+-- Migration SQL that makes the change goes here.
+INSERT INTO METADATATYPE(NAME,DATATYPE,LENGTH,BASETYPE,JAVATYPE) VALUES
+('string255','VARCHAR',255,'VARCHAR','java.lang.String'),
+('string80','VARCHAR',80,'VARCHAR','java.lang.String'),
+('string40','VARCHAR',40,'VARCHAR','java.lang.String'),
+('boolean1','VARCHAR',1,'BOOL','java.lang.Boolean'),
+('biginteger','BIGINT',0,'BIGINT','java.lang.Long'),
+('datetime1','TIMESTAMP',0,'DATETIME','java.sql.Timestamp')
+@
+
+INSERT INTO METADATAELEMENT(METADATATYPEID,NAME,DESCRIPTION) VALUES
+((SELECT ID FROM METADATATYPE WHERE NAME='boolean1'),'Mappa','Mappa'),
+((SELECT ID FROM METADATATYPE WHERE NAME='biginteger'),'Anyag ID','Anyag azonosító'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string80'),'Anyag cím','Anyag cím'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string255'),'Anyag leírás','Anyag leírás'),
+((SELECT ID FROM METADATATYPE WHERE NAME='datetime1'),'Anyag létrehozva','Anyag létrehozás ideje'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string40'),'Anyag house ID','Anyag belső azonosító'),
+((SELECT ID FROM METADATATYPE WHERE NAME='biginteger'),'Verzió ID','Verzió azonosító'),
+((SELECT ID FROM METADATATYPE WHERE NAME='biginteger'),'Verzió anyag ID','Verzió anyag azonosító'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string80'),'Verzió cím','Verzió cím'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string255'),'Verzió leírás','Verzió leírás'),
+((SELECT ID FROM METADATATYPE WHERE NAME='datetime1'),'Verzió létrehozva','Verzió létrehozás ideje'),
+((SELECT ID FROM METADATATYPE WHERE NAME='string40'),'Verzió house ID','Verzió belső azonosító'),
+((SELECT ID FROM METADATATYPE WHERE NAME='biginteger'),'Verzió hossz','Verzió hossz'),
+((SELECT ID FROM METADATATYPE WHERE NAME='datetime1'),'Verzió archiválva','Verzió archiválás ideje'),
+((SELECT ID FROM METADATATYPE WHERE NAME='biginteger'),'Szülő mappa','Szülő mappa')
+@
+
+INSERT INTO METADATA(ITEMTYPEID,METADATAELEMENTID,ISDBINDEX,ISDBUNIQUE,ISDBNULLABLE,ISLISTABLE,ISEDITABLE,ISGENERATED,ISSEARCHABLE,GUITYPE,LISTTYPE,STATICTABLE,POJOFIELD,SQLFIELD) VALUES
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Mappa') ,'Y','N','N','Y','Y','Y','Y','CHECKBOX','FOLDERICON','ITEM','isFolder','ISFOLDER'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Anyag ID') ,'N','Y','N','Y','Y','Y','Y','WHOLENUMBER','LABEL','ITEM','id','ID'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Anyag cím') ,'Y','N','N','Y','Y','N','Y','TEXTBOX','LABEL','ITEM','title','TITLE'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Anyag leírás') ,'Y','N','N','Y','Y','N','Y','MULTILINETEXTBOX','WRAPPEDLABEL','ITEM','description','DESCRIPTION'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Anyag létrehozva') ,'Y','N','N','Y','Y','Y','Y','DATETIMEPICKER','LABEL','ITEM','created','CREATED'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Anyag house ID') ,'Y','N','N','Y','Y','N','Y','TEXTBOX','LABEL','ITEM','houseId','HOUSEID'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió ID') ,'N','Y','N','Y','Y','N','Y','WHOLENUMBER','LABEL','MEDIA','id','ID'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió anyag ID') ,'Y','N','N','Y','Y','N','N','LABEL','LABEL','MEDIA','itemId','ITEMID'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió cím') ,'Y','N','N','Y','Y','N','Y','TEXTBOX','LABEL','MEDIA','title','TITLE'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió leírás') ,'Y','N','N','Y','Y','N','Y','MULTILINETEXTBOX','WRAPPEDLABEL','MEDIA','description','DESCRIPTION'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió létrehozva') ,'Y','N','N','Y','Y','Y','Y','DATETIMEPICKER','LABEL','MEDIA','created','CREATED'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió house ID') ,'Y','N','N','Y','Y','N','Y','TEXTBOX','LABEL','MEDIA','houseId','HOUSEID'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió hossz') ,'Y','N','N','Y','Y','N','N','TIMECODE','TIMECODE','MEDIA','length','LENGTH'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Verzió archiválva') ,'Y','N','Y','Y','N','N','Y','LABEL','LABEL','MEDIA','archived','ARCHIVED'),
+((SELECT ID FROM ITEMTYPE WHERE NAME='Default'),(SELECT ID FROM METADATAELEMENT WHERE NAME='Szülő mappa') ,'Y','N','N','Y','Y','N','N','LABEL','LABEL','FOLDER','parentId','PARENTID')
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DELETE FROM METADATA WHERE METADATAELEMENTID IN
+(SELECT id FROM METADATAELEMENT WHERE NAME IN
+ ('Mappa','Anyag ID','Anyag cím','Anyag leírás','Anyag létrehozva','Anyag house ID','Verzió ID','Verzió anyag ID',
+ 'Verzió cím','Verzió leírás','Verzió létrehozva','Verzió house ID','Verzió hossz','Verzió archiválva','Szülő mappa')
+)
+@
+DELETE FROM METADATAELEMENT WHERE NAME IN
+('Mappa','Anyag ID','Anyag cím','Anyag leírás','Anyag létrehozva','Anyag house ID','Verzió ID','Verzió anyag ID',
+'Verzió cím','Verzió leírás','Verzió létrehozva','Verzió house ID','Verzió hossz','Verzió archiválva','Szülő mappa')
+@
+DELETE FROM METADATATYPE WHERE NAME IN ('string255','string80','string40','boolean1','biginteger','datetime1')
+@
--- /dev/null
+--
+-- 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.
+--
+
+-- // General views.
+-- Migration SQL that makes the change goes here.
+CREATE VIEW VW_MEDIAFILES AS
+SELECT
+ mediaid,
+ count(*) AS mediafilecount
+FROM mediafile
+GROUP BY (mediaid)
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DROP VIEW VW_MEDIAFILES
+@
--- /dev/null
+--
+-- 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.
+--
+
+-- // Indexer view.
+-- Migration SQL that makes the change goes here.
+CREATE OR REPLACE VIEW VW_ITEMS AS
+SELECT
+ i.id AS itemid,
+ i.created AS itemcreated,
+ i.houseid AS itemhouseid,
+ i.title AS itemtitle,
+ m.id AS mediaid,
+ m.created AS mediacreated,
+ m.archived,
+ m.length,
+ it.name AS mediatype,
+ m.houseid AS mediahouseid,
+ m.title AS mediatitle,
+ mf.id AS mediafileid,
+ mf.houseid AS mediafilehouseid
+FROM MEDIAFILE mf
+LEFT OUTER JOIN MEDIA m ON (m.id = mf.mediaid)
+LEFT OUTER JOIN ITEM i ON (i.id = m.itemid)
+LEFT OUTER JOIN ITEMTYPE it ON (it.id = m.itemtypeid)
+WHERE mf.storeid = (SELECT id FROM STORE WHERE name='TSM')
+@
+
+CREATE OR REPLACE VIEW VW_ITEMS_DESCRIPTION AS
+SELECT
+ i.id AS itemid,
+ i.created AS itemcreated,
+ i.houseid AS itemhouseid,
+ i.title AS itemtitle,
+ i.description AS itemdescription,
+ m.id AS mediaid,
+ m.created AS mediacreated,
+ m.archived,
+ m.length,
+ it.name AS mediatype,
+ m.houseid AS mediahouseid,
+ m.title AS mediatitle,
+ m.description AS mediadescription,
+ mf.id AS mediafileid,
+ mf.houseid AS mediafilehouseid
+FROM MEDIAFILE mf
+LEFT OUTER JOIN MEDIA m ON (m.id = mf.mediaid)
+LEFT OUTER JOIN ITEM i ON (i.id = m.itemid)
+LEFT OUTER JOIN ITEMTYPE it ON (it.id = m.itemtypeid)
+WHERE mf.storeid = (SELECT id FROM STORE WHERE name='TSM')
+@
+
+CREATE OR REPLACE FUNCTION DEFDATE(TS TIMESTAMP)
+ RETURNS VARCHAR(10)
+ RETURN
+WITH tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) AS
+(
+ SELECT
+ SUBSTR( DIGITS (DAY(TS)),9),
+ SUBSTR( DIGITS (MONTH(TS)),9) ,
+ RTRIM(CHAR(YEAR(TS))) ,
+ SUBSTR( DIGITS (HOUR(TS)),9),
+ SUBSTR( DIGITS (MINUTE(TS)),9),
+ SUBSTR( DIGITS (SECOND(TS)),9),
+ RTRIM(CHAR(MICROSECOND(TS)))
+ FROM SYSIBM.SYSDUMMY1
+)
+SELECT yyyy || mm || dd FROM tmp
+@
+
+
+CREATE OR REPLACE FUNCTION HUNDATE(TS TIMESTAMP)
+ RETURNS VARCHAR(10)
+ RETURN
+WITH tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) AS
+(
+ SELECT
+ SUBSTR( DIGITS (DAY(TS)),9),
+ SUBSTR( DIGITS (MONTH(TS)),9) ,
+ RTRIM(CHAR(YEAR(TS))) ,
+ SUBSTR( DIGITS (HOUR(TS)),9),
+ SUBSTR( DIGITS (MINUTE(TS)),9),
+ SUBSTR( DIGITS (SECOND(TS)),9),
+ RTRIM(CHAR(MICROSECOND(TS)))
+ FROM SYSIBM.SYSDUMMY1
+)
+SELECT yyyy || '.' || mm || '.' || dd FROM tmp
+@
+
+CREATE OR REPLACE FUNCTION HIGHLIGHT(content CLOB(400000), starttag VARCHAR(20), endtag VARCHAR(20), pattern VARCHAR(1000))
+ RETURNS VARCHAR(32000)
+ LANGUAGE SQL
+ NO EXTERNAL ACTION
+ READS SQL DATA
+ DETERMINISTIC
+BEGIN
+ DECLARE RESULT VARCHAR(32000) DEFAULT '';
+ DECLARE CHUNKSIZE INT DEFAULT 10000;
+ DECLARE CHUNK VARCHAR(10000);
+ DECLARE CHUNKSTART INT DEFAULT 1;
+ DECLARE HITSTART INT DEFAULT 1;
+ WHILE LENGTH(RESULT) = 0 AND CHUNKSTART < LENGTH(content) DO
+ SET CHUNK = DBMS_LOB.SUBSTR(content, CHUNKSIZE, CHUNKSTART);
+ SET HITSTART = REGEXP_INSTR(CHUNK, pattern, 1, 1, 0, 'i');
+ IF HITSTART > 0 THEN
+ IF CHUNKSTART + HITSTART > 100 THEN
+ SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART + HITSTART - 100);
+ ELSE
+ SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART);
+ END IF;
+ SET CHUNK = REPLACE(CHUNK, '<', '');
+ SET CHUNK = REPLACE(CHUNK, '>', '');
+ SET RESULT = '...' || REGEXP_REPLACE(CHUNK, pattern, starttag||'$0'||endtag,1,0,'i') || '...';
+ END IF;
+ SET CHUNKSTART = CHUNKSTART + CHUNKSIZE;
+ END WHILE;
+ RETURN RESULT;
+END
+@
+
+CREATE OR REPLACE FUNCTION FULLDESC(IN initemid BIGINT, IN inmediaid BIGINT, IN inmediafileid BIGINT)
+ RETURNS CLOB(400000)
+ RETURN
+SELECT
+ COALESCE(hundate(archived), '') || ' ' ||
+ COALESCE(defdate(archived), '') || ' ' ||
+ COALESCE(itemhouseid, '') || ' ' ||
+ COALESCE(itemtitle, '') || ' ' ||
+ COALESCE(itemdescription,'') || ' ' ||
+ COALESCE(mediahouseid, '') || ' ' ||
+ COALESCE(mediatitle, '') || ' ' ||
+ COALESCE(mediadescription, '') || ' ' ||
+ COALESCE(mediafilehouseid, '')
+FROM VW_ITEMS_DESCRIPTION
+WHERE itemid = initemid AND mediaid = inmediaid AND mediafileid = inmediafileid
+@
+
+CREATE OR REPLACE TRIGGER TRG_MEDIAFILE_AFTER_INSERT AFTER INSERT ON MEDIAFILE
+ REFERENCING NEW AS n
+ FOR EACH ROW
+ WHEN (n.storeid = (SELECT id FROM STORE WHERE name='TSM'))
+BEGIN ATOMIC
+ INSERT INTO mediadescription (itemid, mediaid, mediafileid, description)
+ SELECT
+ itemid,
+ mediaid,
+ mediafileid,
+ fulldesc(itemid, mediaid, mediafileid)
+ FROM VW_ITEMS
+ WHERE mediafileid = n.id;
+END
+@
+
+CREATE OR REPLACE TRIGGER TRG_MEDIAFILE_AFTER_DELETE AFTER DELETE ON MEDIAFILE
+ REFERENCING OLD AS o
+ FOR EACH ROW
+ WHEN (o.storeid = (SELECT id FROM STORE WHERE name='TSM'))
+BEGIN ATOMIC
+ DELETE FROM MEDIADESCRIPTION WHERE mediafileid = o.id;
+END
+@
+
+CREATE OR REPLACE TRIGGER TRG_MEDIA_AFTER_UPDATE AFTER UPDATE ON MEDIA
+ REFERENCING NEW AS n
+ FOR EACH ROW
+BEGIN ATOMIC
+ UPDATE MEDIADESCRIPTION SET description = FULLDESC(itemid, mediaid, mediafileid) WHERE mediaid = n.id;
+END
+@
+
+CREATE OR REPLACE TRIGGER TRG_ITEM_AFTER_UPDATE AFTER UPDATE ON ITEM
+ REFERENCING NEW AS n
+ FOR EACH ROW
+BEGIN ATOMIC
+ UPDATE MEDIADESCRIPTION SET description = FULLDESC(itemid, mediaid, mediafileid) WHERE itemid = n.id;
+END
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DROP TRIGGER TRG_ITEM_AFTER_UPDATE
+@
+DROP TRIGGER TRG_MEDIA_AFTER_UPDATE
+@
+DROP TRIGGER TRG_MEDIAFILE_AFTER_DELETE
+@
+DROP TRIGGER TRG_MEDIAFILE_AFTER_INSERT
+@
+DROP VIEW VW_ITEMS_DESCRIPTION
+@
+DROP VIEW VW_ITEMS
+@
+DROP FUNCTION FULLDESC
+@
+DROP FUNCTION HIGHLIGHT
+@
+DROP FUNCTION HUNDATE
+@
+DROP FUNCTION DEFDATE
+@
+
--- /dev/null
+--
+-- 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.
+--
+
+-- // Indexer view.
+-- Migration SQL that makes the change goes here.
+
+CREATE OR REPLACE VIEW VW_INDEXER AS
+SELECT
+ i.id AS itemid,
+ i.title AS itemtitle,
+ m.id AS mediaid,
+ m.title AS mediatitle,
+ m.houseid AS mediahouseid,
+ m.archived,
+ m.length,
+ m.itemtypeid AS mediaitemtypeid,
+ it.name AS mediaitemtypename,
+ mf.id AS mediafileid,
+ mf.houseid AS mediafilehouseid,
+ vw_mf.mediafilecount
+FROM ITEM i, MEDIA m, MEDIAFILE mf, VW_MEDIAFILES vw_mf, ITEMTYPE it WHERE
+ m.id = mf.mediaid AND
+ i.id = m.itemid AND
+ it.id = m.itemtypeid AND
+ vw_mf.mediaid = m.id AND
+ mf.storeid = (SELECT id FROM STORE WHERE name='TSM')
+@
+-- //@UNDO
+-- SQL to undo the change goes here.
+DROP VIEW VW_INDEXER
+@
--- /dev/null
+CREATE OR REPLACE FUNCTION "DB2ADMIN"."DEFDATE" (TS timestamp) \r
+returns varchar(10) \r
+return \r
+with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as \r
+( \r
+ select \r
+ substr( digits (day(TS)),9), \r
+ substr( digits (month(TS)),9) , \r
+ rtrim(char(year(TS))) , \r
+ substr( digits (hour(TS)),9), \r
+ substr( digits (minute(TS)),9), \r
+ substr( digits (second(TS)),9), \r
+ rtrim(char(microsecond(TS))) \r
+ from sysibm.sysdummy1 \r
+ ) \r
+select yyyy || mm || dd from tmp\r
+@\r
+\r
+\r
+CREATE OR REPLACE FUNCTION "DB2ADMIN"."HUNDATE" (TS timestamp) \r
+returns varchar(10) \r
+return \r
+with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as \r
+( \r
+ select \r
+ substr( digits (day(TS)),9), \r
+ substr( digits (month(TS)),9) , \r
+ rtrim(char(year(TS))) , \r
+ substr( digits (hour(TS)),9), \r
+ substr( digits (minute(TS)),9), \r
+ substr( digits (second(TS)),9), \r
+ rtrim(char(microsecond(TS))) \r
+ from sysibm.sysdummy1 \r
+ ) \r
+select yyyy || '.' || mm || '.' || dd from tmp\r
+@\r
+\r
+CREATE OR REPLACE FUNCTION "DB2ADMIN"."HIGHLIGHT" (content CLOB(400000), starttag VARCHAR(20), endtag VARCHAR(20), pattern VARCHAR(1000))\r
+ RETURNS VARCHAR(32000)\r
+ LANGUAGE SQL\r
+ NO EXTERNAL ACTION\r
+ READS SQL DATA\r
+ DETERMINISTIC\r
+BEGIN\r
+ DECLARE RESULT VARCHAR(32000) DEFAULT '';\r
+ DECLARE CHUNKSIZE INT DEFAULT 10000;\r
+ DECLARE CHUNK VARCHAR(10000);\r
+ DECLARE CHUNKSTART INT DEFAULT 1;\r
+ DECLARE HITSTART INT DEFAULT 1;\r
+ WHILE LENGTH(RESULT) = 0 AND CHUNKSTART < LENGTH(content) DO\r
+ SET CHUNK = DBMS_LOB.SUBSTR(content, CHUNKSIZE, CHUNKSTART);\r
+ SET HITSTART = REGEXP_INSTR(CHUNK, pattern, 1, 1, 0, 'i');\r
+ IF HITSTART > 0 THEN\r
+ IF CHUNKSTART + HITSTART > 100 THEN\r
+ SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART + HITSTART - 100);\r
+ ELSE\r
+ SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART);\r
+ END IF; \r
+ SET CHUNK = REPLACE(CHUNK, '<', '');\r
+ SET CHUNK = REPLACE(CHUNK, '>', '');\r
+ SET RESULT = '...' || REGEXP_REPLACE(CHUNK, pattern, starttag||'$0'||endtag,1,0,'i') || '...';\r
+ END IF; \r
+ SET CHUNKSTART = CHUNKSTART + CHUNKSIZE;\r
+ END WHILE;\r
+ RETURN RESULT;\r
+END\r
+@\r
+\r
+CREATE OR REPLACE VIEW "DB2ADMIN"."VW_ITEMS" as\r
+select\r
+i.id as itemid, \r
+i.created as itemcreated, \r
+i.houseid as itemhouseid, \r
+i.title as itemtitle, \r
+m.id as mediaid,\r
+m.created as mediacreated, \r
+m.archived,\r
+m.length, \r
+it.name as mediatype, \r
+m.houseid as mediahouseid, \r
+m.title as mediatitle, \r
+mf.id as mediafileid,\r
+mf.houseid as mediafilehouseid\r
+from mediafile mf\r
+left outer join media m on (m.id = mf.mediaid) \r
+left outer join item i on (i.id = m.itemid) \r
+left outer join itemtype it on (it.id = m.itemtypeid) \r
+where mf.storeid = 1\r
+@\r
+\r
+CREATE OR REPLACE VIEW "DB2ADMIN"."VW_ITEMS_DESCRIPTION" as\r
+select\r
+i.id as itemid, \r
+i.created as itemcreated, \r
+i.houseid as itemhouseid, \r
+i.title as itemtitle, \r
+i.description as itemdescription,\r
+m.id as mediaid,\r
+m.created as mediacreated, \r
+m.archived,\r
+m.length,\r
+m.description as mediadescription, \r
+it.name as mediatype, \r
+m.houseid as mediahouseid, \r
+m.title as mediatitle, \r
+mf.id as mediafileid,\r
+mf.houseid as mediafilehouseid\r
+from mediafile mf\r
+left outer join media m on (m.id = mf.mediaid) \r
+left outer join item i on (i.id = m.itemid) \r
+left outer join itemtype it on (it.id = m.itemtypeid) \r
+where mf.storeid = 1\r
+@\r
+\r
+CREATE OR REPLACE FUNCTION "DB2ADMIN"."FULLDESC" (IN initemid BIGINT, IN inmediaid BIGINT, IN inmediafileid BIGINT) \r
+returns CLOB(400000) \r
+return \r
+SELECT \r
+ COALESCE(hundate(archived), '') || ' ' ||\r
+ COALESCE(defdate(archived), '') || ' ' ||\r
+ COALESCE(itemhouseid, '') || ' ' ||\r
+ COALESCE(itemtitle, '') || ' ' ||\r
+ COALESCE(itemdescription,'') || ' ' ||\r
+ COALESCE(mediahouseid, '') || ' ' ||\r
+ COALESCE(mediatitle, '') || ' ' ||\r
+ COALESCE(mediadescription, '') || ' ' ||\r
+ COALESCE(mediafilehouseid, '')\r
+from vw_items_description WHERE itemid = initemid AND mediaid = inmediaid AND mediafileid = inmediafileid\r
+@\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_INSERT after insert\r
+on mediafile\r
+referencing new as n\r
+for each row\r
+when (n.storeid = 1)\r
+begin atomic\r
+ insert into mediadescription (itemid, mediaid, mediafileid, description)\r
+ select \r
+ itemid,\r
+ mediaid, \r
+ mediafileid,\r
+ fulldesc(itemid, mediaid, mediafileid)\r
+ from vw_items \r
+ where mediafileid = n.id;\r
+end\r
+@\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_DELETE after delete\r
+on mediafile\r
+referencing old as o\r
+for each row\r
+when (o.storeid = 1)\r
+begin atomic\r
+ delete from mediadescription where mediafileid = o.id;\r
+end\r
+@\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIA_AFTER_UPDATE after update on media\r
+referencing new as n\r
+for each row\r
+begin atomic\r
+ update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where mediaid = n.id;\r
+end\r
+@\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_ITEM_AFTER_UPDATE after update on item\r
+referencing new as n\r
+for each row\r
+begin atomic\r
+ update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where itemid = n.id;\r
+end\r
+@\r
+\r
+\r
+--osszes frissitese\r
+--update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid)\r
+\r
+\r
+++ /dev/null
-CREATE OR REPLACE FUNCTION "DB2ADMIN"."FULLDESC" (IN initemid BIGINT, IN inmediaid BIGINT, IN inmediafileid BIGINT) \r
-returns CLOB(400000) \r
-return \r
-SELECT \r
- COALESCE(hundate(archived), '') || ' ' ||\r
- COALESCE(defdate(archived), '') || ' ' ||\r
- COALESCE(itemhouseid, '') || ' ' ||\r
- COALESCE(itemtitle, '') || ' ' ||\r
- COALESCE(itemdescription,'') || ' ' ||\r
- COALESCE(mediahouseid, '') || ' ' ||\r
- COALESCE(mediatitle, '') || ' ' ||\r
- COALESCE(mediadescription, '') || ' ' ||\r
- COALESCE(mediafilehouseid, '')\r
-from vw_items_description WHERE itemid = initemid AND mediaid = inmediaid AND mediafileid = inmediafileid\r
-GO\r
-\r
-CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_INSERT after insert\r
-on mediafile\r
-referencing new as n\r
-for each row\r
-when (n.storeid = 1)\r
-begin atomic\r
- insert into mediadescription (itemid, mediaid, mediafileid, description)\r
- select \r
- itemid,\r
- mediaid, \r
- mediafileid,\r
- fulldesc(itemid, mediaid, mediafileid)\r
- from vw_items \r
- where mediafileid = n.id;\r
-end\r
-GO\r
-\r
-CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_DELETE after delete\r
-on mediafile\r
-referencing old as o\r
-for each row\r
-when (o.storeid = 1)\r
-begin atomic\r
- delete from mediadescription where mediafileid = o.id;\r
-end\r
-GO\r
-\r
-CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIA_AFTER_UPDATE after update on media\r
-referencing new as n\r
-for each row\r
-begin atomic\r
- update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where mediaid = n.id;\r
-end\r
-GO\r
-\r
-CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_ITEM_AFTER_UPDATE after update on item\r
-referencing new as n\r
-for each row\r
-begin atomic\r
- update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where itemid = n.id;\r
-end\r
-GO\r
-\r
---osszes frissitese\r
---update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid)\r
-\r
-\r
package user.jobengine.db;\r
\r
-public class ArchivedMedia {\r
+import java.io.Serializable;\r
+\r
+public class ArchivedMedia implements Serializable {\r
+ private static final long serialVersionUID = 1L;\r
private Item item;\r
private Media media;\r
private String relevant;\r
private CountDownLatch barrier;
private Class<IJobStep> stepClass;
private int maxConcurrent;
+ private String className;
public JobStepExecutor() {
}
@Override
@SuppressWarnings("unchecked")
public void create(String className, int maxConcurrent) throws JobEngineException {
+ this.className = className;
logger = LogManager.getLogger(getClass().getSimpleName() + ":" + className);
logger.debug("Creating executor {}, instances {}", className, maxConcurrent);
if (StringUtils.isEmpty(className))
Object[] result = null;\r
this.jobRuntime = jobRuntime;\r
//jobRuntime.setDescription("Feldolgozás: " + getClass().getSimpleName());\r
- jobRuntime.NotifyUpdate();\r
- for (Method method : getClass().getDeclaredMethods()) {\r
+\r
+ if (jobRuntime != null)\r
+ jobRuntime.NotifyUpdate();\r
+ for (Method method : this.getClass().getDeclaredMethods()) {\r
Annotation annotation = method.getAnnotation(StepEntry.class);\r
if (annotation != null) {\r
Object[] extendedInputs = inputs;\r
extendedInputs = addParameter(method, extendedInputs, IJobEngine.class, jobEngine);\r
extendedInputs = addParameter(method, extendedInputs, IJobRuntime.class, jobRuntime);\r
- result = (Object[]) method.invoke(this, extendedInputs);\r
+ try {\r
+ logger.info("Executing {}", method);\r
+ result = (Object[]) method.invoke(this, extendedInputs);\r
+ } catch (Exception e) {\r
+ if (e instanceof IllegalArgumentException) {\r
+ logger.error("Invokation error in {}. Invoke parameters:\r\n{}", getClass().getSimpleName(), Arrays.toString(extendedInputs));\r
+ if (method.getParameterCount() != extendedInputs.length) {\r
+ logger.error("Expected parameter count: {}, invoke parameter count: {}", method.getGenericParameterTypes().length,\r
+ extendedInputs.length);\r
+ }\r
+ }\r
+\r
+ throw e;\r
+ }\r
break;\r
}\r
}\r
wndRetrieveBatch.detach();\r
}\r
\r
+ //////////TEST CODE KESOBB TOROLNI ++++++++++++++++\r
+ private ArchivedMedia createFakeArchivedMedia(int c) {\r
+ ArchivedMedia ret = new ArchivedMedia();\r
+ Media media = new Media();\r
+ media.setId(c);\r
+ media.setTitle("title_" + c);\r
+ media.setMediaFilesName("mediaFilesName_" + c);\r
+ ret.setMedia(media);\r
+ return ret;\r
+ }\r
+\r
@Command\r
@NotifyChange("basketItems")\r
public void execute() {\r
Map<String, Object> parameters = scheduledJob.getJobParameters();\r
parameters.put(HOUSEID, houseId);\r
parameters.put(RECIPIENT, email);\r
- parameters.put(BASKET, getMedias());\r
+\r
+ parameters.put(BASKET, new ArrayList<ArchivedMedia>(getBasketItems()));\r
parameters.put(TARGET_PATH_TYPE, Types.valueOf(reloadTypes.getSelection().iterator().next().toString()).value);\r
jobEngine.submit(JOBTEMPLATE, RESTORE, parameters);\r
\r
\r
public List<ArchivedMedia> getBasketItems() {\r
setDisabled(menuModel.getBasketItems() == null || menuModel.getBasketItems().size() == 0);\r
- List<ArchivedMedia> basketItems = menuModel.getBasketItems();\r
- \r
- //////////TEST CODE KESOBB TOROLNI ++++++++++++++++\r
- if(basketItems == null) basketItems = new ArrayList<ArchivedMedia>();\r
- if(basketItems.size() == 0){\r
- for(int c=0; c<20; c++){\r
- basketItems.add(createFakeArchivedMedia(c));\r
- }\r
- }\r
- \r
- \r
- return basketItems;\r
+ return menuModel.getBasketItems();\r
}\r
\r
- //////////TEST CODE KESOBB TOROLNI ++++++++++++++++\r
- private ArchivedMedia createFakeArchivedMedia(int c){\r
- ArchivedMedia ret = new ArchivedMedia();\r
- Media media = new Media();\r
- media.setId(c);\r
- media.setTitle("title_" + c);\r
- media.setMediaFilesName("mediaFilesName_" + c);\r
- ret.setMedia(media);\r
- return ret;\r
- }\r
- \r
- \r
public String getEmail() {\r
return email;\r
}\r
return houseId;\r
}\r
\r
- private List<ArchivedMedia> getMedias() {\r
- List<ArchivedMedia> basket = getBasketItems();\r
-// List<Media> result = basket.stream().map(i -> {\r
-// return i.getMedia();\r
-// }).collect(Collectors.toList());\r
- return basket;\r
- }\r
-\r
public ListModel<String> getReloadTypes() {\r
return reloadTypes;\r
}\r