<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
+<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.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
-<stringAttribute key="workspace_bundles" value="user.commons.log4j2@default:false,user.jobengine.osgi.commons@default:true,user.jobengine.osgi.db@default:default,user.jobengine.osgi.server@default:default,user.jobengine.osgi.services@default:default,user.tsm.client@default:default"/>\r
+<stringAttribute key="workspace_bundles" value="user.commons.log4j2@default:false,user.jobengine.osgi.commons@default:true,user.jobengine.osgi.db@default:default,user.jobengine.osgi.server@default:default,user.jobengine.osgi.services@default:default,user.mediacube.metadata@default:default,user.tsm.client@default:default"/>\r
</launchConfiguration>\r
import user.jobengine.server.steps.RundownArchive;\r
import user.tsm.client.TSMBackupFileObject;\r
import user.tsm.client.TSMClient;\r
+import user.tsm.client.TSMException;\r
\r
public class Support {\r
\r
@Test\r
public void testTSM() throws Exception {\r
//System.setProperty("PATH", "c:\\_workspace\\USER\\MediaCube\\server\\user.tsm.client\\apilib\\;%PATH%");\r
- TSMClient client = null;\r
+ TSMClient c = null;\r
try {\r
- client = new TSMClient("JOBENGINE");\r
- client.connect("mediacube", "password");\r
+ final TSMClient client = new TSMClient("JOBENGINE");\r
+ c = client;\r
+ client.connect("mediacube", "password", "/");\r
+\r
+ String query = "select mf.houseid, archived from mediafile mf, media m where mf.mediaid=m.id and mf.storeid=1 and archived > '2019-07-01' and archived < '2019-08-01' order by archived asc";\r
+ manager.executeQuery(query, rs -> {\r
+\r
+ TSMBackupFileObject[] objects = null;\r
+ String houseId = null;\r
+ try {\r
+ houseId = rs.getString("houseid");\r
+ objects = client.queryActiveBackupObjects("/JOBENGINE", "/JOBENGINE", "/" + houseId);\r
+ } catch (TSMException e) {\r
+ e.printStackTrace();\r
+ }\r
+\r
+ if (objects != null && objects.length != 1) {\r
+ System.out.println(houseId + " count: " + objects.length + " archived: " + rs.getTimestamp("archived"));\r
+ } else\r
\r
- TSMBackupFileObject[] objects = client.queryActiveBackupObjects("/JOBENGINE", File.separator + "JOBENGINE/",\r
- File.separator + "0606_RAZZIA_CLEANFEED_MIX-20180531113140.MXF");\r
+ System.out.println(houseId);\r
+ return true;\r
+ }, null);\r
\r
- if (objects != null)\r
- System.out.println(objects.length);\r
} catch (Exception e) {\r
System.out.println(e.getMessage());\r
} finally {\r
- if (client != null)\r
- client.disconnect();\r
+ if (c != null)\r
+ c.disconnect();\r
}\r
\r
}\r
user.commons.selenio.wsclient,
user.commons.server.protocol,
user.commons.server.tcp,
- user.commons.strings
+ user.commons.strings,
+ user.mediacube.metadata.interfaces
Require-Bundle: org.apache.commons.lang;bundle-version="2.4.0",
user.tsm.client;bundle-version="1.2.0",
org.apache.commons.digester;bundle-version="3.2.0";visibility:=reexport,
}\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
private void shutdown() {\r
+ if (disabled)\r
+ return;\r
logger.info("Shutting down Nexio service");\r
if (mediaListener != null) {\r
mediaListener.disconnect();\r
}\r
\r
public void startup() {\r
+ if (disabled)\r
+ return;\r
logger.info("Starting up Nexio service");\r
this.controller = new Controller(NEXIO_HOST);\r
try {\r
--- /dev/null
+package user.mediacube.metadata.interfaces;\r
+\r
+public interface IMetadata {\r
+\r
+}\r
--- /dev/null
+package user.mediacube.metadata.interfaces;\r
+\r
+public interface IMetadataListOptions {\r
+\r
+}\r
-package user.mediabube.metadata;\r
+package user.mediacube.metadata.interfaces;\r
\r
import java.util.List;\r
\r
--- /dev/null
+package user.mediacube.metadata.interfaces;\r
+\r
+public enum MetadataProviderType {\r
+ PLANAIR\r
+}\r
<?xml version="1.0" encoding="UTF-8"?>\r
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="user.jobengine.server.ComponentBinder">\r
<implementation class="user.jobengine.osgi.server.ComponentBinder"/>\r
- <reference bind="bindService" cardinality="1..1" interface="user.commons.nexio.INexioAPI" name="INexioAPI" policy="static" unbind="unbindService"/>\r
+ <reference cardinality="1..1" interface="user.commons.nexio.INexioAPI" name="INexioAPI" policy="static" bind="bindNexioService" unbind="unbindNexioService"/>\r
+ <reference bind="bindMetadataProviderFactory" cardinality="1..1" interface="user.mediacube.metadata.interfaces.IMetadataProviderFactory" policy="static"/>\r
+\r
</scr:component>\r
import org.apache.logging.log4j.Logger;\r
\r
import user.commons.nexio.INexioAPI;\r
+import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
\r
public class ComponentBinder {\r
private static final String MEDIACUBE = "MEDIACUBE";\r
private static final Logger logger = LogManager.getLogger();\r
private static INexioAPI nexioAPI;\r
+ private static IMetadataProviderFactory metadataProviderFactory;\r
\r
public static INexioAPI getNexioAPI() {\r
if (nexioAPI == null)\r
return nexioAPI;\r
}\r
\r
- public synchronized void bindService(Object service) {\r
+ public synchronized void bindMetadataProviderFactory(Object service) {\r
+ if (service instanceof IMetadataProviderFactory) {\r
+ metadataProviderFactory = (IMetadataProviderFactory) service;\r
+ logger.info("IMetadataProviderFactory service binded");\r
+ }\r
+ }\r
+\r
+ public synchronized void bindNexioService(Object service) {\r
if (service instanceof INexioAPI) {\r
nexioAPI = (INexioAPI) service;\r
logger.info("INexioAPI service binded");\r
- return;\r
}\r
}\r
\r
- public synchronized void unbindService(Object service) {\r
- if (service instanceof INexioAPI) {\r
- nexioAPI = null;\r
- logger.info("INexioAPI service unbinded");\r
- return;\r
- }\r
+ public synchronized void unbindMetadataProviderFactory(Object service) {\r
+ metadataProviderFactory = null;\r
+ logger.info("IMetadataProviderFactory service unbinded");\r
+ }\r
+\r
+ public synchronized void unbindNexioService(Object service) {\r
+ nexioAPI = null;\r
+ logger.info("INexioAPI service unbinded");\r
}\r
+\r
}\r
<reference bind="bindService" cardinality="1..1" interface="user.commons.octopus.IOctopusAPI" name="IOctopusAPI" policy="static" unbind="unbindService"/>\r
<reference bind="bindService" cardinality="1..1" interface="user.commons.nexio.INexioAPI" name="INexioAPI" policy="static" unbind="unbindService"/>\r
<reference bind="bindService" cardinality="1..1" interface="user.jobengine.osgi.ws.nexio.NexioWSServlet" name="NexioWSServlet" policy="static" unbind="unbindService"/>\r
-\r
</scr:component>\r
}\r
\r
public synchronized void bindService(Object service) {\r
+ //logger.info("Ref {}", service.getClass());\r
+\r
if (service instanceof IJobEngine) {\r
jobengine = (IJobEngine) service;\r
logger.info("IJobEngine service binded");\r
<arguments>\r
</arguments>\r
</buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.pde.ds.core.builder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
</buildSpec>\r
<natures>\r
<nature>org.eclipse.pde.PluginNature</nature>\r
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Metadata
-Bundle-SymbolicName: user.mediacube.metadata
+Bundle-SymbolicName: user.mediacube.metadata;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: user.mediabube.metadata
+Service-Component: OSGI-INF/component.xml
+DynamicImport-Package: *
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
+ com.microsoft.sqlserver.sqljdbc
+Bundle-ActivationPolicy: lazy
+Import-Package: user.mediacube.metadata.interfaces
+Bundle-ClassPath: .
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">\r
+ <implementation class="user.mediacube.metadata.MetadataProviderFactory"/>\r
+ <service>\r
+ <provide interface="user.mediacube.metadata.interfaces.IMetadataProviderFactory"/>\r
+ </service>
+</scr:component>\r
source.. = src/\r
output.. = bin/\r
bin.includes = META-INF/,\\r
- .\r
+ .,\\r
+ OSGI-INF/\r
+++ /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.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
\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
+ 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
+ // 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
+ // item.v_OkForAirs = ReadString(reader, ref f);\r
\r
- @Select(value = MATERIAL_SQL)\r
+ @Select(value = AD_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
+ @Results(value = { @Result(property = "spotID", column = "t_SpotID"), @Result(property = "mediaID", column = "t_MediaID"),\r
+ @Result(property = "title", column = "v_Title"), @Result(property = "okForAirs", column = "v_OkForAirs") })\r
+ public List<PlanAirAD> getMaterials(@Param("options") Integer options, @Param("search") String search, @Param("broadcastDay") Date broadcastDay);\r
}\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
+ 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
// 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_VariantNrSegments = ReadInt(reader, ref f);\r
// item.v_FirstBroadcastDate = ReadDateTime(reader, ref f);\r
// item.v_NextBroadcastDate = ReadDateTime(reader, ref f);\r
+ // item.v_OkForAir = ReadBool(reader, ref f);\r
+ // item.v_SegNr = ReadInt(reader, ref f);\r
+ // item.v_SegID = ReadInt(reader, ref f);\r
\r
@Select(value = MATERIAL_SQL)\r
@Options(statementType = StatementType.CALLABLE)\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
+ @Result(property = "nextBroadcastDate", column = "v_NextBroadcastDate"), @Result(property = "okForAir", column = "v_OkForAir"),\r
+ @Result(property = "segNr", column = "v_SegNr"), @Result(property = "segID", column = "v_SegID") })\r
public List<PlanAirMaterial> getMaterials(@Param("options") Integer options, @Param("search") String search, @Param("broadcastDay") Date broadcastDay);\r
}\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
+\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
+ // 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
// 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
+ // item.t_PSStart = ReadDateTime(reader, ref f);\r
+ // item.v_OkForAirs = ReadString(reader, ref f);\r
\r
- @Select(value = MATERIAL_SQL)\r
+ @Select(value = PROMO_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
+ @Results(value = { @Result(property = "spotID", column = "t_SpotID"), @Result(property = "mediaID", column = "t_MediaID"),\r
+ @Result(property = "title", column = "v_Title"), @Result(property = "progTitle", column = "v_ProgTitle"),\r
+ @Result(property = "episode", column = "v_Episode"), @Result(property = "psStart", column = "t_PSStart"),\r
+ @Result(property = "okForAirs", column = "v_OkForAirs") })\r
+ public List<PlanAirPromo> 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 user.mediacube.metadata.interfaces.IMetadata;\r
+\r
+public class PlanAirAD implements IMetadata {\r
+ private String mediaID; //t_MediaID\r
+ private String title; //v_Title\r
+ private int spotID;//t_SpotID\r
+ private String okForAirs; //v_OkForAirs\r
+\r
+ public String getMediaID() {\r
+ return mediaID;\r
+ }\r
+\r
+ public int getSpotID() {\r
+ return spotID;\r
+ }\r
+\r
+ public String getTitle() {\r
+ return title;\r
+ }\r
+\r
+ public boolean isOkForAir() {\r
+ return "OK".equals(okForAirs);\r
+ }\r
+\r
+ public void setMediaID(String mediaID) {\r
+ this.mediaID = mediaID;\r
+ }\r
+\r
+ public void setSpotID(int spotID) {\r
+ this.spotID = spotID;\r
+ }\r
+\r
+ public void setTitle(String title) {\r
+ this.title = title;\r
+ }\r
+\r
+}
\ No newline at end of file
\r
import java.util.Date;\r
\r
-import user.mediabube.metadata.IMetadata;\r
+import user.mediacube.metadata.interfaces.IMetadata;\r
\r
public class PlanAirMaterial implements IMetadata {\r
private String episodeID;\r
private int variantNrSegments;\r
private Date nextBroadcastDate;\r
private Date firstBroadcastDate;\r
+ private int segNr;\r
+ private int segID;\r
\r
public short getEpisode() {\r
return episode;\r
return progTitle;\r
}\r
\r
+ public int getSegID() {\r
+ return segID;\r
+ }\r
+\r
+ public int getSegNr() {\r
+ return segNr;\r
+ }\r
+\r
public int getVariantID() {\r
return variantID;\r
}\r
this.progTitle = progTitle;\r
}\r
\r
+ public void setSegID(int segID) {\r
+ this.segID = segID;\r
+ }\r
+\r
+ public void setSegNr(int segNr) {\r
+ this.segNr = segNr;\r
+ }\r
+\r
public void setVariantID(int variantID) {\r
this.variantID = variantID;\r
}\r
\r
import java.util.Date;\r
\r
-import user.mediabube.metadata.IMetadataListOptions;\r
+import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
\r
public class PlanAirMetadataListOptions implements IMetadataListOptions {\r
private Date broadcastDay;\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
+import user.mediacube.metadata.interfaces.IMetadata;\r
+import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
+import user.mediacube.metadata.interfaces.IMetadataProvider;\r
\r
public class PlanAirMetadataProvider implements IMetadataProvider {\r
private static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";\r
Environment environment = new Environment("Development", new JdbcTransactionFactory(), dataSource);\r
Configuration configuration = new Configuration(environment);\r
configuration.addMapper(IPlanAirMaterialMapper.class);\r
+ configuration.addMapper(IPlanAirPromoMapper.class);\r
+ configuration.addMapper(IPlanAirADMapper.class);\r
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();\r
return builder.build(configuration);\r
}\r
\r
switch (opt.getType()) {\r
case AD:\r
+ IPlanAirADMapper adMapper = session.getMapper(IPlanAirADMapper.class);\r
+ result = (List<IMetadata>) (List<?>) adMapper.getMaterials(problematic, opt.getSearch(), opt.getBroadcastDay());\r
break;\r
case Material:\r
- IPlanAirMaterialMapper mapper = session.getMapper(IPlanAirMaterialMapper.class);\r
- result = ListUtils.cast(mapper.getMaterials(problematic, opt.getSearch(), opt.getBroadcastDay()));\r
+ IPlanAirMaterialMapper materialMapper = session.getMapper(IPlanAirMaterialMapper.class);\r
+ result = (List<IMetadata>) (List<?>) materialMapper.getMaterials(problematic, opt.getSearch(), opt.getBroadcastDay());\r
break;\r
case Promo:\r
+ IPlanAirPromoMapper promoMapper = session.getMapper(IPlanAirPromoMapper.class);\r
+ result = (List<IMetadata>) (List<?>) promoMapper.getMaterials(problematic, opt.getSearch(), opt.getBroadcastDay());\r
break;\r
default:\r
throw new Exception("Missing metadata type");\r
--- /dev/null
+package user.mediabube.metadata.planair;\r
+\r
+import java.util.Date;\r
+\r
+import user.mediacube.metadata.interfaces.IMetadata;\r
+\r
+public class PlanAirPromo implements IMetadata {\r
+ private String mediaID; //t_MediaID\r
+ private String title; //v_Title\r
+ private String progTitle;//v_ProgTitle\r
+ private short episode;//v_Episode\r
+ private Date psStart;//t_PSStart\r
+ private int spotID;//t_SpotID\r
+ private String okForAirs; //v_OkForAirs\r
+\r
+ public short getEpisode() {\r
+ return episode;\r
+ }\r
+\r
+ public String getMediaID() {\r
+ return mediaID;\r
+ }\r
+\r
+ public String getOkForAirs() {\r
+ return okForAirs;\r
+ }\r
+\r
+ public String getProgTitle() {\r
+ return progTitle;\r
+ }\r
+\r
+ public Date getPsStart() {\r
+ return psStart;\r
+ }\r
+\r
+ public int getSpotID() {\r
+ return spotID;\r
+ }\r
+\r
+ public String getTitle() {\r
+ return title;\r
+ }\r
+\r
+ public boolean isOkForAir() {\r
+ return "OK".equals(okForAirs);\r
+ }\r
+\r
+ public void setEpisode(short episode) {\r
+ this.episode = episode;\r
+ }\r
+\r
+ public void setMediaID(String mediaID) {\r
+ this.mediaID = mediaID;\r
+ }\r
+\r
+ public void setOkForAirs(String okForAirs) {\r
+ this.okForAirs = okForAirs;\r
+ }\r
+\r
+ public void setProgTitle(String progTitle) {\r
+ this.progTitle = progTitle;\r
+ }\r
+\r
+ public void setPsStart(Date psStart) {\r
+ this.psStart = psStart;\r
+ }\r
+\r
+ public void setSpotID(int spotID) {\r
+ this.spotID = spotID;\r
+ }\r
+\r
+ public void setTitle(String title) {\r
+ this.title = title;\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package user.mediacube.metadata;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import user.mediabube.metadata.planair.PlanAirMetadataProvider;\r
+import user.mediacube.metadata.interfaces.IMetadataProvider;\r
+import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
+import user.mediacube.metadata.interfaces.MetadataProviderType;\r
+\r
+public class MetadataProviderFactory implements IMetadataProviderFactory {\r
+\r
+ private Map<MetadataProviderType, IMetadataProvider> providers = new HashMap<>();\r
+\r
+ public MetadataProviderFactory() {\r
+ try {\r
+ providers.put(MetadataProviderType.PLANAIR, new PlanAirMetadataProvider());\r
+ } catch (Exception e) {\r
+ }\r
+ }\r
+\r
+ public IMetadataProvider getProvider(MetadataProviderType type) {\r
+ return providers.get(type);\r
+ }\r
+}\r
import org.junit.Test;
+import user.mediabube.metadata.planair.MetadataType;
import user.mediabube.metadata.planair.PlanAirMetadataListOptions;
+import user.mediacube.metadata.MetadataProviderFactory;
+import user.mediacube.metadata.interfaces.IMetadata;
+import user.mediacube.metadata.interfaces.IMetadataProvider;
+import user.mediacube.metadata.interfaces.IMetadataProviderFactory;
+import user.mediacube.metadata.interfaces.MetadataProviderType;
public class PlanAirMetadataTest {
+ private IMetadataProviderFactory factory = new MetadataProviderFactory();
+
+ public void test(PlanAirMetadataListOptions opt) throws Exception {
+ // Fixture
+ IMetadataProvider sut = factory.getProvider(MetadataProviderType.PLANAIR);
+
+ // Exercise
+ List<IMetadata> result = sut.list(opt);
+
+ // Verify
+ assertNotNull(result);
+ assertTrue(result.size() > 0);
+ }
@Test
- public void testConnection() throws Exception {
+ public void testFactoryConnection() throws Exception {
// Fixture
// Exercise
- IMetadataProvider sut = MetadataProviderFactory.getProvider(MetadataProviderType.PLANAIR);
+ IMetadataProvider sut = factory.getProvider(MetadataProviderType.PLANAIR);
// Verify
assertNotNull(sut);
}
+ @Test
+ public void testListADByBroadcastDay() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setBroadcastDay(new Date());
+ opt.setProblematic(false);
+ opt.setType(MetadataType.AD);
+ test(opt);
+ }
+
+ @Test
+ public void testListADByProblematic() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setProblematic(true);
+ opt.setType(MetadataType.AD);
+ test(opt);
+ }
+
+ @Test
+ public void testListADBySearch() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setType(MetadataType.AD);
+ opt.setSearch("R000007A");
+ test(opt);
+ }
+
@Test
public void testListMaterialsByBroadcastDay() throws Exception {
// Fixture
- IMetadataProvider sut = MetadataProviderFactory.getProvider(MetadataProviderType.PLANAIR);
PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
opt.setBroadcastDay(new Date());
opt.setProblematic(false);
+ opt.setType(MetadataType.Material);
+ test(opt);
+ }
- // Exercise
- List<IMetadata> result = sut.list(opt);
+ @Test
+ public void testListMaterialsByProblematic() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setProblematic(true);
+ opt.setType(MetadataType.Material);
+ test(opt);
+ }
- // Verify
- assertNotNull(result);
- assertTrue(result.size() > 0);
+ @Test
+ public void testListMaterialsBySearch() throws Exception {
+ // Fixture
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setType(MetadataType.Material);
+ opt.setSearch("105428");
+ test(opt);
+ }
+
+ @Test
+ public void testListPromoByBroadcastDay() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setBroadcastDay(new Date());
+ opt.setProblematic(false);
+ opt.setType(MetadataType.Promo);
+ test(opt);
+ }
+
+ @Test
+ public void testListPromoByProblematic() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setProblematic(true);
+ opt.setType(MetadataType.Promo);
+ test(opt);
}
+ @Test
+ public void testListPromoBySearch() throws Exception {
+ PlanAirMetadataListOptions opt = new PlanAirMetadataListOptions();
+ opt.setType(MetadataType.Promo);
+ opt.setSearch("P000020A");
+ test(opt);
+ }
}