"sourceStoreUri": {\r
"name": "Default",\r
"protocol": "LOCAL",\r
- "uri": "c:/temp",\r
- "fileFilter": "*.log;*.bat",\r
+ "uri": "c:/_video",\r
+ "fileFilter": "*.mxf",\r
"showDirectories": true\r
},\r
"alternateSourceStoreUris": \r
[\r
{\r
- "name": "Alt1",\r
+ "name": "NLE1",\r
"protocol": "LOCAL",\r
- "uri": "c:/dev",\r
- "fileFilter": "*.log;*.bat",\r
+ "uri": "c:/_video/nle1",\r
+ "fileFilter": "*.mxf",\r
"showDirectories": true\r
},\r
{\r
- "name": "Alt2",\r
+ "name": "NLE2",\r
"protocol": "LOCAL",\r
- "uri": "c:/opt",\r
- "fileFilter": "*.log;*.bat",\r
+ "uri": "c:/_video/nle2",\r
+ "fileFilter": "*.mxf",\r
"showDirectories": true\r
}\r
],\r
"targets": \r
[\r
{\r
- "name": "name1",\r
+ "name": "FINISHED_SHOWS",\r
+ "killDateDays": 1,\r
"storeUri": {\r
"protocol": "LOCAL",\r
- "uri": "c:/temp1"\r
- }\r
- },\r
- {\r
- "name": "name2",\r
- "storeUri": {\r
- "protocol": "LOCAL",\r
- "uri": "c:/temp2"\r
+ "uri": "c:/_video/finished"\r
}\r
}\r
]\r
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=Echotv.hu -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.mediafinder.external=true"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.mediafinder.external=true"/>\r
<stringAttribute key="pde.version" value="3.3"/>\r
<booleanAttribute key="show_selected_only" value="false"/>\r
-<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jackson2-provider@default:default,org.jboss.resteasy.jaxb-provider@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jackson2-provider@default:default,org.jboss.resteasy.jaxrs-api@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
<booleanAttribute key="tracing" value="false"/>\r
<booleanAttribute key="useCustomFeatures" value="false"/>\r
<booleanAttribute key="useDefaultConfigArea" value="true"/>\r
<plugin id="org.eclipse.jetty.security" version="9.3.9.v20160517"/>\r
<plugin id="org.eclipse.jetty.server" version="9.3.9.v20160517"/>\r
<plugin id="org.eclipse.jetty.servlet" version="9.3.9.v20160517"/>\r
-<plugin id="org.eclipse.jetty.servlet.source"/>\r
<plugin id="org.eclipse.jetty.util" version="9.3.9.v20160517"/>\r
<plugin id="org.eclipse.jetty.webapp" version="9.3.9.v20160517"/>\r
<plugin id="org.eclipse.jetty.websocket.api"/>\r
</artifact>\r
<artifact>\r
<id>org.eclipse.jetty:jetty-servlet:${jetty.version}</id>\r
- <source>true</source>\r
</artifact>\r
<artifact>\r
<id>org.eclipse.jetty.websocket:websocket-api:${jetty.version}</id>\r
\r
<artifact>\r
<id>org.jboss.resteasy:resteasy-jaxrs:${resteasy-version}</id>\r
+ <source>true</source>\r
</artifact>\r
<artifact>\r
<id>org.jboss.resteasy:resteasy-validator-provider-11:${resteasy-version}</id>\r
+ <source>true</source>\r
</artifact>\r
<artifact>\r
<id>org.jboss.resteasy:resteasy-multipart-provider:${resteasy-version}</id>\r
+ <source>true</source>\r
</artifact>\r
<artifact>\r
+ <source>true</source>\r
<id>org.jboss.resteasy:resteasy-jackson2-provider:${resteasy-version}</id>\r
</artifact>\r
</artifacts>\r
org.apache.commons.lang;bundle-version="2.6.0",
user.jobengine.osgi.server;bundle-version="1.0.0",
user.jobengine.osgi.db,
- com.ibm.nosql;bundle-version="4.19.26"
+ com.ibm.nosql;bundle-version="4.19.26",
+ com.fasterxml.jackson.core.jackson-annotations;bundle-version="2.4.5",
+ com.fasterxml.jackson.core.jackson-core;bundle-version="2.4.5",
+ com.fasterxml.jackson.core.jackson-databind;bundle-version="2.4.5",
+ com.fasterxml.jackson.datatype.jackson-datatype-joda;bundle-version="2.4.5",
+ com.fasterxml.jackson.jaxrs.jackson-jaxrs-base;bundle-version="2.4.5",
+ com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider;bundle-version="2.4.5",
+ com.fasterxml.jackson.module.jackson-module-jaxb-annotations;bundle-version="2.4.5",
+ org.jboss.resteasy.client;bundle-version="3.0.11",
+ org.jboss.resteasy.jackson2-provider;bundle-version="3.0.11",
+ org.jboss.resteasy.jaxb-provider;bundle-version="3.0.11",
+ org.jboss.resteasy.jaxrs;bundle-version="3.0.11",
+ org.jboss.resteasy.jaxrs-api;bundle-version="3.0.11",
+ org.jboss.resteasy.multipart-provider;bundle-version="3.0.11",
+ org.jboss.resteasy.validator-provider-11;bundle-version="3.0.11"
Bundle-ClassPath: .
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
- com.fasterxml.jackson.core;version="2.4.5",
- com.fasterxml.jackson.databind;version="2.4.5",
- com.fasterxml.jackson.databind.util;version="2.4.5",
- com.fasterxml.jackson.datatype.joda;version="2.4.5",
- com.fasterxml.jackson.jaxrs.json;version="2.4.5",
- javax.ws.rs.client,
+Import-Package: javax.ws.rs.client,
javax.ws.rs.core;version="2.0.1",
org.apache.commons.io;version="2.2.0",
org.apache.commons.net.ftp;version="3.6.0",
org.apache.logging.log4j;version="2.8.2",
org.apache.logging.log4j.message;version="2.8.2",
- org.jboss.resteasy.client.jaxrs,
- org.jboss.resteasy.plugins.providers,
- org.jboss.resteasy.spi,
org.joda.time;version="2.2.0",
org.joda.time.base;version="2.2.0",
sqlj.runtime.ref
Files.write(xmlPath, content.getBytes());\r
}\r
\r
- public static byte[] createNEXIOKillDateFile(String fileName, Date killDate, String description, String agency)\r
- throws Exception {\r
+ public static byte[] createNEXIOKillDateFile(String fileName, Date killDate, String description, String agency) throws Exception {\r
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();\r
DocumentBuilder db = dbf.newDocumentBuilder();\r
DOMImplementation impl = db.getDOMImplementation();\r
}\r
\r
if (StringUtils.isNotBlank(description))\r
- root.appendChild(xmlDocument.createElement(EXTENDEDDESCRIPTION))\r
- .appendChild(xmlDocument.createTextNode(description));\r
+ root.appendChild(xmlDocument.createElement(EXTENDEDDESCRIPTION)).appendChild(xmlDocument.createTextNode(description));\r
if (StringUtils.isNotBlank(agency))\r
root.appendChild(xmlDocument.createElement(EXTENDEDAGENCY)).appendChild(xmlDocument.createTextNode(agency));\r
xmlDocument.appendChild(root);\r
} catch (Exception e) {\r
// logger.catching(e);\r
try {\r
- Files.createDirectory(filePath);\r
+ Files.createDirectories(filePath);\r
} catch (Exception e1) {\r
logger.catching(e);\r
throw e;\r
ensureUNCFolder(statusPath);\r
}\r
\r
- public static void setNEXIOKillDate(int killDateDays, String targetFileName, String nexioAgency, StoreUri targetUri)\r
- throws Exception {\r
+ public static void setNEXIOKillDate(int killDateDays, String targetFileName, String nexioAgency, StoreUri targetUri) throws Exception {\r
OutputStream outStream = null;\r
try {\r
FTPClient targetFTP = ((FtpDirectoryLister) targetUri.getLister()).connect();\r
killDate.add(Calendar.DAY_OF_YEAR, killDateDays);\r
if (targetFileName.toLowerCase().contains(".mxf"))\r
targetFileName = targetFileName.substring(0, targetFileName.lastIndexOf('.'));\r
- byte[] killDateFile = EscortFiles.createNEXIOKillDateFile(targetFileName, killDate.getTime(), null,\r
- nexioAgency);\r
+ byte[] killDateFile = EscortFiles.createNEXIOKillDateFile(targetFileName, killDate.getTime(), null, nexioAgency);\r
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"\r
- + " Reply:" + targetFTP.getReplyString());\r
+ "Can not open: " + targetFileName.substring(0, targetFileName.lastIndexOf('.')) + ".xml" + " Reply:" + targetFTP.getReplyString());\r
}\r
outStream.write(killDateFile);\r
outStream.flush();\r
\r
source.transferFrom(target, sourceFileName, targetFileName);\r
if (killDateDays > 0) {\r
- EscortFiles.createUNCKillDate(targetPath, sourceFileName, killDateDays, marker);\r
+ EscortFiles.createUNCKillDate(targetPath, targetFileName, killDateDays, marker);\r
}\r
\r
} catch (Exception e) {\r
IDirectoryLister outputLister = RemoteFileHandler.createLister(targetStoreUri);
if (outputLister == null)
throw new Exception("OutputLister is null.");
+
+ outputLister.ensureOutputDirectory();
+
return copy(lister, outputLister, remoteFile, targetName);
}
}\r
}\r
\r
+ @Override\r
+ public void ensureOutputDirectory() {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
@Override\r
public boolean exists(String fileName) throws Exception {\r
connect();\r
\r
void delete(RemoteFile remoteFile) throws Exception;\r
\r
+ void ensureOutputDirectory() throws Exception;\r
+\r
boolean exists(String fileName) throws Exception;\r
\r
RemoteFile get(String fileName) throws Exception;\r
import java.nio.file.Path;\r
import java.nio.file.Paths;\r
import java.nio.file.attribute.BasicFileAttributes;\r
+import java.nio.file.attribute.FileAttribute;\r
+import java.nio.file.attribute.PosixFilePermission;\r
+import java.nio.file.attribute.PosixFilePermissions;\r
import java.sql.Timestamp;\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.Comparator;\r
import java.util.List;\r
+import java.util.Set;\r
\r
import org.apache.commons.lang.NotImplementedException;\r
\r
\r
}\r
\r
+ @Override\r
+ public void ensureOutputDirectory() throws Exception {\r
+ File folder = new File(storeUri.toString(true));\r
+ if (!folder.exists() || !folder.isDirectory()) {\r
+ Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");\r
+ FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);\r
+ try {\r
+ Files.createDirectories(folder.toPath(), attr);\r
+ } catch (Exception e) {\r
+ // logger.catching(e);\r
+ try {\r
+ Files.createDirectories(folder.toPath());\r
+ } catch (Exception e1) {\r
+ throw e;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
@Override\r
public boolean exists(String fileName) throws Exception {\r
Path path = Paths.get(storeUri.toString(true), fileName);\r
List<RemoteFile> result = new ArrayList<RemoteFile>();\r
String path = storeUri.toString(true);\r
File dir = new File(path);\r
- File[] dirs = {};\r
+ File[] dirs = null;\r
if (storeUri.isShowDirectories())\r
dirs = dir.listFiles(new DirectoryFileFilter(storeUri.getDirectoryFilter(), true));\r
\r
File[] files = dir.listFiles(new DirectoryFileFilter(storeUri.getFileFilter(), false));\r
\r
- Arrays.sort(dirs, new Comparator<File>() {\r
- @Override\r
- public int compare(File f1, File f2) {\r
- return f1.getName().compareToIgnoreCase(f2.getName());\r
+ if (dirs != null) {\r
+ Arrays.sort(dirs, new Comparator<File>() {\r
+ @Override\r
+ public int compare(File f1, File f2) {\r
+ return f1.getName().compareToIgnoreCase(f2.getName());\r
+ }\r
+ });\r
+ for (File file : dirs) {\r
+ RemoteFile remoteFile = toRemoteFile(file);\r
+ result.add(remoteFile);\r
}\r
- });\r
+ }\r
\r
- Arrays.sort(files, new Comparator<File>() {\r
- @Override\r
- public int compare(File f1, File f2) {\r
- return f1.getName().compareToIgnoreCase(f2.getName());\r
+ if (files != null) {\r
+ Arrays.sort(files, new Comparator<File>() {\r
+ @Override\r
+ public int compare(File f1, File f2) {\r
+ return f1.getName().compareToIgnoreCase(f2.getName());\r
+ }\r
+ });\r
+ for (File file : files) {\r
+ RemoteFile remoteFile = toRemoteFile(file);\r
+ result.add(remoteFile);\r
}\r
- });\r
-\r
- for (File file : dirs) {\r
- RemoteFile remoteFile = toRemoteFile(file);\r
- result.add(remoteFile);\r
}\r
\r
- for (File file : files) {\r
- RemoteFile remoteFile = toRemoteFile(file);\r
- result.add(remoteFile);\r
- }\r
return result;\r
}\r
\r
}\r
}\r
\r
+ @Override\r
+ public void ensureOutputDirectory() {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
@Override\r
public boolean exists(String fileName) throws Exception {\r
// TODO Auto-generated method stub\r
\r
}\r
\r
+ @Override\r
+ public void ensureOutputDirectory() throws Exception {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
@Override\r
public boolean exists(String fileName) throws Exception {\r
// TODO Auto-generated method stub\r
\r
public interface IMetadata {\r
\r
+ String getId();\r
+\r
+ String getTitle();\r
}\r
int toResult) {\r
SearchResult<ArchivedMedia> ret = new SearchResult<ArchivedMedia>();\r
// TODO Auto-generated method stub\r
- // ResteasyProviderFactory instance =\r
- // ResteasyProviderFactory.getInstance();\r
- // RegisterBuiltin.register(instance);\r
- // instance.registerProvider(ResteasyJackson2Provider.class);\r
ResteasyClient client = new ResteasyClientBuilder().build();\r
// if (criteria == "" || criteria == null)\r
// apiPath = apiPath + "*:*/";\r
// TestDB.createStaticItemTypes();\r
// Fixture\r
// Exercise\r
- Item result = manager.getItemByHouseID("11111");\r
+ Item result = manager.getItemByHouseID("11111", null);\r
\r
// Verify\r
assertNotNull(result);\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
-version=2.4.5\r
+version=2.4.6\r
footer=2016-2019 © Copyright User Rendszerház Kft.\r
\r
login_info=Információ\r
package user.jobengine.zk.model;\r
\r
-import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
import org.zkoss.zk.ui.Executions;\r
import org.zkoss.zul.ListModelList;\r
\r
+import user.commons.ListUtils;\r
import user.commons.NamedStoreUri;\r
import user.commons.RemoteFile;\r
import user.commons.StoreUri;\r
String param = Executions.getCurrent().getParameter("source");\r
if (param != null && !param.isEmpty()) {\r
for (NamedStoreUri altSourceStoreUri : config.getAlternateSourceStoreUris()) {\r
- if (param.equals(altSourceStoreUri.getName()))\r
+ if (param.toLowerCase().equals(altSourceStoreUri.getName().toLowerCase()))\r
uri = altSourceStoreUri;\r
}\r
}\r
@NotifyChange("executeEnabled")\r
public void selectedItemChanged() {\r
Set<RemoteFile> selection = files.getSelection();\r
- // logger.info("Selected: {}", selection.size());\r
-\r
- Map<String, Object> args = new HashMap<>();\r
- args.put("sourcedata", selection);\r
- args.put("sourceUri", uri);\r
- BindUtils.postGlobalCommand(null, null, "updateExecuteState", args);\r
+ Map<String, Object> args = ListUtils.asMap("sourcedata", selection, "sourceUri", uri);\r
+ BindUtils.postGlobalCommand(null, null, "updateExecuteSource", args);\r
}\r
\r
public void setFileSizeConverter(FileSizeConverter fileSizeConverter) {\r
package user.jobengine.zk.model;\r
\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.text.Normalizer;\r
import java.util.Collection;\r
import java.util.Map;\r
+import java.util.regex.Pattern;\r
\r
+import org.apache.commons.io.FilenameUtils;\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
import org.zkoss.bind.annotation.BindingParam;\r
import user.jobengine.server.JobEngineException;\r
import user.jobengine.server.scheduler.ScheduledJob;\r
import user.jobengine.zk.util.SessionUtil;\r
+import user.mediacube.metadata.interfaces.IMetadata;\r
\r
public class MaestroJobListModel extends AsyncBaseModel implements IJobChangedListener {\r
private static final Logger logger = LogManager.getLogger();\r
private static final String TEMPLATE = "common-copy.xml";\r
+ public static final Pattern DIACRITICS_AND_FRIENDS = Pattern.compile("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");\r
+\r
+ private static String stripDiacritics(String str) {\r
+ str = Normalizer.normalize(str, Normalizer.Form.NFD);\r
+ str = DIACRITICS_AND_FRIENDS.matcher(str).replaceAll("");\r
+ return str;\r
+ }\r
+\r
private ListModelList<IJobRuntime> jobList = new ListModelList<IJobRuntime>();\r
private IJobEngine jobEngine = null;\r
private int newPriority = 1;\r
+\r
private Collection<BasicDBObject> selectedJobs;\r
+\r
private String currentUser = SessionUtil.getUserPrincipal().getAccount();\r
\r
+ private String applyTargetFile(String sourceFileName, IMetadata targetMetadata) {\r
+ String extension = FilenameUtils.getExtension(sourceFileName);\r
+ return String.format("%s.%s", targetMetadata.getId(), extension);\r
+ }\r
+\r
+ private String applyTargetPath(String targetPath, IMetadata targetMetadata) {\r
+ Path path = Paths.get(targetPath, String.format("%s_%s", targetMetadata.getId(), stripDiacritics(targetMetadata.getTitle())));\r
+ String result = path.toString();\r
+ result = result.replace(" (OK)", "");\r
+ result = result.replace(" ", "_");\r
+ return result.toUpperCase();\r
+ }\r
+\r
public ListModelList<IJobRuntime> getJobList() {\r
return jobList;\r
}\r
@NotifyChange({ "jobList" })\r
public void submitJob(@BindingParam("sourceProtocol") String sourceProtocol, @BindingParam("sourcePath") String sourcePath,\r
@BindingParam("sourceFileName") String sourceFileName, @BindingParam("targetProtocol") String targetProtocol,\r
- @BindingParam("targetPath") String targetPath, @BindingParam("killDateDays") Integer killDateDays) {\r
+ @BindingParam("targetPath") String targetPath, @BindingParam("killDateDays") int killDateDays,\r
+ @BindingParam("targetMetadata") IMetadata targetMetadata) {\r
\r
ScheduledJob scheduledJob = jobEngine.getScheduledJob(TEMPLATE);\r
Map<String, Object> parameters = scheduledJob.getJobParameters();\r
parameters.put("sourceFileName", sourceFileName);\r
\r
parameters.put("targetProtocol", targetProtocol);\r
+\r
+ targetPath = applyTargetPath(targetPath, targetMetadata);\r
parameters.put("targetPath", targetPath);\r
- parameters.put("targetFileName", sourceFileName);\r
+\r
+ String targetFileName = applyTargetFile(sourceFileName, targetMetadata);\r
+ parameters.put("targetFileName", targetFileName);\r
+\r
parameters.put("killDateDays", killDateDays);\r
\r
try {\r
private String name;\r
private StoreUri storeUri;\r
private Boolean selected;\r
+ private int killDateDays;\r
+\r
+ public int getKillDateDays() {\r
+ return killDateDays;\r
+ }\r
\r
public String getName() {\r
return name;\r
}\r
}\r
\r
+ public void setKillDateDays(int killDateDays) {\r
+ this.killDateDays = killDateDays;\r
+ }\r
+\r
public void setName(String name) {\r
this.name = name;\r
}\r
package user.jobengine.zk.model;\r
\r
import java.util.Date;\r
-import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
import org.zkoss.zul.Column;\r
import org.zkoss.zul.ListModelList;\r
\r
+import user.commons.ListUtils;\r
import user.jobengine.osgi.server.ComponentBinder;\r
import user.jobengine.zk.util.SessionUtil;\r
import user.mediacube.metadata.interfaces.IMetadata;\r
break;\r
}\r
\r
+ Map<String, Object> args = ListUtils.asMap("metadata", selection);\r
+ BindUtils.postGlobalCommand(null, null, "updateExecuteMetadata", args);\r
+\r
if (selection == null)\r
return;\r
\r
logger.info("Selected: {}", selection.size());\r
-\r
- Map<String, Object> args = new HashMap<>();\r
- args.put("metadata", selection);\r
- BindUtils.postGlobalCommand(null, null, "updateExecuteState", args);\r
}\r
\r
public void setProblematic(boolean problematic) {\r
Set<IMetadata> metaData;\r
private StoreUri sourceUri;\r
\r
- public boolean conditionsOk() {\r
- boolean srcMetaOk = false;\r
- boolean ret = false;\r
- if (sourceData != null && metaData != null) {\r
- if (!sourceData.isEmpty() && !metaData.isEmpty()) {\r
- if (!sourceData.iterator().next().getIsFolder()) {\r
- srcMetaOk = true;\r
- }\r
- }\r
- }\r
-\r
- // Végén törölni !!! ////////////////////////////////////////\r
- if (sourceData != null) {\r
- if (!sourceData.isEmpty()) {\r
- if (!sourceData.iterator().next().getIsFolder()) {\r
- srcMetaOk = true;\r
- }\r
- }\r
- }\r
- // Végén törölni !!! ////////////////////////////////////////\r
-\r
- if (srcMetaOk) {\r
- for (int i = 0; i < targets.size(); i++) {\r
- if (targets.get(i).isSelected().booleanValue()) {\r
- ret = true;\r
- break;\r
- }\r
- }\r
- }\r
- return ret;\r
- }\r
-\r
@Command\r
public void createJob() {\r
String fileName = sourceData.iterator().next().getName();\r
// TODO Auto-generated catch block\r
e.printStackTrace();\r
}\r
- for (int i = 0; i < targets.size(); i++) {\r
- if (targets.get(i).isSelected()) {\r
+ for (MaestroTarget target : targets) {\r
+ if (target.isSelected()) {\r
Map<String, Object> params = new HashMap<>();\r
params.put("sourceProtocol", sourceUri.getProtocol());\r
params.put("sourcePath", sourcePath);\r
params.put("sourceFileName", fileName);\r
\r
- params.put("targetProtocol", targets.get(i).getStoreUri().getProtocol());\r
- params.put("targetPath", targets.get(i).getStoreUri().getUri());\r
- params.put("killDateDays", 0);\r
- // params.put("targetFileName", fileName);\r
+ params.put("targetProtocol", target.getStoreUri().getProtocol());\r
+ params.put("targetPath", target.getStoreUri().getUri());\r
+ params.put("killDateDays", target.getKillDateDays());\r
+\r
+ params.put("targetMetadata", metaData.iterator().next());\r
BindUtils.postGlobalCommand(null, null, "submitJob", params);\r
}\r
}\r
}\r
\r
+ private boolean enableExecute() {\r
+ boolean targetSelected = false;\r
+ for (MaestroTarget target : targets) {\r
+ if (target.isSelected()) {\r
+ targetSelected = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ boolean result = targetSelected && metaData != null && !metaData.isEmpty() && sourceUri != null && sourceData != null && !sourceData.isEmpty();\r
+ if (result)\r
+ result &= !sourceData.iterator().next().getIsFolder();\r
+ logger.info("Condition OK {}", result);\r
+ return result;\r
+ }\r
+\r
public ListModelList<MaestroTarget> getTargets() {\r
return targets;\r
}\r
try {\r
config = SessionUtil.getMaestroConfig();\r
targets = new ListModelList<>(config.getTargets());\r
- for (int i = 0; i < targets.size(); i++)\r
- targets.get(i).setSelected(false);\r
} catch (Exception e) {\r
logger.error("Hiba a config file beállításánál {}", e.getMessage());\r
}\r
@Command\r
@NotifyChange("executeEnabled")\r
public void onCheck(@BindingParam("targetName") String targetName, @BindingParam("isChecked") Boolean isChecked) {\r
- for (int i = 0; i < targets.size(); i++) {\r
- if (targets.get(i).getName() == targetName) {\r
- targets.get(i).setSelected(isChecked.booleanValue());\r
+\r
+ for (MaestroTarget target : targets) {\r
+ if (target.getName().equals(targetName)) {\r
+ target.setSelected(isChecked);\r
+ break;\r
}\r
}\r
- setExecuteEnabled(conditionsOk());\r
+\r
+ setExecuteEnabled(enableExecute());\r
}\r
\r
@Command\r
\r
@GlobalCommand\r
@NotifyChange("executeEnabled")\r
- public void updateExecuteState(@BindingParam("sourcedata") Set<RemoteFile> sourceData, @BindingParam("sourceUri") StoreUri sourceUri,\r
- @BindingParam("metadata") Set<IMetadata> metaData) {\r
- this.sourceData = sourceData;\r
+ public void updateExecuteMetadata(@BindingParam("metadata") Set<IMetadata> metaData) {\r
this.metaData = metaData;\r
+ setExecuteEnabled(enableExecute());\r
+ }\r
+\r
+ @GlobalCommand\r
+ @NotifyChange("executeEnabled")\r
+ public void updateExecuteSource(@BindingParam("sourcedata") Set<RemoteFile> sourceData, @BindingParam("sourceUri") StoreUri sourceUri) {\r
+ this.sourceData = sourceData;\r
this.sourceUri = sourceUri;\r
- setExecuteEnabled(conditionsOk());\r
- // logger.info("{}", sourceData);\r
- // logger.info("{}", metaData);\r
+ setExecuteEnabled(enableExecute());\r
}\r
\r
}\r
public static MaestroConfig getMaestroConfig() {\r
MaestroConfig result = null;\r
try {\r
- result = (MaestroConfig) getAttribute(JOBENGINE_MAESTRO_CONFIG);\r
+ //result = (MaestroConfig) getAttribute(JOBENGINE_MAESTRO_CONFIG);\r
if (result == null) {\r
result = JSONConfig.read(JOBENGINE_MAESTRO_CONFIG, MaestroConfig.class);\r
setAttribute(JOBENGINE_MAESTRO_CONFIG, result);\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">\r
+<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>\r
+<stringAttribute key="M2_GOALS" value="clean install"/>\r
+<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>\r
+<booleanAttribute key="M2_OFFLINE" value="false"/>\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="true"/>\r
+<intAttribute key="M2_THREADS" value="1"/>\r
+<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
+<stringAttribute key="M2_USER_SETTINGS" value=""/>\r
+<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/user.mediacube.metadata}"/>\r
+</launchConfiguration>\r
\r
// @Operation int, @@@Options int, @@ItemID int, @@IntParam1 int=Null, @@IntParam2 int=Null, @@IntParam3 int=Null,\r
// @@StrParam1 varchar(200)=Null, @@StrParam2 varchar(max)=Null, @@DateParam1 datetime=Null, @@DateParam2 datetime=Null\r
- static final String AD_SQL = "{CALL dbo.clIFsp_EC_MAM(3002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
+ static final String AD_SQL = "{CALL dbo.clIFsp_ORI_MAM(3002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
// item.t_SpotID = (int)ReadInt(reader, ref f);\r
// item.t_MediaID = ReadString(reader, ref f);\r
// item.v_Title = ReadString(reader, ref f);\r
\r
// @Operation int, @@@Options int, @@ItemID int, @@IntParam1 int=Null, @@IntParam2 int=Null, @@IntParam3 int=Null,\r
// @@StrParam1 varchar(200)=Null, @@StrParam2 varchar(max)=Null, @@DateParam1 datetime=Null, @@DateParam2 datetime=Null\r
- static final String MATERIAL_SQL = "{CALL dbo.clIFsp_EC_MAM(6002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
+ static final String MATERIAL_SQL = "{CALL dbo.clIFsp_ORI_MAM(6002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
// item.v_EpisodeID = ReadString(reader, ref f);\r
// item.v_VariantID = ReadInt(reader, ref f);\r
// item.v_MediaID = ReadString(reader, ref f);\r
@Select(value = MATERIAL_SQL)\r
@Options(statementType = StatementType.CALLABLE)\r
@Results(value = { @Result(property = "episodeID", column = "v_EpisodeID"), @Result(property = "variantID", column = "v_VariantID"),\r
- @Result(property = "mediaID", column = "v_VariantMediaID"), @Result(property = "progTitle", column = "v_ProgTitle"),\r
+ @Result(property = "mediaID", column = "v_MediaID"), @Result(property = "progTitle", column = "v_ProgTitle"),\r
@Result(property = "epTitle", column = "v_EpTitle"), @Result(property = "episode", column = "v_Episode"),\r
@Result(property = "variantNrSegments", column = "v_VariantNrSegments"), @Result(property = "firstBroadcastDate", column = "v_FirstBroadcastDate"),\r
@Result(property = "nextBroadcastDate", column = "v_NextBroadcastDate"), @Result(property = "okForAir", column = "v_OkForAir"),\r
// @Operation int, @@@Options int, @@ItemID int, @@IntParam1 int=Null, @@IntParam2 int=Null, @@IntParam3 int=Null,\r
// @@StrParam1 varchar(200)=Null, @@StrParam2 varchar(max)=Null, @@DateParam1 datetime=Null, @@DateParam2 datetime=Null\r
\r
- static final String PROMO_SQL = "{CALL dbo.clIFsp_EC_MAM(2002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
+ static final String PROMO_SQL = "{CALL dbo.clIFsp_ORI_MAM(2002, #{options, mode=IN, jdbcType=INTEGER}, Null, Null, Null, Null, #{search, mode=IN, jdbcType=VARCHAR}, Null, #{broadcastDay, mode=IN, jdbcType=DATE}, #{broadcastDay, mode=IN, jdbcType=DATE})}";//musorid\r
// item.t_SpotID = (int)ReadInt(reader, ref f);\r
// item.t_MediaID = ReadString(reader, ref f);\r
// item.v_Title = ReadString(reader, ref f);\r
private int spotID;//t_SpotID\r
private String okForAirs; //v_OkForAirs\r
\r
+ @Override\r
+ public String getId() {\r
+ return mediaID;\r
+ }\r
+\r
public String getMediaID() {\r
return mediaID;\r
}\r
return firstBroadcastDate;\r
}\r
\r
+ @Override\r
+ public String getId() {\r
+ return mediaID;\r
+ }\r
+\r
public String getMediaID() {\r
return mediaID;\r
}\r
return segNr;\r
}\r
\r
+ @Override\r
+ public String getTitle() {\r
+ return progTitle;\r
+ }\r
+\r
public int getVariantID() {\r
return variantID;\r
}\r
private static final String JDBC_URL = System.getProperty("jobengine.planair.db.url", "jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo;");\r
private static final String JDBC_USER = System.getProperty("jobengine.planair.db.user", "MAM");\r
private static final String JDBC_PWD = System.getProperty("jobengine.planair.db.password", "Echotv.hu");\r
+ public static final String JDBC_PROCEDURE = System.getProperty("jobengine.planair.db.procedure", "clIFsp_ORI_MAM");\r
\r
private final SqlSessionFactory sqlSessionFactory;\r
\r
return episode;\r
}\r
\r
+ @Override\r
+ public String getId() {\r
+ return mediaID;\r
+ }\r
+\r
public String getMediaID() {\r
return mediaID;\r
}\r