git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Tue, 23 Nov 2021 14:03:41 +0000 (14:03 +0000)
committervasary.daniel <TFS\vasary.daniel>
Tue, 23 Nov 2021 14:03:41 +0000 (14:03 +0000)
server/-configuration/run-mediacube-server.launch
server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java
server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java

index 0a93a2541377c7a39d454fa0c083f810d7cf894d..13188cc5a590d4788d88ea9abd356d8371d5e1c7 100644 (file)
@@ -15,6 +15,8 @@
     <listAttribute key="org.eclipse.debug.ui.favoriteGroups">\r
         <listEntry value="org.eclipse.debug.ui.launchGroup.run"/>\r
     </listAttribute>\r
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>\r
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>\r
     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>\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.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.mediacube.config=&quot;${workspace_loc}/-configuration/mediacube.json&quot;&#13;&#10;-Djobengine.maestro.config=&quot;${workspace_loc}/-configuration/maestro.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;-Dgui.statistics.disable=true&#13;&#10;-Dgui.help.disable=true&#13;&#10;-Dgui.editor.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.mediafinder.external=false&#13;&#10;-Djobengine.mediafinder.external.url=localhost&#13;&#10;-Dmediacube.auth.location=&quot;${workspace_loc}/-configuration/mediacube-auth.properties&quot;"/>\r
     <stringAttribute key="pde.version" value="3.3"/>\r
     <setAttribute key="selected_target_bundles">\r
-        <setEntry value="cglib@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.dataformat.jackson-dataformat-yaml@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default"/>\r
-        <setEntry value="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default"/>\r
-        <setEntry value="com.ibm.nosql@default:default"/>\r
-        <setEntry value="com.microsoft.sqlserver.sqljdbc@default:default"/>\r
-        <setEntry value="com.sun.jna@default:default"/>\r
-        <setEntry value="io.humble.video-arch-x86_64-pc-linux-gnu6@default:default"/>\r
-        <setEntry value="io.humble.video-arch-x86_64-w64-mingw32@default:default"/>\r
-        <setEntry value="io.humble.video-noarch@default:default"/>\r
-        <setEntry value="javax.annotation-api@default:default"/>\r
+        <setEntry value="com.sun.jna*4.5.1.v20190425-1842@default:default"/>\r
+        <setEntry value="com.sun.jna*5.8.0.v20210503-0343@default:default"/>\r
         <setEntry value="javax.mail@default:default"/>\r
-        <setEntry value="javax.servlet-api@default:default"/>\r
-        <setEntry value="javax.ws.rs-api@default:default"/>\r
-        <setEntry value="jcifs@default:default"/>\r
-        <setEntry value="joda-time@default:default"/>\r
-        <setEntry value="junit@default:default"/>\r
-        <setEntry value="org.apache.aries.spifly.dynamic.bundle@default:default"/>\r
-        <setEntry value="org.apache.aries.util@default:default"/>\r
-        <setEntry value="org.apache.commons.beanutils@default:default"/>\r
         <setEntry value="org.apache.commons.collections@default:default"/>\r
-        <setEntry value="org.apache.commons.digester@default:default"/>\r
         <setEntry value="org.apache.commons.io@default:default"/>\r
         <setEntry value="org.apache.commons.lang@default:default"/>\r
-        <setEntry value="org.apache.commons.net@default:default"/>\r
         <setEntry value="org.apache.felix.gogo.command@default:default"/>\r
         <setEntry value="org.apache.felix.gogo.runtime@default:default"/>\r
         <setEntry value="org.apache.felix.gogo.shell@default:default"/>\r
         <setEntry value="org.apache.httpcomponents.httpclient@default:default"/>\r
         <setEntry value="org.apache.httpcomponents.httpcore@default:default"/>\r
-        <setEntry value="org.apache.logging.log4j.api@1:true"/>\r
-        <setEntry value="org.apache.logging.log4j.core@default:default"/>\r
-        <setEntry value="org.apache.logging.log4j.slf4j-impl@default:default"/>\r
-        <setEntry value="org.apache.servicemix.bundles.quartz@default:default"/>\r
         <setEntry value="org.eclipse.equinox.common@2:true"/>\r
         <setEntry value="org.eclipse.equinox.console@default:default"/>\r
