// You can specify all the values or you can default the Build and Revision Numbers \r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.2.0.5")]\r
-[assembly: AssemblyFileVersion("2.2.0.5")]\r
+[assembly: AssemblyVersion("2.2.0.6")]\r
+[assembly: AssemblyFileVersion("2.2.0.6")]\r
--- /dev/null
+{\r
+ "title": "PROMO SZAKOSZTÁLY",\r
+ "active": true,\r
+ "startInTray": false,\r
+ "enableCustomMetadataId": true,\r
+ "defaultWindowColor": "#4DB6AC",\r
+ "partialWindowColor": "#00796B",\r
+ "player": {\r
+ "enabled": true,\r
+ "autoStart": false,\r
+ "segmentEditor": true\r
+ },\r
+ "source": {\r
+ "$type": "UNCSource",\r
+ "filter": "avi,wav,mxf",\r
+ "foldersAutoExpand": true,\r
+ "local": {\r
+ "address": "file://c:/_video"\r
+ }\r
+ },\r
+ "metadatas": [\r
+ {\r
+ "$type": "OctopusMetadata",\r
+ "disableStoryCheck": true,\r
+ "server": {\r
+ "address": "http://10.10.1.27/services/rest/octopus/",\r
+ "timeout": 1000\r
+ },\r
+ "projectSettings": {\r
+ "templateRoot": {\r
+ "address": "file://10.10.1.105/BRAAVOS/.MAESTRO",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ },\r
+ "templateName": "ALAPTIMELINE.ezp",\r
+ "target": {\r
+ "label": "Projekt létrehozása",\r
+ "processor": "UNCTargetProcessor",\r
+ "killDateDays": 14,\r
+ "outputFormat": "%ID%",\r
+ "subFolderFormat": "%IDROOT%-%TEXT%/PROJECT",\r
+ "disableFileVersioning": true,\r
+ "remote": {\r
+ "address": "file://c:/_video/PROJECTS",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ "disableOpenProject": false,\r
+ "disableOpenSourceFolder": false\r
+ }\r
+ },\r
+ {\r
+ "$type": "TrafficMetadata",\r
+ "server": {\r
+ "address": "Data Source=10.10.1.45;Initial Catalog=PA_Echo;Persist Security Info=True;",\r
+ "userName": "MAM",\r
+ "password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ",\r
+ "timeout": 1000\r
+ },\r
+ "projectSettings": {\r
+ "templateRoot": {\r
+ "address": "file://10.10.1.105/BRAAVOS/PROMO_NLE/!PROMO_MINTATIMELINE_190404/",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ },\r
+ "templateName": "PROMO_MINTATIMELINE_190404.ezp",\r
+ "target": {\r
+ "label": "Projekt létrehozása",\r
+ "processor": "UNCTargetProcessor",\r
+ "outputFormat": "%ID%",\r
+ "subFolderFormat": "%IDROOT%-%TEXT%/PROJECT",\r
+ "disableFileVersioning": true,\r
+ "killDateDays": 14,\r
+ "remote": {\r
+ "address": "file://c:/_video/PROJECTS",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ "disableOpenProject": false,\r
+ "disableOpenSourceFolder": false\r
+ }\r
+ },\r
+ {\r
+ "$type": "MediaCubeMetadata",\r
+ "server": {\r
+ "address": "http://10.10.1.27/services/rest/jobengine/",\r
+ "timeout": 1000\r
+ }\r
+ }\r
+ ],\r
+ "targets": [\r
+ {\r
+ "label": "TQC promo",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "tag": "Betöltés",\r
+ "killDateDays": 0,\r
+ "saveArchiveMetadata": false,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/TQC/PROMO",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "TQC reklám",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "tag": "Betöltés",\r
+ "killDateDays": 0,\r
+ "saveArchiveMetadata": false,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/TQC/REKLAM",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "Archiválás",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "tag": "Archiválás",\r
+ "saveArchiveMetadata": true,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/ARCHIVE",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ }\r
+ ]\r
+}\r
--- /dev/null
+{\r
+ "title": "Vezérlő",\r
+ "active": true,\r
+ "startInTray": false,\r
+ "enableCustomMetadataId": true,\r
+ "filter": "avi",\r
+ "player": {\r
+ },\r
+ "source": {\r
+ "$type": "NEXIOSource",\r
+ "local": {\r
+ "address": "ws://10.10.1.27/services/nexio"\r
+ },\r
+ "remote": {\r
+ "address": "ftp://10.10.1.55:2098",\r
+ "userName": "administrator",\r
+ "password": "+QtkeQdCTiOvZOgK/kUND4pO4/D+//r7ZIyluwMMdiqMEgO8iJErAG10ooWhPfiljQeXrdeyMzo7gWEZtcWpNSomGeDIbdMyQwtpqmMo1VEM3A27ZfzigY09YD46ECRh"\r
+ }\r
+ },\r
+ "metadatas": [\r
+ {\r
+ "$type": "OctopusMetadata",\r
+ "server": {\r
+ "address": "http://10.10.1.27/services/rest/octopus",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "$type": "TrafficMetadata",\r
+ "server": {\r
+ "address": "Data Source=10.10.1.45;Initial Catalog=PA_Echo;Persist Security Info=True;",\r
+ "userName": "MAM",\r
+ "password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "$type": "MediaCubeMetadata",\r
+ "server": {\r
+ "address": "http://10.10.1.27/services/rest/jobengine",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ }\r
+ ],\r
+ "targets": [\r
+ {\r
+ "label": "T1",\r
+ "processor": "FXPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "tag": "Archiválás",\r
+ "saveArchiveMetadata": true,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/TESZT",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "Jó Reggelt Archiválás",\r
+ "processor": "FXPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "sourceNexioAgency": "ARCHIVED_JOREGG",\r
+ "sourceNexioKillDateDays": 3, \r
+ "tag": "Archiválás",\r
+ "saveArchiveMetadata": true,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/TESZT",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "CLEAN Archiválás",\r
+ "processor": "FXPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "sourceNexioAgency": "ARCHIVED_CLEAN",\r
+ "sourceNexioKillDateDays": 8, \r
+ "tag": "Archiválás",\r
+ "saveArchiveMetadata": true,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.105/TESZT",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+\r
+ }\r
+ ]\r
+}\r
<Compile Include="MaestroForm.Source.cs">\r
<SubType>Form</SubType>\r
</Compile>\r
- <None Include="Configuration\configuration - Copy.json">\r
+ <None Include="Configuration\ACTIVE-configuration-promo.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
- <None Include="Configuration\configuration.json">\r
+ <None Include="Configuration\-configuration - Copy.json">\r
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+ </None>\r
+ <None Include="Configuration\-configuration.json">\r
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+ </None>\r
+ <None Include="Configuration\dani-teszt-vezerlo.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
<None Include="Configuration\global.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
- <None Include="Configuration\UJ-configuration-tqc-check.json">\r
+ <None Include="Configuration\-UJ-configuration-tqc-check.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
<None Include="Connected Services\packages.config" />\r
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS\r
- CAAAAk1TRnQBSQFMAgEBAgEAAYABAgGAAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+ CAAAAk1TRnQBSQFMAgEBAgEAAZABAgGQAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
// You can specify all the values or you can default the Build and Revision Numbers\r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.0.9.5")]\r
-[assembly: AssemblyFileVersion("2.0.9.5")]\r
+[assembly: AssemblyVersion("2.0.9.6")]\r
+[assembly: AssemblyFileVersion("2.0.9.6")]\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.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=false -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Dmediacube.auth.location="${workspace_loc}/-configuration/mediacube-auth.properties""/>\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.maestro.config="${workspace_loc}/-configuration/maestro.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 -Dmediacube.auth.location="${workspace_loc}/-configuration/mediacube-auth.properties""/>\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.auth0.java-jwt@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.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.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.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@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.jasper.glassfish@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.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,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.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?pde version="3.8"?><target name="JobEngine" sequenceNumber="289">\r
+<?pde version="3.8"?><target name="JobEngine" sequenceNumber="293">\r
<locations>\r
<location path="${eclipse_home}" type="Profile"/>\r
<location path="${workspace_loc}/-dependencies/target/repository/plugins" type="Directory"/>\r
<plugin id="org.junit"/>\r
<plugin id="org.mortbay.jasper.apache-jsp"/>\r
<plugin id="org.mortbay.jasper.apache-jsp.source"/>\r
+<plugin id="org.mybatis.mybatis"/>\r
<plugin id="org.objectweb.asm" version="5.0.1"/>\r
<plugin id="org.objectweb.asm.commons"/>\r
<plugin id="org.objectweb.asm.tree" version="5.0.1"/>\r
<id>default-cli</id>\r
<configuration>\r
<artifacts>\r
+ <artifact>\r
+ <id>org.mybatis:mybatis:3.5.2</id>\r
+ </artifact>\r
+ \r
<!-- <artifact> -->\r
<!-- <id>org.apache.solr:solr-sorlj:7.5.0</id> -->\r
<!-- </artifact> -->\r
<version>1.0.0</version>\r
<packaging>pom</packaging>\r
<modules>\r
+ <module>../user.mediacube.metadata</module>\r
<module>../user.jobengine.executors</module>\r
<module>../user.jobengine.osgi.commons</module>\r
<module>../user.jobengine.osgi.db</module>\r
import com.ibm.nosql.json.api.DB;\r
import com.ibm.nosql.json.api.DBCollection;\r
\r
+import user.commons.MediaCubeMarker;\r
import user.commons.nexio.api.Clip;\r
import user.commons.nexio.api.ClipEvent;\r
import user.commons.nexio.api.ClipEventListener;\r
}\r
\r
private boolean restartInProgress;\r
+ private Object lock = new Object();\r
\r
private INexioChangeListener nexioChangeListener;\r
private DB db;\r
jsClip.put(ID, evt.getClip().getId().get());\r
removeDeleted(jsClip);\r
} else if (evt.getEventType() == ClipEventType.LISTENER_RESTART_NEEDED) {\r
- shutdown();\r
- startup();\r
- logger.info("Nexio dispatcher restarted");\r
+ logger.info(new MediaCubeMarker(), "In progress {}", isRestartInProgress());\r
+ logger.info(new MediaCubeMarker(), "A kommunikácó a NEXIO eszközzel megszakadt. A szinkronizáció újraindítása szükséges.");\r
}\r
} catch (Exception e) {\r
logger.catching(e);\r
logger.info("Initial clip import completed");\r
Mediabase mediabase = NexioDispatcher.this.controller.getMediabase();\r
mediaListener = mediabase.createMediaListener(disabled, NexioDispatcher.this);\r
- setRestartInProgress(false);\r
\r
try {\r
nexioChangeListener.refreshClients();\r
}\r
\r
mediaListener.startListener();\r
+ setRestartInProgress(false);\r
+ logger.info(new MediaCubeMarker(), "Thread progress {}", isRestartInProgress());\r
\r
} catch (Exception e) {\r
logger.catching(e);\r
worker.start();\r
}\r
\r
- synchronized public boolean isRestartInProgress() {\r
- return restartInProgress;\r
+ public boolean isRestartInProgress() {\r
+ synchronized (lock) {\r
+ return restartInProgress;\r
+ }\r
}\r
\r
/*\r
}\r
\r
/*\r
- \r
+\r
int c = connection.read(buffer, 0, 2);\r
//2 bytes hosszan az idokozben hozzaadott id-k szamossaga\r
if (c < 2) {\r
throw new ProtocolException("c, 2, 2");\r
}\r
//MSB, LSB\r
- \r
+\r
return nofIds;\r
*/\r
return ret;\r
}\r
\r
@Override\r
- public void restart() {\r
- logger.info("Restart (already in progress {})", restartInProgress);\r
+ public int restart() {\r
+ if (disabled) {\r
+ logger.info("Nexio service is disabled");\r
+ return 1;\r
+ }\r
+ if (isRestartInProgress()) {\r
+ logger.info("Nexio service restart is in progress");\r
+ return 2;\r
+ }\r
+ setRestartInProgress(true);\r
shutdown();\r
+ startup();\r
+ return controller == null ? 3 : 0;\r
}\r
\r
private void saveClipIntoMongo(BasicDBObject clip) {\r
this.nexioChangeListener = nexioChangeListener;\r
}\r
\r
- synchronized public void setRestartInProgress(boolean restartInProgress) {\r
- this.restartInProgress = restartInProgress;\r
- logger.info("Restart in progress {}", isRestartInProgress());\r
- }\r
-\r
- public void shutdown() {\r
- if (disabled)\r
- return;\r
- if (isRestartInProgress()) {\r
- return;\r
+ public void setRestartInProgress(boolean restartInProgress) {\r
+ synchronized (lock) {\r
+ this.restartInProgress = restartInProgress;\r
}\r
+ }\r
\r
+ private void shutdown() {\r
logger.info("Shutting down Nexio service");\r
- setRestartInProgress(true);\r
if (mediaListener != null) {\r
mediaListener.disconnect();\r
mediaListener = null;\r
}\r
\r
public void startup() {\r
- if (disabled) {\r
- logger.info("Nexio service is disabled");\r
- return;\r
- }\r
-\r
logger.info("Starting up Nexio service");\r
- setRestartInProgress(true);\r
this.controller = new Controller(NEXIO_HOST);\r
try {\r
this.controller.connect();\r
} catch (Exception e) {\r
- logger.catching(e);\r
+ logger.error("Can not start NEXIO sync", e);\r
+ this.controller = null;\r
+ this.mediaListener = null;\r
setRestartInProgress(false);\r
return;\r
}\r
public interface ClipEventListener {\r
public void clipEventPerformed(ClipEvent evt);\r
\r
- void restart();\r
+ int restart();\r
}\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
\r
-import user.commons.nexio.server.protocol.Connection;\r
import user.commons.nexio.server.protocol.Id;\r
import user.commons.nexio.server.protocol.TCPConnection;\r
\r
//00 00 00 01 0x00 IDs in Added List BC=0x01, NN=0x00, DATA=none\r
//00 00 00 02 0x01 IDs in Deleted List BC=0x01, NN=0x01, DATA=none\r
static private final byte[] CHANGE_NOTIFICATION_REQ = { (byte) 0xC4, (byte) 0xA5, 0, 0, 0, 0x03 }; //C4A5 + MASK=ADD+DELETE\r
+ static private final byte[] PING = { (byte) 0x00, (byte) 0x11 }; //0011 -> 1211 = ok\r
+ static private final String PING_OK = "1211";\r
//10 01 response immediately\r
static private final byte[] ACK = { (byte) 0x10, (byte) 0x01 };\r
//CF A6 BC NN DATA NN=0 -> IDs are in added list, NN=1 -> IDs are in deleted list\r
private Mediabase mediaBase = null;\r
private int nexioPort = 557;\r
private String nexioHost = null;\r
- private Connection connection = null;\r
+ private TCPConnection connection = null;\r
private ArrayList<Integer> notificationList = new ArrayList<Integer>();\r
\r
public MediaListener(Mediabase _mediaBase, String _nexioHost, int _nexioPort) {\r
}\r
\r
private void createNexioConnection() throws Exception {\r
- this.connection = TCPConnection.getInstance(this.nexioHost, this.nexioPort);\r
+ this.connection = (TCPConnection) TCPConnection.getInstance(this.nexioHost, this.nexioPort);\r
logger.info("NEXIO MediaListener is connected to " + this.nexioHost + ":" + this.nexioPort);\r
}\r
\r
}\r
}\r
\r
- private void forceRestart() {\r
- logger.info("MediaListener stopping...");\r
- try {\r
- fireEvent(null, NN_LISTENER_RESTART);\r
- // if (this.connection != null)\r
- // this.connection.disconnect();\r
- } catch (Exception e) {\r
- logger.catching(e);\r
- }\r
- }\r
-\r
private void handleNotification(int notificationNumber) throws Exception {\r
//LIST_FIRST_ID_LIST\r
/*\r
\r
}\r
\r
+ public boolean isAlive() {\r
+ boolean result = false;\r
+\r
+ try {\r
+ writeBytes(PING);\r
+ byte[] buffer = readBytes(2);\r
+ result = PING_OK.equals(bytesToHex(buffer));\r
+ logger.info("Connection is alive: {}", result);\r
+ } catch (Exception e) {\r
+ logger.error(e);\r
+ }\r
+ return result;\r
+ }\r
+\r
private void listen() {\r
try {\r
+ byte[] buffer;\r
+\r
//SEND CHANGE NOTIFICATION REQ\r
writeBytes(CHANGE_NOTIFICATION_REQ);\r
+ buffer = readBytes(2);\r
\r
//ACK\r
- byte[] buffer = readBytes(2);\r
logger.info("NEXIO MediaListener listeninig");\r
\r
while (true) {\r
}\r
}\r
} catch (Exception e) {\r
- //logger.catching(e);\r
- logger.error(e.getMessage());\r
- forceRestart();\r
+ logger.catching(e);\r
+ notifyRestartNeeded();\r
+ }\r
+ }\r
+\r
+ public void notifyRestartNeeded() {\r
+ try {\r
+ fireEvent(null, NN_LISTENER_RESTART);\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
}\r
}\r
\r
public static void main(String[] args) throws UnknownHostException, IOException, ProtocolException, ClipNotFoundException {
ListMetabaseContents lmc = new ListMetabaseContents();
- /*
-
-
+ /*
+
+
//MASK REQ RESP_NOT_NUM
//00 00 00 01 0x00 IDs in Added List BC=0x01, NN=0x00, DATA=none
//00 00 00 02 0x01 IDs in Deleted List BC=0x01, NN=0x01, DATA=none
byte[] CHANGE_NOTIFICATION_REQ = { (byte) 0xC4, (byte)0xA5, 0,0,0,0x03}; //+C4A5 + MASK
-
+
//10 01 response immediately
byte[] ACK = { (byte) 0x10, (byte)0x01};
-
- //CF A6 BC NN DATA NN=0 -> IDs are in added list, NN=1 -> IDs are in deleted list
+
+ //CF A6 BC NN DATA NN=0 -> IDs are in added list, NN=1 -> IDs are in deleted list
byte[] CHANGE_NOTIFICATION_RESP = { (byte) 0xCF, (byte)0xA6};
-
- //List First ID List (C1 4C)
+
+ //List First ID List (C1 4C)
byte[] LIST_FIRST_ID_LIST_ADDED = { (byte) 0xC1, (byte)0x4C, (byte)0x02}; //2 added, 3 deleted
byte[] LIST_FIRST_ID_LIST_DELETED = { (byte) 0xC1, (byte)0x4C, (byte)0x03}; //2 added, 3 deleted
-
- //List First ID List (C0 4D)
+
+ //List First ID List (C0 4D)
byte[] LIST_NEXT_ID_LIST = { (byte) 0xC0, (byte)0x4D};
-
-
+
+
Connection connection = TCPConnection.getInstance(NEXIO_HOST, 557);
// connection.write(ID_LIST);
// connection.flush();
-
+
connection.write(CHANGE_NOTIFICATION_REQ);
connection.flush();
//ACK
byte[] buffer = new byte[2];
int c = connection.read(buffer, 0, 2);
-
-
+
+
while("1".equals("1")){
-
+
//CHANGE_NOTIFICATION_RESP (blocking read)
buffer = new byte[4];
c = connection.read(buffer,0,4); //CFA6 BC NN -> 0=added, 1=deleted
System.out.println("change notification resp: " + bytesToHex(buffer));
-
+
//ACK sending back
connection.write(ACK);
connection.flush();
-
+
//LIST_FIRST_ID_LIST
-
+
//0x01 Main ID Handle List D8 4C ID
//0x02 ID Handles Added List D8 4C ID
//0x03 ID Handles Deleted List D8 4C ID
//0x21 Main ID Handle/Extended ID List DF 4C BC ID XID *
//0x22 ID Handles/Extended IDs Added List DF 4C BC ID XID *
//0x23 ID Handles/Extended IDs Deleted List DF 4C BC ID XID *
-
+
if(buffer[3] == 0){
connection.write(LIST_FIRST_ID_LIST_ADDED);
System.out.println("NN ADDED");
System.out.println("NN DELETED");
}
connection.flush();
-
+
//READ FIRST ID
buffer = new byte[2];
c = connection.read(buffer, 0, 2);
if("D84C".equals(bytesToHex(buffer))){
System.out.println("reading first id...");
-
+
//added or deleted
buffer = new byte[8];
c = connection.read(buffer, 0, 8);
System.out.println("FIRST ID: " + new String(buffer));
-
+
//C0 4D List Next ID List
connection.write(LIST_NEXT_ID_LIST);
connection.flush();
-
+
buffer = new byte[2];
//D04D amikor elfogy
for(connection.read(buffer, 0, 2); bytesToHex(buffer).equals("D84D"); connection.read(buffer, 0, 2)){
-
+
buffer = new byte[8];
c = connection.read(buffer, 0, 8);
System.out.println("NEXT ID: " + new String(buffer));
-
+
connection.write(LIST_NEXT_ID_LIST);
connection.flush();
-
+
buffer = new byte[2];
}
//System.out.println("LIST_NEXT_ID_LIST RESP: " + bytesToHex(buffer));
System.out.println("Error in list first id list response: " + bytesToHex( buffer));
}
}
-
-
+
+
//int i = connection.read();
connection.disconnect();
*/
createNexioConnection();
this.testAddDelete();
- /*
+ /*
Controller controller = new Controller(nexioHost);
controller.connect();
System.out.println("Connected.");
int videoFormat = clip.getVideoFormat();
//Video Bitrate
int videoBitrate = clip.getVideoBitrate();
-
+
System.out.println(String.format("ID = '%s'\tXID = '%s'\tDuration = '%s'\tModified = '%s'\tVideoFormat = '%s'\tVideoBitrate = '%s'",
id, xid, duration, modifiedTimestamp.getTime(), videoFormat, videoBitrate));
}
-
+
//Clip clip = mediabase.getClip(new Xid("xdcam-pal-d10-imx30-8"));
//long duration2 = clip.getDuration();
//System.out.println(clip + " dur: "+ duration2);
}
@Override
- public void restart() {
- // TODO Auto-generated method stub
-
+ public int restart() {
+ return 0;
}
public void testAddDelete() {
buffer = readBytes(2);
if (LIST_FIRST_ID_LIST_FOUND.equals(bytesToHex(buffer))) {
/*
- * //extended id version 0x22, 0x23
+ * //extended id version 0x22, 0x23
//found 2, BC 1, ID 8, XID {BC-8}
buffer = readBytes(1);
int bc = buffer[0];
private void writeBytes(byte[] toWrite) throws Exception {
try {
//testcode calc checksum
- /*
+ /*
byte[] finalbytes = Arrays.copyOf(toWrite, toWrite.length + 1);
long chksum = 0;
for(int c=0; c<toWrite.length; c++){
public class TCPConnection implements Connection {
+ static public Connection getInstance(String host, int port) throws UnknownHostException, IOException {
+ return new TCPConnection(host, port);
+ }
+
protected InputStream input;
protected OutputStream output;
protected Socket socket = null;
private String host = null;
- private int port = 0;
-
- static public Connection getInstance(String host, int port) throws UnknownHostException, IOException {
- return new TCPConnection(host, port);
- }
+
+ private int port = 0;
public TCPConnection(String _host, int _port) throws UnknownHostException, IOException {
this.host = _host;
@Override
public void disconnect() throws IOException {
- if (socket != null) {
+ if (socket != null && !socket.isClosed()) {
socket.close();
}
}
output.flush();
}
+ @Override
+ public String getHost() {
+ return this.host;
+ }
+
+ @Override
+ public int getPort() {
+ return this.port;
+ }
+
+ @Override
+ public int read() throws IOException {
+ return input.read();
+ }
+
@Override
public int read(byte[] b) throws IOException {
Arrays.fill(b, (byte) 0);
return input.read(b, off, len);
}
- public int read() throws IOException {
- return input.read();
- }
-
-
@Override
public void write(byte[] b) throws IOException {
output.write(b);
public void write(int b) throws IOException {
output.write(b);
}
-
- public String getHost(){
- return this.host;
- }
-
- public int getPort(){
- return this.port;
- }
}
<welcome-file>index.zul</welcome-file>\r
<welcome-file>index.zhtml</welcome-file>\r
</welcome-file-list>\r
-\r
+<!-- Enable http to https redirect -->\r
+<!-- \r
<security-constraint>\r
<web-resource-collection>\r
<web-resource-name>Everything on the app</web-resource-name>\r
<transport-guarantee>CONFIDENTIAL</transport-guarantee>\r
</user-data-constraint>\r
</security-constraint>\r
+ -->\r
</web-app>\r
<menu sclass="whitemenu" label="Archívum" >\r
<menupopup>\r
<menuitem sclass="rozsda" label="Keresés" onClick="@command('navigate', action='/')" disabled="false" />\r
+ <menuitem sclass="rozsda" label="Maestro" onClick="@command('navigate', action='maestro')" disabled="false" />\r
<menuitem sclass="rozsda" label="Folyamatok" onClick="@command('navigate', action='jobs')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
<menuitem sclass="rozsda" label="Hiányzó anyagok" onClick="@command('navigate', action='missingmaterials')" disabled="${not sessionScope.userPrincipal.submitter or sessionScope.userPrincipal.anonymous}" />\r
</menupopup>\r
if (evt.getName().equals("onCancel"))\r
return;\r
try {\r
- dispatcher.restart();\r
+ int ret = dispatcher.restart();\r
+\r
+ switch (ret) {\r
+ case 0:\r
+ Messagebox.show("A NEXIO kapcsolat újraindítása sikeres volt.");\r
+ break;\r
+ case 1:\r
+ Messagebox.show("A NEXIO kapcsolat le van tiltva.");\r
+ break;\r
+ case 2:\r
+ Messagebox.show("A NEXIO kapcsolat újraindítás már folyamatban van.");\r
+ break;\r
+ case 3:\r
+ Messagebox.show("Nem lehet csatlakozni a NEXIO rendszerhez.");\r
+ break;\r
+ }\r
+\r
} catch (Exception e) {\r
Messagebox.show(e.getMessage());\r
}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+ <classpathentry kind="src" path="src"/>\r
+ <classpathentry kind="src" path="test"/>\r
+ <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>user.mediacube.metadata</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ <buildCommand>\r
+ <name>org.eclipse.jdt.core.javabuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.pde.ManifestBuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.pde.SchemaBuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>org.eclipse.pde.PluginNature</nature>\r
+ <nature>org.eclipse.jdt.core.javanature</nature>\r
+ </natures>\r
+</projectDescription>\r
--- /dev/null
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8\r
+org.eclipse.jdt.core.compiler.compliance=1.8\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.8\r
--- /dev/null
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Metadata
+Bundle-SymbolicName: user.mediacube.metadata
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: user.mediabube.metadata
+Require-Bundle: org.mybatis.mybatis;bundle-version="3.5.2",
+ org.junit;bundle-version="4.12.0",
+ com.microsoft.sqlserver.sqljdbc,
+ user.jobengine.osgi.commons
--- /dev/null
+source.. = src/\r
+output.. = bin/\r
+bin.includes = META-INF/,\\r
+ .\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
+ <parent>\r
+ <relativePath>../-modules</relativePath>\r
+ <groupId>user.jobengine</groupId>\r
+ <artifactId>MediaCube</artifactId>\r
+ <version>1.0.0</version>\r
+ </parent>\r
+ <modelVersion>4.0.0</modelVersion>\r
+ <artifactId>user.jobengine.metadata</artifactId>\r
+ <packaging>eclipse-plugin</packaging>\r
+ <version>1.0.0</version>\r
+\r
+</project>
\ No newline at end of file
--- /dev/null
+package user.mediabube.metadata;\r
+\r
+public interface IMetadata {\r
+\r
+}\r
--- /dev/null
+package user.mediabube.metadata;\r
+\r
+public interface IMetadataListOptions {\r
+\r
+}\r
--- /dev/null
+package user.mediabube.metadata;\r
+\r
+import java.util.List;\r
+\r
+public interface IMetadataProvider {\r
+\r
+ List<IMetadata> list(IMetadataListOptions options) throws Exception;\r
+}\r
--- /dev/null
+package user.mediabube.metadata;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import user.mediabube.metadata.planair.PlanAirMetadataProvider;\r
+\r
+public class MetadataProviderFactory {\r
+\r
+ private static Map<MetadataProviderType, IMetadataProvider> providers = new HashMap<>();\r
+\r
+ static {\r
+ try {\r
+ providers.put(MetadataProviderType.PLANAIR, new PlanAirMetadataProvider());\r
+ } catch (Exception e) {\r
+ }\r
+ }\r
+\r
+ public static IMetadataProvider getProvider(MetadataProviderType type) {\r
+ return providers.get(type);\r
+ }\r
+}\r
--- /dev/null
+package user.mediabube.metadata;\r
+\r
+public enum MetadataProviderType {\r
+ PLANAIR\r
+}\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.apache.ibatis.annotations.Options;\r
+import org.apache.ibatis.annotations.Param;\r
+import org.apache.ibatis.annotations.Result;\r
+import org.apache.ibatis.annotations.Results;\r
+import org.apache.ibatis.annotations.Select;\r
+import org.apache.ibatis.mapping.StatementType;\r
+\r
+public interface IPlanAirADMapper {\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(1002, #{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
+ // item.v_ProgTitle = ReadString(reader, ref f);\r
+ // item.v_EpTitle = ReadString(reader, ref f);\r
+ // item.v_Episode = ReadShort(reader, ref f);\r
+ // item.v_VariantNrSegments = ReadInt(reader, ref f);\r
+ // item.v_FirstBroadcastDate = ReadDateTime(reader, ref f);\r
+ // item.v_NextBroadcastDate = ReadDateTime(reader, ref f);\r
+\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_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") })\r
+ public List<PlanAirMaterial> getMaterials(@Param("options") Integer options, @Param("search") String search, @Param("broadcastDay") Date broadcastDay);\r
+}\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.apache.ibatis.annotations.Options;\r
+import org.apache.ibatis.annotations.Param;\r
+import org.apache.ibatis.annotations.Result;\r
+import org.apache.ibatis.annotations.Results;\r
+import org.apache.ibatis.annotations.Select;\r
+import org.apache.ibatis.mapping.StatementType;\r
+\r
+public interface IPlanAirMaterialMapper {\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(1002, #{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
+ // item.v_ProgTitle = ReadString(reader, ref f);\r
+ // item.v_EpTitle = ReadString(reader, ref f);\r
+ // item.v_Episode = ReadShort(reader, ref f);\r
+ // item.v_VariantNrSegments = ReadInt(reader, ref f);\r
+ // item.v_FirstBroadcastDate = ReadDateTime(reader, ref f);\r
+ // item.v_NextBroadcastDate = ReadDateTime(reader, ref f);\r
+\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_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") })\r
+ public List<PlanAirMaterial> getMaterials(@Param("options") Integer options, @Param("search") String search, @Param("broadcastDay") Date broadcastDay);\r
+}\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.apache.ibatis.annotations.Options;\r
+import org.apache.ibatis.annotations.Param;\r
+import org.apache.ibatis.annotations.Result;\r
+import org.apache.ibatis.annotations.Results;\r
+import org.apache.ibatis.annotations.Select;\r
+import org.apache.ibatis.mapping.StatementType;\r
+\r
+public interface IPlanAirPromoMapper {\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(1002, #{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
+ // item.v_ProgTitle = ReadString(reader, ref f);\r
+ // item.v_EpTitle = ReadString(reader, ref f);\r
+ // item.v_Episode = ReadShort(reader, ref f);\r
+ // item.v_VariantNrSegments = ReadInt(reader, ref f);\r
+ // item.v_FirstBroadcastDate = ReadDateTime(reader, ref f);\r
+ // item.v_NextBroadcastDate = ReadDateTime(reader, ref f);\r
+\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_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") })\r
+ public List<PlanAirMaterial> getMaterials(@Param("options") Integer options, @Param("search") String search, @Param("broadcastDay") Date broadcastDay);\r
+}\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+public enum MetadataType {\r
+ Material, Promo, AD\r
+}
\ No newline at end of file
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+\r
+import user.mediabube.metadata.IMetadata;\r
+\r
+public class PlanAirMaterial implements IMetadata {\r
+ private String episodeID;\r
+ private int variantID;\r
+ private String mediaID;\r
+ private String epTitle;\r
+ private String progTitle;\r
+ private short episode;\r
+ private boolean okForAir;\r
+ private int variantNrSegments;\r
+ private Date nextBroadcastDate;\r
+ private Date firstBroadcastDate;\r
+\r
+ public short getEpisode() {\r
+ return episode;\r
+ }\r
+\r
+ public String getEpisodeID() {\r
+ return episodeID;\r
+ }\r
+\r
+ public String getEpTitle() {\r
+ return epTitle;\r
+ }\r
+\r
+ public Date getFirstBroadcastDate() {\r
+ return firstBroadcastDate;\r
+ }\r
+\r
+ public String getMediaID() {\r
+ return mediaID;\r
+ }\r
+\r
+ public Date getNextBroadcastDate() {\r
+ return nextBroadcastDate;\r
+ }\r
+\r
+ public String getProgTitle() {\r
+ return progTitle;\r
+ }\r
+\r
+ public int getVariantID() {\r
+ return variantID;\r
+ }\r
+\r
+ public int getVariantNrSegments() {\r
+ return variantNrSegments;\r
+ }\r
+\r
+ public boolean isOkForAir() {\r
+ return okForAir;\r
+ }\r
+\r
+ public void setEpisode(short episode) {\r
+ this.episode = episode;\r
+ }\r
+\r
+ public void setEpisodeID(String episodeID) {\r
+ this.episodeID = episodeID;\r
+ }\r
+\r
+ public void setEpTitle(String epTitle) {\r
+ this.epTitle = epTitle;\r
+ }\r
+\r
+ public void setFirstBroadcastDate(Date firstBroadcastDate) {\r
+ this.firstBroadcastDate = firstBroadcastDate;\r
+ }\r
+\r
+ public void setMediaID(String mediaID) {\r
+ this.mediaID = mediaID;\r
+ }\r
+\r
+ public void setNextBroadcastDate(Date nextBroadcastDate) {\r
+ this.nextBroadcastDate = nextBroadcastDate;\r
+ }\r
+\r
+ public void setOkForAir(boolean okForAir) {\r
+ this.okForAir = okForAir;\r
+ }\r
+\r
+ public void setProgTitle(String progTitle) {\r
+ this.progTitle = progTitle;\r
+ }\r
+\r
+ public void setVariantID(int variantID) {\r
+ this.variantID = variantID;\r
+ }\r
+\r
+ public void setVariantNrSegments(int variantNrSegments) {\r
+ this.variantNrSegments = variantNrSegments;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+\r
+import user.mediabube.metadata.IMetadataListOptions;\r
+\r
+public class PlanAirMetadataListOptions implements IMetadataListOptions {\r
+ private Date broadcastDay;\r
+ private boolean problematic;\r
+ private String search;\r
+ private MetadataType type;\r
+\r
+ public Date getBroadcastDay() {\r
+ return broadcastDay;\r
+ }\r
+\r
+ public String getSearch() {\r
+ return search;\r
+ }\r
+\r
+ public MetadataType getType() {\r
+ return type;\r
+ }\r
+\r
+ public boolean isProblematic() {\r
+ return problematic;\r
+ }\r
+\r
+ public void setBroadcastDay(Date broadcastDay) {\r
+ this.broadcastDay = broadcastDay;\r
+ }\r
+\r
+ public void setProblematic(boolean problematic) {\r
+ this.problematic = problematic;\r
+ }\r
+\r
+ public void setSearch(String search) {\r
+ this.search = search;\r
+ }\r
+\r
+ public void setType(MetadataType type) {\r
+ this.type = type;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.List;\r
+\r
+import javax.sql.DataSource;\r
+\r
+import org.apache.ibatis.datasource.pooled.PooledDataSource;\r
+import org.apache.ibatis.mapping.Environment;\r
+import org.apache.ibatis.session.Configuration;\r
+import org.apache.ibatis.session.SqlSession;\r
+import org.apache.ibatis.session.SqlSessionFactory;\r
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;\r
+import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;\r
+\r
+import com.microsoft.sqlserver.jdbc.SQLServerDriver;\r
+\r
+import user.commons.ListUtils;\r
+import user.mediabube.metadata.IMetadata;\r
+import user.mediabube.metadata.IMetadataListOptions;\r
+import user.mediabube.metadata.IMetadataProvider;\r
+\r
+public class PlanAirMetadataProvider implements IMetadataProvider {\r
+ private static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";\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
+\r
+ private final SqlSessionFactory sqlSessionFactory;\r
+\r
+ public PlanAirMetadataProvider() throws Exception {\r
+ try {\r
+\r
+ Class<SQLServerDriver> forName = (Class<SQLServerDriver>) Class.forName(JDBC_DRIVER);\r
+ sqlSessionFactory = buildqlSessionFactory();\r
+ } catch (Exception e) {\r
+ throw e;\r
+ }\r
+ }\r
+\r
+ private SqlSessionFactory buildqlSessionFactory() {\r
+ DataSource dataSource = new PooledDataSource(JDBC_DRIVER, JDBC_URL, JDBC_USER, JDBC_PWD);\r
+ Environment environment = new Environment("Development", new JdbcTransactionFactory(), dataSource);\r
+ Configuration configuration = new Configuration(environment);\r
+ configuration.addMapper(IPlanAirMaterialMapper.class);\r
+ SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();\r
+ return builder.build(configuration);\r
+ }\r
+\r
+ @Override\r
+ public List<IMetadata> list(IMetadataListOptions options) throws Exception {\r
+ List<IMetadata> result = null;\r
+ try (SqlSession session = sqlSessionFactory.openSession()) {\r
+ PlanAirMetadataListOptions opt = (PlanAirMetadataListOptions) options;\r
+ int problematic = opt.isProblematic() ? 1 : 0;\r
+\r
+ switch (opt.getType()) {\r
+ case AD:\r
+ break;\r
+ case Material:\r
+ IPlanAirMaterialMapper mapper = session.getMapper(IPlanAirMaterialMapper.class);\r
+ result = ListUtils.cast(mapper.getMaterials(problematic, opt.getSearch(), opt.getBroadcastDay()));\r
+ break;\r
+ case Promo:\r
+ break;\r
+ default:\r
+ throw new Exception("Missing metadata type");\r
+ }\r
+ } catch (Exception e) {\r
+ throw e;\r
+ }\r
+ return result;\r
+ }\r
+\r
+}\r
--- /dev/null
+package user.mediabube.metadata;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Date;
+import java.util.List;
+
+import org.junit.Test;
+
+import user.mediabube.metadata.planair.PlanAirMetadataListOptions;
+
+public class PlanAirMetadataTest {
+
+ @Test
+ public void testConnection() throws Exception {
+ // Fixture
+ // Exercise
+ IMetadataProvider sut = MetadataProviderFactory.getProvider(MetadataProviderType.PLANAIR);
+
+ // Verify
+ assertNotNull(sut);
+ }
+
+ @Test
+ public void testListMaterialsByBroadcastDay() throws Exception {
+ // Fixture
+ IMetadataProvider sut = MetadataProviderFactory.getProvider(MetadataProviderType.PLANAIR);
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setBroadcastDay(new Date());
+ opt.setProblematic(false);
+
+ // Exercise
+ List<IMetadata> result = sut.list(opt);
+
+ // Verify
+ assertNotNull(result);
+ assertTrue(result.size() > 0);
+ }
+
+}