git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 2 Oct 2019 14:13:06 +0000 (14:13 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 2 Oct 2019 14:13:06 +0000 (14:13 +0000)
13 files changed:
server/-configuration/run-mediacube-server-user.launch
server/hu.user.mediacube.indexer/src/main/java/hu/user/mediacube/indexer/IndexerService.java
server/hu.user.mediacube.indexer/src/main/java/hu/user/mediacube/indexer/RESTController.java
server/hu.user.mediacube.indexer/src/main/resources/application.properties
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java
server/user.jobengine.osgi.db/META-INF/MANIFEST.MF
server/user.jobengine.osgi.db/src/user/jobengine/db/DynamicAttributes.java
server/user.jobengine.osgi.db/src/user/jobengine/db/DynamicAttributesDAO.java
server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java
server/user.jobengine.osgi.db/src/user/jobengine/db/LuceneMediaFinder.java
server/user.jobengine.osgi.db/src/user/jobengine/db/Metadata.java
server/user.jobengine.osgi.server/META-INF/MANIFEST.MF
server/user.jobengine.osgi.server/test/user/jobengine/server/IT/SupportTest.java [new file with mode: 0644]

index 5192ce74db8bd6959be905ace1ab49f835bff751..72ca10ddbdd1f2bdcbf5b42157bceb67103f4c98 100644 (file)
@@ -19,7 +19,7 @@
 <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&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-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&#13;&#10;-Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty&#13;&#10;-Djava.io.tmpdir=c:\temp\jetty&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB;&#13;&#10;-Djobengine.nexio.db.user=sa&#13;&#10;-Djobengine.nexio.db.password=resolve&#13;&#10;-Djobengine.planair.db.url=jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo;&#13;&#10;-Djobengine.planair.db.user=MAM&#13;&#10;-Djobengine.planair.db.password=Echotv.hu&#13;&#10;-Dnexio.host=192.168.0.12&#13;&#10;-Djobengine.nexio.name=testnexioclips&#13;&#10;-Dnexio.useMOSGateway=false&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=rundowns181026&#13;&#10;-Djobengine.octopus.storyfolders.name=storyfolders181026&#13;&#10;-Djobengine.octopus.stories.name=stories181026&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.json&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.disable=true"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-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&#13;&#10;-Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty&#13;&#10;-Djava.io.tmpdir=c:\temp\jetty&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB;&#13;&#10;-Djobengine.nexio.db.user=sa&#13;&#10;-Djobengine.nexio.db.password=resolve&#13;&#10;-Djobengine.planair.db.url=jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo;&#13;&#10;-Djobengine.planair.db.user=MAM&#13;&#10;-Djobengine.planair.db.password=Echotv.hu&#13;&#10;-Dnexio.host=192.168.0.12&#13;&#10;-Djobengine.nexio.name=testnexioclips&#13;&#10;-Dnexio.useMOSGateway=false&#13;&#10;-Dnexio.disable=true&#13;&#10;-Djobengine.octopus.rundowns.name=rundowns181026&#13;&#10;-Djobengine.octopus.storyfolders.name=storyfolders181026&#13;&#10;-Djobengine.octopus.stories.name=stories181026&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.json&quot;&#13;&#10;-Djobengine.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.disable=true&#13;&#10;-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.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.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
index 6fdd95186c1208c95de6da3e27bc3b618b8a6d3b..23e2b0639d222b6f366db16f8a0e2495b5ffa7de 100644 (file)
@@ -44,30 +44,31 @@ public class IndexerService implements Runnable {
                List<IndexerDescription> indexerDescriptions = mapper.selectAll();\r
                int i = 0;\r
                LogFactory.useLog4J2Logging();\r
+\r
+               int logStep = indexerDescriptions.size() / 10;\r
+\r
                for (IndexerDescription indexerDescription : indexerDescriptions) {\r
 \r
                        String description = mapper.selectDescription(indexerDescription);\r
                        indexerDescription.setDescription(description);\r
                        //logger.info("{}", indexerDescription);\r
-                       boolean processed = ++i % 10 == 0;\r
+                       boolean putLog = ++i % logStep == 0;\r
+                       boolean lastRow = i == indexerDescriptions.size();\r
                        try {\r
                                indexer.index(indexerDescription);\r
-                               if (i == indexerDescriptions.size())\r
+\r
+                               if (putLog || lastRow)\r
+                                       logger.info("Processed {} / {}", i, indexerDescriptions.size());\r
+\r
+                               if (lastRow) {\r
                                        indexer.commit();\r
+                                       logger.error("Index committed");\r
+                               }\r
                        } catch (IOException e) {\r
                                logger.error("Can not create index, caused by {} : {}", e.getClass().getSimpleName(), e.getMessage(), e);\r
                                break;\r
                        }\r
 \r
-                       if (processed) {\r
-                               logger.info("Processed {} / {}", i, indexerDescriptions.size());\r
-                       }\r
-\r
-               }\r
-               try {\r
-                       indexer.commit();\r
-               } catch (IOException e) {\r
-                       logger.error("Commit error", e);\r
                }\r
        }\r
 \r
index d2bf166295ebec3594fff9d5cf1e0c8b3dc053c9..1bddf96c2bd1029f15e839e55f16c1c5e3014e95 100644 (file)
@@ -16,7 +16,7 @@ import hu.user.mediacube.indexer.db.IndexerDescription;
 import hu.user.mediacube.indexer.lucene.LuceneIndexer;\r
 \r
 @RestController\r
-@RequestMapping("rest")\r
+@RequestMapping("indexer")\r
 public class RESTController {\r
 \r
        private static Logger logger = LoggerFactory.getLogger(RESTController.class);\r
index 9b0951ed1632e01b2b502d0ab80720ac5b52ccdc..ccc948e914762161c36439adf8728a75def98604 100644 (file)
@@ -1,3 +1,4 @@
+server.port=8081\r
 spring.main.banner-mode=off\r
 spring.output.ansi.enabled=always\r
 spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver\r
index 71ad952e1559c5067a2c31351dbf8d24eed04061..b00e23e9fa4bab08cb37c600e598b9060f767456 100644 (file)
@@ -93,6 +93,7 @@ public class TSMBackupStep extends JobStep {
                                        logger.error(marker,\r
                                                        "Az '{}' állomány .catched jelző állománya nem törölhető. Az újabb archiválási kísérlethez annak kézi eltávolítása szükséges!",\r
                                                        sourceMediaFile.getName());\r
+                               mediaCubeMedia.remove();\r
                        } else {\r
                                saveMetadata(mediaCubeMedia, sourceMediaFile, existingMediaId);\r
                                logger.info(marker, "Az '{}' archiválása sikeres.", sourceFileName);\r
index 11d166a02a8c489d0e1b438c6a98b801b0b6879e..b982f35a6ca6bdd8baa1e002eec1f90c32c6bd7a 100644 (file)
@@ -14,6 +14,9 @@ Require-Bundle: user.jobengine.osgi.commons;bundle-version="1.0.0",
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
- org.apache.logging.log4j;version="2.8.2"
+ javax.ws.rs.client,
+ javax.ws.rs.core,
+ org.apache.logging.log4j;version="2.8.2",
+ org.jboss.resteasy.client.jaxrs
 Export-Package: user.jobengine.db
 
index f8d1b2be67a8ba517a8660d03515b3e1dc13a2af..bf17346b15f225143fc46adb410f5651180dfd23 100644 (file)
@@ -54,7 +54,7 @@ public class DynamicAttributes extends JSONBase implements Serializable {
        private void initalize() {\r
                ItemManager.getInstance().traceIn();\r
                if (attributes == null) {\r
-                       if (getItemType() != null) {\r
+                       if (getItemType() != null && !getItemType().getIsStatic()) {\r
                                attributes = new HashMap<String, Object>();\r
                                List<Metadata> metadatas = getItemType().getMetadatas();\r
                                if (metadatas != null) {\r
index 9e76a5ed0eb45b02740c678a1f04fe0ce26d5559..cb5e2b923c173228c18df91576df5b65122704c5 100644 (file)
@@ -13,8 +13,6 @@ import user.commons.BaseType;
 import user.commons.IEntityBase;\r
 \r
 public class DynamicAttributesDAO extends EntityBaseDAO {\r
-       private Converter converter;\r
-\r
        public class BooleanConverter implements IValueConverter {\r
 \r
                @Override\r
@@ -28,6 +26,8 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                }\r
        }\r
 \r
+       private Converter converter;\r
+\r
        public DynamicAttributesDAO(ItemManager manager) {\r
                super(manager);\r
                HashMap<BaseType, IValueConverter> converters = new HashMap<BaseType, IValueConverter>();\r
@@ -37,25 +37,6 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
 \r
        }\r
 \r
-       void addAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata, List<Domain> domains, boolean modify) throws SQLException {\r
-               DomainIndexDAO indexdao = (DomainIndexDAO) manager.getBaseDAO(DomainIndex.class);\r
-\r
-               if (domains != null && domains.size() > 0) {\r
-                       logger.debug("Adding domain attribute " + metadata.getMetadataElement().getName() + " , value count: " + domains.size());\r
-                       long domainCategoryId = metadata.getMetadataElement().getDomainCategoryId();\r
-                       DomainCategory dc = (DomainCategory) manager.get(DomainCategory.class, domainCategoryId);\r
-                       dc.setDomains(domains);\r
-                       DomainDAO dao = (DomainDAO) manager.getBaseDAO(Domain.class);\r
-                       dao.addMissing(context, dc);\r
-                       if (modify)\r
-                               indexdao.removeAll(context, entity, metadata);\r
-                       indexdao.addAll(context, entity, metadata, dc);\r
-               } else {\r
-                       if (modify)\r
-                               indexdao.removeAll(context, entity, metadata);\r
-               }\r
-       }\r
-\r
        @Override\r
        public void add(DefaultContext context, IEntityBase entity) {\r
                manager.traceIn();\r
@@ -63,7 +44,7 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                da.checkParameter("ID", da.getId(), false);\r
                Map<String, Object> attributes = da.getAttributes();\r
                ItemType itemType = (ItemType) manager.get(ItemType.class, da.getItemTypeId());\r
-               if (itemType != null) {\r
+               if (itemType != null && !itemType.getIsStatic()) {\r
                        List<Metadata> metadatas = itemType.getMetadatas();\r
                        if (metadatas != null) {\r
                                for (Metadata metadata : metadatas) {\r
@@ -118,15 +99,23 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                manager.traceOut();\r
        }\r
 \r
-       @SuppressWarnings("unchecked")\r
-       Domains getAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata) throws SQLException {\r
-               logger.debug("Reading domain attribute " + metadata.getMetadataElement().getName());\r
-               DomainDAO dao = (DomainDAO) manager.getBaseDAO(Domain.class);\r
-               List<Domain> domains = (List<Domain>) (List<?>) dao.getAll(context, entity, metadata);\r
-               Domains result = null;\r
-               if (domains != null)\r
-                       result = new Domains(domains);\r
-               return result;\r
+       void addAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata, List<Domain> domains, boolean modify) throws SQLException {\r
+               DomainIndexDAO indexdao = (DomainIndexDAO) manager.getBaseDAO(DomainIndex.class);\r
+\r
+               if (domains != null && domains.size() > 0) {\r
+                       logger.debug("Adding domain attribute " + metadata.getMetadataElement().getName() + " , value count: " + domains.size());\r
+                       long domainCategoryId = metadata.getMetadataElement().getDomainCategoryId();\r
+                       DomainCategory dc = (DomainCategory) manager.get(DomainCategory.class, domainCategoryId);\r
+                       dc.setDomains(domains);\r
+                       DomainDAO dao = (DomainDAO) manager.getBaseDAO(Domain.class);\r
+                       dao.addMissing(context, dc);\r
+                       if (modify)\r
+                               indexdao.removeAll(context, entity, metadata);\r
+                       indexdao.addAll(context, entity, metadata, dc);\r
+               } else {\r
+                       if (modify)\r
+                               indexdao.removeAll(context, entity, metadata);\r
+               }\r
        }\r
 \r
        void get(IEntityBase entity) {\r
@@ -184,6 +173,17 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                manager.traceOut();\r
        }\r
 \r
+       @SuppressWarnings("unchecked")\r
+       Domains getAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata) throws SQLException {\r
+               logger.debug("Reading domain attribute " + metadata.getMetadataElement().getName());\r
+               DomainDAO dao = (DomainDAO) manager.getBaseDAO(Domain.class);\r
+               List<Domain> domains = (List<Domain>) (List<?>) dao.getAll(context, entity, metadata);\r
+               Domains result = null;\r
+               if (domains != null)\r
+                       result = new Domains(domains);\r
+               return result;\r
+       }\r
+\r
        @Override\r
        public void modify(DefaultContext context, IEntityBase entity) {\r
                manager.traceIn();\r
@@ -250,12 +250,6 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                manager.traceOut();\r
        }\r
 \r
-       void removeAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata) throws SQLException {\r
-               logger.debug("Removing domain attribute " + metadata.getMetadataElement().getName());\r
-               DomainIndexDAO indexdao = (DomainIndexDAO) manager.getBaseDAO(DomainIndex.class);\r
-               indexdao.removeAll(context, entity, metadata);\r
-       }\r
-\r
        @Override\r
        public void remove(DefaultContext context, IEntityBase entity) {\r
                manager.traceIn();\r
@@ -291,4 +285,10 @@ public class DynamicAttributesDAO extends EntityBaseDAO {
                }\r
                manager.traceOut();\r
        }\r
+\r
+       void removeAsDomain(DefaultContext context, IEntityBase entity, Metadata metadata) throws SQLException {\r
+               logger.debug("Removing domain attribute " + metadata.getMetadataElement().getName());\r
+               DomainIndexDAO indexdao = (DomainIndexDAO) manager.getBaseDAO(DomainIndex.class);\r
+               indexdao.removeAll(context, entity, metadata);\r
+       }\r
 }\r
index 320029c26eb511a2b4d443ceef12625c2cb22815..9dcdcaf4838407b3029eb9a8eaaac34955c15905 100644 (file)
@@ -47,6 +47,7 @@ import user.jobengine.db.ItemManagerData.UserRight;
  * JobEngine adatbázis modell kezelő API.\r
  */\r
 public class ItemManager extends MemoryCache implements IItemManager {\r
+       private static final String JOBENGINE_MEDIAFINDER_EXTERNAL = "jobengine.mediafinder.external";\r
        private static final Logger logger = LogManager.getLogger();\r
        public static String DBURL = "jobengine.db.url";\r
        public static String DBUSERNAME = "jobengine.db.user";\r
@@ -70,8 +71,7 @@ public class ItemManager extends MemoryCache implements IItemManager {
        String dbPassword = null;\r
 \r
        private SignalServer signalServer;\r
-       private MediaFinder finder;\r
-       private LuceneMediaFinder luceneFinder;\r
+       private IMediaFinder finder;\r
 \r
        public ItemManager() {\r
                initializeItemManager(signalServer);\r
@@ -81,10 +81,17 @@ public class ItemManager extends MemoryCache implements IItemManager {
                // System.getProperty("jobengine.mediafinder.external") == true\r
                // System.getProperty("jobengine.mediafinder.external.url")\r
 \r
-               if (System.getProperty("jobengine.mediafinder.external") == "false") {\r
-                       finder = new MediaFinder(this);\r
+               boolean useLucene = false;\r
+               try {\r
+                       useLucene = Boolean.parseBoolean(System.getProperty(JOBENGINE_MEDIAFINDER_EXTERNAL));\r
+               } catch (Exception e) {\r
+                       logger.info("Configuration property {} mising", JOBENGINE_MEDIAFINDER_EXTERNAL);\r
+               }\r
+\r
+               if (useLucene) {\r
+                       finder = new LuceneMediaFinder();\r
                } else {\r
-                       luceneFinder = new LuceneMediaFinder();\r
+                       finder = new MediaFinder(this);\r
                }\r
        }\r
 \r
@@ -993,12 +1000,7 @@ public class ItemManager extends MemoryCache implements IItemManager {
        public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
                        int toResult) {\r
                traceIn();\r
-               SearchResult<ArchivedMedia> result = null;\r
-               if (System.getProperty("jobengine.mediafinder.external") == "false") {\r
-                       result = finder.search(criteria, searchFilters, orderBy, orderAscending, fromResult, toResult);\r
-               } else {\r
-                       result = luceneFinder.search(criteria, searchFilters, orderBy, orderAscending, fromResult, toResult);\r
-               }\r
+               SearchResult<ArchivedMedia> result = finder.search(criteria, searchFilters, orderBy, orderAscending, fromResult, toResult);\r
                traceOut();\r
                return result;\r
        }\r
index 5b76f96b86f98aedd68b21c1afd14a80ae3c3d08..5ed90c955b32e8c9a9e0a4eba58f392988aa6d68 100644 (file)
@@ -2,19 +2,26 @@ package user.jobengine.db;
 \r
 import java.util.List;\r
 \r
-import org.jboss.resteasy.client.jaxrs.BasicAuthentication;\r
+import javax.ws.rs.client.WebTarget;\r
+import javax.ws.rs.core.Response;\r
+\r
 import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r
 import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r
 \r
 public class LuceneMediaFinder implements IMediaFinder {\r
 \r
+       private WebTarget webTarget;\r
+       private String apiAddress = "http://localhost:8081/indexer";\r
+       private String apiPath = "/search/*.*/0/10/1/0";\r
+\r
        @Override\r
        public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
                        int toResult) {\r
                // TODO Auto-generated method stub\r
                ResteasyClient client = new ResteasyClientBuilder().build();\r
-               webTarget = client.target(apiAddress).register(new BasicAuthentication(apiUser, apiPwd));\r
-\r
+               webTarget = client.target(apiAddress);\r
+               WebTarget target = webTarget.path(apiPath);\r
+               Response response = target.request().get();\r
                return null;\r
        }\r
 \r
index 67b1b1d4ce485d8498bdf051abca6ea3ef6a1778..86b5251631a5e73384cd7ead55746fcf0106c940 100644 (file)
@@ -33,10 +33,9 @@ public class Metadata extends EntityBase implements Serializable {
        private String parameter = null;
 
        /**
-        * Serializációs technikával másolatot készít egy Metadata objektumról. A
-        * DynamicAttributes osztály használja.
-        * 
-        * @return Metadata objektum másolata.
+        * Serializ�ci�s technik�val m�solatot k�sz�t egy Metadata objektumr�l. A DynamicAttributes oszt�ly haszn�lja.
+        *
+        * @return Metadata objektum m�solata.
         */
        Metadata copy() {
                Metadata result = null;
@@ -96,6 +95,15 @@ public class Metadata extends EntityBase implements Serializable {
                return result;
        }
 
+       public String getFieldName() {
+               String fieldName = null;
+               if (staticTable != null)
+                       fieldName = String.format(getPrefix() + getSqlField());
+               else
+                       fieldName = String.format("%1$s.%2$s", getTableName(), getColumnName());
+               return fieldName;
+       }
+
        public GuiType getGuiType() {
                return guiType;
        }
@@ -176,6 +184,17 @@ public class Metadata extends EntityBase implements Serializable {
                return pojoField;
        }
 
+       public String getPrefix() {
+               String result = null;
+               if (staticTable == StaticTables.MEDIA)
+                       result = String.format("mm.");
+               if (staticTable == StaticTables.ITEM)
+                       result = String.format("ii.");
+               if (staticTable == StaticTables.FOLDER)
+                       result = String.format("f.");
+               return result;
+       }
+
        public String getRemoveSQL() {
                ItemType itemType = (ItemType) ItemManager.getInstance().retrieveCached(ItemType.class, getItemTypeId());
                String tableName = itemType.getTableName();
@@ -195,26 +214,6 @@ public class Metadata extends EntityBase implements Serializable {
                return getStaticTable() != null ? null : "METADATA_" + getId();
        }
 
-       public String getPrefix() {
-               String result = null;
-               if (staticTable == StaticTables.MEDIA)
-                       result = String.format("mm.");
-               if (staticTable == StaticTables.ITEM)
-                       result = String.format("ii.");
-               if (staticTable == StaticTables.FOLDER)
-                       result = String.format("f.");
-               return result;
-       }
-
-       public String getFieldName() {
-               String fieldName = null;
-               if (staticTable != null)
-                       fieldName = String.format(getPrefix() + getSqlField());
-               else
-                       fieldName = String.format("%1$s.%2$s", getTableName(), getColumnName());
-               return fieldName;
-       }
-
        // public Object getValue() {
        // return value;
        // }
index eb87cb54bbefab2ce637f75fdc60185a417dafdd..c0fcecad272cfae77eed1d083c4307a41f62f1f1 100644 (file)
@@ -4,25 +4,12 @@ Bundle-Name: Server
 Bundle-SymbolicName: user.jobengine.osgi.server;singleton:=true
 Bundle-Version: 1.0.0
 Service-Component: OSGI-INF/component.xml, OSGI-INF/componentBinder.xml
-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.servlet;version="3.1.0",
+Import-Package: javax.servlet;version="3.1.0",
  javax.servlet.http;version="3.1.0",
- javax.ws.rs.client,
- javax.ws.rs.core;version="2.0.1",
  org.apache.logging.log4j;version="2.8.2",
  org.apache.logging.log4j.message;version="2.8.2",
  org.eclipse.core.runtime.adaptor,
  org.eclipse.osgi.framework.console;version="1.1.0",
- 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",
  org.osgi.framework;version="1.5.0",
  org.osgi.framework.wiring;version="1.2.0",
  org.osgi.util.tracker;version="1.4.0",
diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/SupportTest.java b/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/SupportTest.java
new file mode 100644 (file)
index 0000000..6225530
--- /dev/null
@@ -0,0 +1,65 @@
+package user.jobengine.server.IT;\r
+\r
+import java.util.Date;\r
+\r
+import org.junit.AfterClass;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+\r
+import user.commons.logging.LogUtils;\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.Item;\r
+import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+\r
+public class SupportTest {\r
+       public class BD {\r
+               Date fBD;\r
+               Date nBD;\r
+       }\r
+\r
+       protected static IItemManager manager = null;\r
+\r
+       private static final String LOWRES_ROOT = "//10.10.1.27/mclowres/www/video";\r
+\r
+       private static final long[] duplicateLength = { 0 };\r
+\r
+       @BeforeClass\r
+       static public void setUpConnection() {\r
+               System.setProperty("jobengine.octopus.rundowns.name", "rundowns180620");\r
+               System.setProperty("jobengine.octopus.stories.name", "stories180620");\r
+               System.setProperty("jobengine.octopus.storyfolders.name", "storyfolders180620");\r
+\r
+               System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true;");\r
+               System.setProperty("jobengine.nosql.db.user", "db2admin");\r
+               System.setProperty("jobengine.nosql.db.password", "password");\r
+               System.setProperty(ItemManager.DBURL, "jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true;");\r
+               System.setProperty(ItemManager.DBUSERNAME, "db2admin");\r
+               System.setProperty(ItemManager.DBPASSWORD, "password");\r
+               System.setProperty(LogUtils.LOGLEVEL, "INFO");\r
+               // System.setProperty(ItemManager.DBURL,\r
+\r
+               manager = new ItemManager();\r
+               manager.connect();\r
+       }\r
+\r
+       @AfterClass\r
+       static public void tearDownConnection() {\r
+               manager.disconnect();\r
+       }\r
+\r
+       @Test\r
+       public void mergeItemStructure() throws Exception {\r
+               Item item = manager.createItem("Default", "Item1", "Itemdesc1", "Itemhouseid1");\r
+               Media media = manager.createMedia("Default", "Media1", "Mediadesc1", "Mediahouseid1");\r
+               item.appendMedia(media);\r
+               MediaFile mf1 = manager.createMediaFile("/xxx", manager.getFileType("Lowres"), manager.getSystemStore(true), media);\r
+               MediaFile mf2 = manager.createMediaFile("/yyy", manager.getFileType("Lowres"), manager.getSystemStore(true), media);\r
+\r
+               item.add();\r
+\r
+               //manager.mergeItemStructure(item);\r
+       }\r
+\r
+}\r