-        <setEntry value="org.eclipse.equinox.ds@1:true"/>\r
-        <setEntry value="org.eclipse.equinox.util@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.deploy@default:default"/>\r
         <setEntry value="org.eclipse.jetty.http@default:default"/>\r
         <setEntry value="org.eclipse.jetty.io@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.osgi.boot@default:true"/>\r
-        <setEntry value="org.eclipse.jetty.schemas@default:default"/>\r
         <setEntry value="org.eclipse.jetty.security@default:default"/>\r
         <setEntry value="org.eclipse.jetty.server@default:default"/>\r
         <setEntry value="org.eclipse.jetty.servlet@default:default"/>\r
         <setEntry value="org.eclipse.jetty.util@default:default"/>\r
         <setEntry value="org.eclipse.jetty.webapp@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.websocket.api@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.websocket.client@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.websocket.common@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.websocket.server@default:default"/>\r
-        <setEntry value="org.eclipse.jetty.websocket.servlet@default:default"/>\r
         <setEntry value="org.eclipse.jetty.xml@default:default"/>\r
         <setEntry value="org.eclipse.osgi.services@default:default"/>\r
         <setEntry value="org.eclipse.osgi@-1:true"/>\r
         <setEntry value="org.hamcrest.core@default:default"/>\r
-        <setEntry value="org.jboss.resteasy.client@default:default"/>\r
-        <setEntry value="org.jboss.resteasy.jaxrs@default:default"/>\r
-        <setEntry value="org.jmock.junit4@default:default"/>\r
-        <setEntry value="org.jmock@default:default"/>\r
-        <setEntry value="org.mybatis.mybatis@default:default"/>\r
         <setEntry value="org.objectweb.asm.commons@default:default"/>\r
         <setEntry value="org.objectweb.asm.tree@default:default"/>\r
         <setEntry value="org.objectweb.asm@default:default"/>\r
-        <setEntry value="slf4j.api@default:default"/>\r
-        <setEntry value="slf4j.simple@default:false"/>\r
     </setAttribute>\r
     <setAttribute key="selected_workspace_bundles">\r
         <setEntry value="user.commons.log4j2@default:false"/>\r
index a25385ecdf60cf718774138a03b5dfc9bf91f8c2..1cbb8650dd744a59ad9f13bdf0227c07831e6926 100644 (file)
@@ -3,6 +3,7 @@ package user.jobengine.search;
 import java.sql.Connection;\r
 import java.sql.PreparedStatement;\r
 import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
 import java.text.SimpleDateFormat;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
@@ -33,29 +34,28 @@ public class MediaFinder implements IMediaFinder {
 \r
                StringBuilder sql = new StringBuilder();\r
                sql.append("SELECT ");\r
-               \r
-               if(options.isCountOnly() == true) {\r
-                       sql.append(" COUNT(");\r
+\r
+               if (options.isCountOnly()) {\r
+                       sql.append(" COUNT(1) AS NumberOfRecords");\r
+               } else {\r
+\r
+                       sql.append("i.id itemid,");\r
+                       sql.append("i.title itemtitle,");\r
+                       sql.append("m.id mediaid,");\r
+                       sql.append("m.title mediatitle,");\r
+                       sql.append("m.archived,");\r
+                       sql.append("m.creation,");\r
+                       sql.append("m.created,");\r
+                       sql.append("m.modified,");\r
+                       sql.append("m.length,");\r
+                       sql.append("m.itemtypeid mediaitemtypeid,");\r
+                       sql.append(String.format("HIGHLIGHT(md.description, '<span class=''rhl''>', '</span>', '%s') description,",\r
+                                       criteriasPattern));\r
+                       sql.append("it.name mediaitemtypename,");\r
+                       sql.append("m.houseid mediahouseid,");\r
+                       sql.append("mf.houseid mediafilehouseid,");\r
+                       sql.append("vw_mf.mediafilecount");\r
                }\r
-               sql.append("i.id itemid,");\r
-               sql.append("i.title itemtitle,");\r
-               sql.append("m.id mediaid,");\r
-               sql.append("m.title mediatitle,");\r
-               sql.append("m.archived,");\r
-               sql.append("m.creation,");\r
-               sql.append("m.created,");\r
-               sql.append("m.modified,");\r
-               sql.append("m.length,");\r
-               sql.append("m.itemtypeid mediaitemtypeid,");\r
-               sql.append(String.format("HIGHLIGHT(md.description, '<span class=''rhl''>', '</span>', '%s') description,",\r
-                               criteriasPattern));\r
-               sql.append("it.name mediaitemtypename,");\r
-               sql.append("m.houseid mediahouseid,");\r
-               sql.append("mf.houseid mediafilehouseid,");\r
-               sql.append("vw_mf.mediafilecount");\r
-               if(options.isCountOnly() == true) {\r
-                       sql.append(") AS NumberOfRecords");\r
-               }               \r
 \r
                sql.append(" FROM ITEM i, MEDIA m, MEDIAFILE mf, MEDIADESCRIPTION md, VW_MEDIAFILES vw_mf, ITEMTYPE it");\r
                sql.append(" WHERE i.id = md.itemid AND m.id = md.mediaid AND mf.id = md.mediafileid");\r
@@ -102,12 +102,17 @@ public class MediaFinder implements IMediaFinder {
                if (options.getDescLength() > 0)\r
                        sql.append(" AND LENGTH(m.description) < " + options.getDescLength());\r
 \r
-               sql.append(" ORDER BY ");\r
-               if (options.getOrderBy() == null) {\r
-                       sql.append("itemtitle desc, mediaitemtypeid");\r
-               } else {\r
-                       sql.append(options.getOrderBy());\r
-                       sql.append(options.isOrderAscending() ? " ASC" : " DESC");\r
+               if (!options.isCountOnly()) {\r
+                       sql.append(" ORDER BY ");\r
+                       if (options.getOrderBy() == null) {\r
+                               sql.append("itemtitle desc, mediaitemtypeid");\r
+                       } else {\r
+                               sql.append(options.getOrderBy());\r
+                               sql.append(options.isOrderAscending() ? " ASC" : " DESC");\r
+                       }\r
+\r
+                       sql.append(" LIMIT " + (options.getToResult() - options.getFromResult()));\r
+                       sql.append(" OFFSET " + options.getFromResult());\r
                }\r
 \r
                String query = sql.toString();\r
@@ -116,11 +121,11 @@ public class MediaFinder implements IMediaFinder {
                PreparedStatement st = connection.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY,\r
                                ResultSet.CONCUR_UPDATABLE);\r
 \r
-               //      TODO Ettol elszall a 11.5-on a kereses\r
-               //              if (criteria != null && criteria.trim().length() > 0) {\r
-               //                      st.setString(1, criteria);\r
-               //                      logger.info("Parameter is {}", criteria);\r
-               //              }\r
+               // TODO Ettol elszall a 11.5-on a kereses\r
+               // if (criteria != null && criteria.trim().length() > 0) {\r
+               // st.setString(1, criteria);\r
+               // logger.info("Parameter is {}", criteria);\r
+               // }\r
                return st;\r
        }\r
 \r
@@ -149,189 +154,83 @@ public class MediaFinder implements IMediaFinder {
                return sb.toString();\r
        }\r
 \r
-       @Override\r
-       public SearchResult<ArchivedMedia> search(SearchOptions options) {\r
-               SearchResult<ArchivedMedia> result = new SearchResult<>();\r
+       private long getNumberOfRecords(SearchOptions options) {\r
+               long result = 0;\r
 \r
                ResultSet rs = null;\r
                PreparedStatement st = null;\r
+\r
                DefaultContext context = manager.getDbContext();\r
                Connection connection = context.getConnection();\r
-               SearchOptions optionsForCounting= options;\r
-               optionsForCounting.setCountOnly(true);\r
-               \r
                try {\r
-                       int maxRecords = options.getToResult() - options.getFromResult();\r
-\r
-                       //creating a query for checking resultset size\r
-                       st= createStatement(connection, optionsForCounting.getText(), optionsForCounting);\r
-                       st.close();\r
-                       rs= st.executeQuery();\r
-                       rs.close();\r
                        logger.info("Checking size");\r
-                       result.setItemCount(rs.getInt("NumberOfRecords"));\r
-                       \r
+                       options.setCountOnly(true);\r
+                       // creating a query for checking resultset size\r
                        st = createStatement(connection, options.getText(), options);\r
-                       logger.info("Executing query, fetch size is {}, autocommit {}", st.getFetchSize(),\r
-                                       connection.getAutoCommit());\r
                        rs = st.executeQuery();\r
-                       logger.info("Result size is {}", result.getItemCount());\r
+                       if (rs.next())\r
+                               result = rs.getInt("NumberOfRecords");\r
 \r
-                       List<ArchivedMedia> resultList = null;\r
-                       logger.info("Processing query result, maxRecords {}", maxRecords);\r
-                       while (rs.next() && maxRecords > 0) {\r
-                               ItemType it = new ItemType();\r
-                               it.setId(rs.getLong("mediaitemtypeid"));\r
-                               it.setName(rs.getString("mediaitemtypename"));\r
-\r
-                               Item item = new Item();\r
-                               item.setId(rs.getLong("itemid"));\r
-                               item.setTitle(rs.getString("itemtitle"));\r
-\r
-                               Media media = new Media();\r
-\r
-                               media.setItemId(item.getId());\r
-                               media.setItemType(it);\r
-                               media.setId(rs.getLong("mediaid"));\r
-                               media.setTitle(rs.getString("mediatitle"));\r
-                               media.setHouseId(rs.getString("mediahouseid"));\r
-                               media.setCreation(rs.getTimestamp("creation"));\r
-                               media.setCreated(rs.getTimestamp("created"));\r
-                               media.setModified(rs.getTimestamp("modified"));\r
-                               media.setArchived(rs.getTimestamp("archived"));\r
-                               media.setLength(rs.getLong("length"));\r
-                               media.setMediaFilesCount(rs.getInt("mediafilecount"));\r
-                               media.setMediaFilesName(rs.getString("mediafilehouseid"));\r
-\r
-                               ArchivedMedia am = new ArchivedMedia();\r
-                               am.setMedia(media);\r
-                               am.setItem(item);\r
-\r
-                               if (resultList == null)\r
-                                       resultList = new ArrayList<>();\r
-                               resultList.add(am);\r
-\r
-                               am.setRelevant(rs.getString("description"));\r
-                               maxRecords--;\r
-                       }\r
-                       logger.info("Query result processed");\r
-                       result.setItems(resultList);\r
                        connection.commit();\r
                } catch (Exception e) {\r
                        try {\r
                                connection.rollback();\r
                        } catch (Exception e1) {\r
-                               e1.printStackTrace();\r
+                               logger.throwing(e1);\r
                        }\r
                        manager.throwError(e);\r
                } finally {\r
                        try {\r
                                if (rs != null)\r
                                        rs.close();\r
-                       } catch (Exception e1) {\r
+                       } catch (Exception e2) {\r
                        }\r
+\r
                        try {\r
                                if (st != null)\r
                                        st.close();\r
-                       } catch (Exception e1) {\r
+                       } catch (Exception e2) {\r
                        }\r
 \r
                        manager.putDbContext(context);\r
                }\r
-               manager.traceOut();\r
-\r
                return result;\r
        }\r
 \r
-       public SearchResult<ArchivedMedia> search_v1(SearchOptions options) {\r
-               SearchResult<ArchivedMedia> result = new SearchResult<>();\r
-\r
+       private void getSearchResults(SearchResult<ArchivedMedia> searchResults, SearchOptions options) {\r
                ResultSet rs = null;\r
                PreparedStatement st = null;\r
+\r
                DefaultContext context = manager.getDbContext();\r
                Connection connection = context.getConnection();\r
-               try {\r
-                       int maxRecords = options.getToResult() - options.getFromResult();\r
 \r
+               try {\r
+                       options.setCountOnly(false);\r
                        st = createStatement(connection, options.getText(), options);\r
-\r
-                       logger.info("Executing query, fetch size is {}, automcommit {}", st.getFetchSize(),\r
-                                       connection.getAutoCommit());\r
                        rs = st.executeQuery();\r
-                       logger.info("Checking size");\r
-                       rs.last();\r
-                       result.setItemCount(rs.getRow());\r
-                       logger.info("Result size is {}", result.getItemCount());\r
-\r
-                       // set beginning position\r
-                       if (options.getFromResult() > -1) {\r
-                               if (options.getFromResult() <= result.getItemCount()) {\r
-                                       if (options.getFromResult() > 1) {\r
-                                               rs.absolute(options.getFromResult() - 1);\r
-                                       } else {\r
-                                               rs.beforeFirst();\r
-                                       }\r
-                               } else {\r
-                                       if (result.getItemCount() > 0) {\r
-                                               throw new Exception("Invalid searchResult 'from' position: " + options.getFromResult()\r
-                                                               + " total records: " + result.getItemCount());\r
-                                       }\r
-                               }\r
-                       } else {\r
-                               rs.beforeFirst();\r
-                       }\r
 \r
                        List<ArchivedMedia> resultList = null;\r
-                       logger.info("Processing query result, maxRecords {}", maxRecords);\r
-                       while (rs.next() && maxRecords > 0) {\r
-                               ItemType it = new ItemType();\r
-                               it.setId(rs.getLong("mediaitemtypeid"));\r
-                               it.setName(rs.getString("mediaitemtypename"));\r
-\r
-                               Item item = new Item();\r
-                               item.setId(rs.getLong("itemid"));\r
-                               item.setTitle(rs.getString("itemtitle"));\r
-\r
-                               Media media = new Media();\r
-\r
-                               media.setItemId(item.getId());\r
-                               media.setItemType(it);\r
-                               media.setId(rs.getLong("mediaid"));\r
-                               media.setTitle(rs.getString("mediatitle"));\r
-                               media.setHouseId(rs.getString("mediahouseid"));\r
-                               media.setCreation(rs.getTimestamp("creation"));\r
-                               media.setCreated(rs.getTimestamp("created"));\r
-                               media.setModified(rs.getTimestamp("modified"));\r
-                               media.setArchived(rs.getTimestamp("archived"));\r
-                               media.setLength(rs.getLong("length"));\r
-                               media.setMediaFilesCount(rs.getInt("mediafilecount"));\r
-                               media.setMediaFilesName(rs.getString("mediafilehouseid"));\r
-\r
-                               ArchivedMedia am = new ArchivedMedia();\r
-                               am.setMedia(media);\r
-                               am.setItem(item);\r
+                       while (rs.next()) {\r
+                               ArchivedMedia am = createArchiveMedia(rs);\r
 \r
                                if (resultList == null)\r
                                        resultList = new ArrayList<>();\r
                                resultList.add(am);\r
 \r
                                am.setRelevant(rs.getString("description"));\r
-                               // setRelevant(criterias, am, rs.getString("description"));\r
-                               maxRecords--;\r
                        }\r
                        logger.info("Query result processed");\r
-                       result.setItems(resultList);\r
+                       searchResults.setItems(resultList);\r
                        connection.commit();\r
                } catch (Exception e) {\r
                        try {\r
                                connection.rollback();\r
                        } catch (Exception e1) {\r
-                               e1.printStackTrace();\r
+                               logger.throwing(e1);\r
                        }\r
                        manager.throwError(e);\r
                } finally {\r
                        try {\r
-\r
                                if (rs != null)\r
                                        rs.close();\r
                        } catch (Exception e1) {\r
@@ -344,8 +243,48 @@ public class MediaFinder implements IMediaFinder {
 \r
                        manager.putDbContext(context);\r
                }\r
-               manager.traceOut();\r
 \r
+       }\r
+\r
+       private ArchivedMedia createArchiveMedia(ResultSet rs) throws SQLException {\r
+               ItemType it = new ItemType();\r
+               it.setId(rs.getLong("mediaitemtypeid"));\r
+               it.setName(rs.getString("mediaitemtypename"));\r
+\r
+               Item item = new Item();\r
+               item.setId(rs.getLong("itemid"));\r
+               item.setTitle(rs.getString("itemtitle"));\r
+\r
+               Media media = new Media();\r
+\r
+               media.setItemId(item.getId());\r
+               media.setItemType(it);\r
+               media.setId(rs.getLong("mediaid"));\r
+               media.setTitle(rs.getString("mediatitle"));\r
+               media.setHouseId(rs.getString("mediahouseid"));\r
+               media.setCreation(rs.getTimestamp("creation"));\r
+               media.setCreated(rs.getTimestamp("created"));\r
+               media.setModified(rs.getTimestamp("modified"));\r
+               media.setArchived(rs.getTimestamp("archived"));\r
+               media.setLength(rs.getLong("length"));\r
+               media.setMediaFilesCount(rs.getInt("mediafilecount"));\r
+               media.setMediaFilesName(rs.getString("mediafilehouseid"));\r
+\r
+               ArchivedMedia am = new ArchivedMedia();\r
+               am.setMedia(media);\r
+               am.setItem(item);\r
+               return am;\r
+       }\r
+\r
+       @Override\r
+       public SearchResult<ArchivedMedia> search(SearchOptions options) {\r
+               manager.traceIn();\r
+               SearchResult<ArchivedMedia> result = new SearchResult<>();\r
+               long numberOfRecords = getNumberOfRecords(options);\r
+               logger.info("Number of records {}", numberOfRecords);\r
+               result.setItemCount(numberOfRecords);\r
+               getSearchResults(result, options);\r
+               manager.traceOut();\r
                return result;\r
        }\r
 \r
index ca2882031e19243abb2b120b6813b7a5aad56d30..f1bdec86b7f4c9b8e94d74c96ec735f6f7392ea0 100644 (file)
@@ -197,9 +197,9 @@ public class SearchModel extends AsyncBaseModel {
                        }\r
                };\r
 \r
-               //              searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory());\r
-               //              setColumnOrder();\r
-               //              setUserSelectedFilters();\r
+               // searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory());\r
+               // setColumnOrder();\r
+               // setUserSelectedFilters();\r
        }\r
 \r
        private void addTypeFilters(List<TypeFilter> filters) {\r
@@ -209,8 +209,9 @@ public class SearchModel extends AsyncBaseModel {
 \r
        @AfterCompose\r
        public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
-               //A MediaFileServlet a services/proxy alatt szolgal ki\r
-               //Clients.evalJavaScript("setSource('http://localhost:9080/services/proxy/20209535_1-20205617.mp4', 'video/mp4')");\r
+               // A MediaFileServlet a services/proxy alatt szolgal ki\r
+               // Clients.evalJavaScript("setSource('http://localhost:9080/services/proxy/20209535_1-20205617.mp4',\r
+               // 'video/mp4')");\r
 \r
                try {\r
 \r
@@ -238,7 +239,7 @@ public class SearchModel extends AsyncBaseModel {
                                showSearchTypeWarning();\r
 \r
                        tags = itemManager.getAllTags();\r
-                       //lekerdezesi hiba\r
+                       // lekerdezesi hiba\r
                        if (tags == null)\r
                                Clients.showNotification("A cimkék inicializálása sikertelen!", "error", tagsToolbar, "start_center",\r
                                                3000);\r
@@ -289,11 +290,12 @@ public class SearchModel extends AsyncBaseModel {
                Executions.getCurrent().sendRedirect(email);\r
        }\r
 \r
-       //      @GlobalCommand\r
-       //      public void createFloatingJobMonitor() {\r
-       //              Window window = (Window) Executions.createComponents("/pages/joblistwnd.zul", null, null);\r
-       //              window.doOverlapped();\r
-       //      }\r
+       // @GlobalCommand\r
+       // public void createFloatingJobMonitor() {\r
+       // Window window = (Window) Executions.createComponents("/pages/joblistwnd.zul",\r
+       // null, null);\r
+       // window.doOverlapped();\r
+       // }\r
 \r
        @Command\r
        public void createLowres() {\r
@@ -405,7 +407,9 @@ public class SearchModel extends AsyncBaseModel {
        }\r
 \r
        void ensureVisible(int pos) {\r
+\r
                registerTask(() -> {\r
+                       logger.info("Scrolling to pos {} begin", pos);\r
                        List<Component> children = itemsGrid.getRows().getChildren();\r
                        if (children.size() > 0) {\r
                                Component top = children.get(pos);\r
@@ -418,6 +422,7 @@ public class SearchModel extends AsyncBaseModel {
                                positionToScroll = -1;\r
                        }\r
 \r
+                       logger.info("Scrolling to pos {} end", pos);\r
                        preventAfterRender = false;\r
                });\r
                timer.start();\r
@@ -467,16 +472,16 @@ public class SearchModel extends AsyncBaseModel {
                                        Store store = mf.getStore();\r
                                        if (store == null)\r
                                                continue;\r
-                                       //TODO a tartalek nem tud lowres lenni, de a TSM-nek nincs HTTP bejegyzese\r
-                                       //                                      if (store.isLowres()) {\r
-                                       //                                              StoreUri sourceStoreUri = store.getSourceStoreUri(RemoteStoreProtocol.HTTP);\r
-                                       //                                              URL base = new URL(sourceStoreUri.toString());\r
-                                       //                                              String relative = mf.getRelativePath().replace("\\", "/");\r
-                                       //                                              ret = new URL(base, relative).toString();\r
-                                       //                                              break;\r
-                                       //                                      }\r
-\r
-                                       //relative cim a sajat kiszolgalo miatt\r
+                                       // TODO a tartalek nem tud lowres lenni, de a TSM-nek nincs HTTP bejegyzese\r
+                                       // if (store.isLowres()) {\r
+                                       // StoreUri sourceStoreUri = store.getSourceStoreUri(RemoteStoreProtocol.HTTP);\r
+                                       // URL base = new URL(sourceStoreUri.toString());\r
+                                       // String relative = mf.getRelativePath().replace("\\", "/");\r
+                                       // ret = new URL(base, relative).toString();\r
+                                       // break;\r
+                                       // }\r
+\r
+                                       // relative cim a sajat kiszolgalo miatt\r
                                        StoreUri sourceStoreUri = store.getSourceStoreUri(RemoteStoreProtocol.HTTP);\r
 \r
                                        if (sourceStoreUri != null && sourceStoreUri.isStream()) {\r
@@ -629,7 +634,8 @@ public class SearchModel extends AsyncBaseModel {
 \r
        @Command\r
        public void onAfterRenderGrid() {\r
-               //aszinkron fut le, kulon kezelendo a hiba\r
+               logger.info("onAfterRenderGrid begin");\r
+               // aszinkron fut le, kulon kezelendo a hiba\r
                try {\r
 \r
                        if (searchResult != null)\r
@@ -640,13 +646,15 @@ public class SearchModel extends AsyncBaseModel {
                                selectedObject = searchResult.getElementAt(0);\r
                                highlight(selectedObject, true);\r
                                notifyChange("selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath");\r
+                               logger.info("onAfterRenderGrid end");\r
                                return;\r
                        }\r
 \r
-                       if (preventAfterRender)\r
+                       if (preventAfterRender) {\r
+                               logger.info("onAfterRenderGrid end");\r
                                return;\r
+                       }\r
                        preventAfterRender = true;\r
-                       logger.info("onAfterRenderGrid");\r
 \r
                        if (positionToScroll != -1) {\r
                                ensureVisible(positionToScroll);\r
@@ -655,6 +663,7 @@ public class SearchModel extends AsyncBaseModel {
                } catch (Exception e) {\r
                        handleSearchError(e);\r
                }\r
+               logger.info("onAfterRenderGrid end");\r
        }\r
 \r
        @Command\r
@@ -670,10 +679,10 @@ public class SearchModel extends AsyncBaseModel {
 \r
        @Command\r
        public void onTagChanged(@ContextParam(ContextType.TRIGGER_EVENT) Event event) {\r
-               //              source: filter | media,\r
-               //              type : add | remove,\r
-               //              tagtext: e.detail.data.value,\r
-               //              index: e.detail.index\r
+               // source: filter | media,\r
+               // type : add | remove,\r
+               // tagtext: e.detail.data.value,\r
+               // index: e.detail.index\r
 \r
                JSONObject jsObject = (JSONObject) event.getData();\r
                if (!jsObject.containsKey(TAGEVT_SOURCE))\r
@@ -730,10 +739,12 @@ public class SearchModel extends AsyncBaseModel {
                if (metaWindow != null)\r
                        return;\r
 \r
-               //              EventListener<Event> eventListener = e -> {\r
-               //                      EventQueues.lookup("my super queue", EventQueues.APPLICATION, true).unsubscribe(this);\r
-               //              };\r
-               //              EventQueues.lookup("my super queue", EventQueues.APPLICATION, true).subscribe(eventListener);\r
+               // EventListener<Event> eventListener = e -> {\r
+               // EventQueues.lookup("my super queue", EventQueues.APPLICATION,\r
+               // true).unsubscribe(this);\r
+               // };\r
+               // EventQueues.lookup("my super queue", EventQueues.APPLICATION,\r
+               // true).subscribe(eventListener);\r
                String template = "/pages/metadatadetails.zul";\r
                EventListener<?> listener = e -> {\r
                        logger.info("Meta window closed");\r
@@ -798,7 +809,7 @@ public class SearchModel extends AsyncBaseModel {
                                return;\r
                        if (id == 0) {\r
                                id = itemManager.addMediaTag(tagText, selectedObject.getMedia().getId());\r
-                               //frissitjuk az osszes Tagify control whitelist-jet\r
+                               // frissitjuk az osszes Tagify control whitelist-jet\r
                                tags.put(tagText, id);\r
                                setSearchTags();\r
                        } else\r
@@ -891,15 +902,15 @@ public class SearchModel extends AsyncBaseModel {
                int value = Integer.parseInt(source.getValue());\r
                LocalDate now = LocalDate.now();\r
                ZoneId zoneId = ZoneId.systemDefault();\r
-               //az elozo, kovetkezo lepteteshez kell\r
+               // az elozo, kovetkezo lepteteshez kell\r
                selectedDateOption = value;\r
                switch (value) {\r
-               //nap\r
+               // nap\r
                case 1:\r
                        searchFrom = Date.from(now.atStartOfDay(zoneId).toInstant());\r
                        searchTo = Date.from(now.plusDays(1).atStartOfDay(zoneId).toInstant());\r
                        break;\r
-               //het\r
+               // het\r
                case 2:\r
                        ZonedDateTime zdt = now.atStartOfDay(zoneId);\r
                        // ISO 8601, Monday is first day of week\r
@@ -908,20 +919,20 @@ public class SearchModel extends AsyncBaseModel {
                        ZonedDateTime firstOfNextWeek = firstOfWeek.plusWeeks(1);\r
                        searchTo = Date.from(firstOfNextWeek.toInstant());\r
                        break;\r
-               //honap\r
+               // honap\r
                case 3:\r
                        searchFrom = Date.from(now.with(firstDayOfMonth()).atStartOfDay(zoneId).toInstant());\r
                        searchTo = Date.from(now.with(firstDayOfNextMonth()).atStartOfDay(zoneId).toInstant());\r
                        break;\r
-               //ev\r
+               // ev\r
                case 4:\r
                        searchFrom = Date.from(now.with(firstDayOfYear()).atStartOfDay(zoneId).toInstant());\r
                        searchTo = Date.from(now.with(firstDayOfNextYear()).atStartOfDay(zoneId).toInstant());\r
                        break;\r
-               //elozo\r
+               // elozo\r
                case 100:\r
                        break;\r
-               //kovetkezo\r
+               // kovetkezo\r
                case 200:\r
                        break;\r
                case 300:\r
@@ -959,7 +970,7 @@ public class SearchModel extends AsyncBaseModel {
                if (mediaId > 0)\r
                        mediaTags = itemManager.getMediaTags(mediaId);\r
 \r
-               //inicializaljuk, hogy az addTag event ezeket mar ne akarja meg 1x hozzadni\r
+               // inicializaljuk, hogy az addTag event ezeket mar ne akarja meg 1x hozzadni\r
                StringBuilder sb = new StringBuilder();\r
                if (mediaTags != null) {\r
                        for (String tag : mediaTags) {\r
@@ -1045,11 +1056,11 @@ public class SearchModel extends AsyncBaseModel {
                        selectedObject.setMedia(itemManager.getMedia(mediaId));\r
                        selectedObject.setItem(itemManager.getItem(selectedObject.getMedia().getItemId()));\r
 \r
-                       //tags\r
+                       // tags\r
                        setMediaTags(mediaId);\r
 \r
                        try {\r
-                               //proxy\r
+                               // proxy\r
                                String video = getLowresMediaFilePath();\r
                                if (video == null) {\r
                                        Clients.evalJavaScript("setSource(null, null)");\r