git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 20 Jul 2018 10:14:51 +0000 (10:14 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 20 Jul 2018 10:14:51 +0000 (10:14 +0000)
server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java
server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java
server/user.jobengine.osgi.db/sql/cleanup.sql
server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java

index 2f05089512834ef23b3975974de5b90c4d1545eb..12a5a7b749f3379486710609b104bbd883c48c90 100644 (file)
@@ -27,7 +27,7 @@ import user.commons.remotestore.StatusEvent;
 @SuppressWarnings("serial")
 public class StoreUri extends EntityBase implements Serializable {
        private final static Logger logger = LogManager.getLogger();
-       private final int BUFFER_SIZE = 1000000;
+       private final int BUFFER_SIZE = 32768;
        private String uri = null;
        private long storeId = 0;
        private boolean isStream = false;
@@ -89,7 +89,7 @@ public class StoreUri extends EntityBase implements Serializable {
                if (StringUtils.isEmpty(targetFileName))
                        targetFileName = source.getName();
 
-               // Nexio feltöltésnél nem jó ha automatikusan másoljuk a kiterjesztést            
+               // Nexio feltöltésnél nem jó ha automatikusan másoljuk a kiterjesztést
                //              else {
                //                      String name = source.getName();
                //                      int sep1 = name.lastIndexOf(".");
index c6edf856e32435e30298fb7ca5e75a3024c3bb50..0c4645d628dbb739202acee4ca124d9fbb9e38f4 100644 (file)
@@ -20,7 +20,7 @@ import user.commons.StoreUri;
 public class FtpDirectoryLister implements IDirectoryLister {\r
        private final StoreUri storeUri;\r
        private FTPClient ftpClient;\r
-       private boolean completed;\r
+       private boolean checkCompletePending;\r
 \r
        public FtpDirectoryLister(StoreUri storeUri) {\r
                this.storeUri = storeUri;\r
@@ -34,7 +34,7 @@ public class FtpDirectoryLister implements IDirectoryLister {
                connect();\r
                if (ftpClient != null) {\r
                        input = ftpClient.retrieveFileStream(name);\r
-                       completed = true;\r
+                       checkCompletePending = true;\r
                        if (input != null) {\r
                                input.close();\r
                                completePendingCommand();\r
@@ -54,6 +54,9 @@ public class FtpDirectoryLister implements IDirectoryLister {
        @Override\r
        public void cleanUp() throws Exception {\r
                if (ftpClient != null) {\r
+                       if (checkCompletePending) {\r
+                               completePendingCommand();\r
+                       }\r
                        if (ftpClient.isConnected()) {\r
                                ftpClient.logout();\r
                                ftpClient.disconnect();\r
@@ -61,17 +64,16 @@ public class FtpDirectoryLister implements IDirectoryLister {
                        } else {\r
                                ftpClient = null;\r
                        }\r
-                       if (completed) {\r
-                               completePendingCommand();\r
-                       }\r
                }\r
        }\r
 \r
        private void completePendingCommand() throws Exception {\r
-               if (completed) {\r
+               if (checkCompletePending) {\r
                        if (ftpClient != null) {\r
-                               ftpClient.completePendingCommand();\r
-                               completed = false;\r
+                               boolean completePendingCommand = ftpClient.completePendingCommand();\r
+                               if (!completePendingCommand)\r
+                                       throw new Exception("Transfer not completed!");\r
+                               checkCompletePending = false;\r
                        }\r
                }\r
        }\r
@@ -152,7 +154,7 @@ public class FtpDirectoryLister implements IDirectoryLister {
                connect();\r
                if (ftpClient != null) {\r
                        input = ftpClient.retrieveFileStream(remoteFile.getName());\r
-                       completed = true;\r
+                       checkCompletePending = true;\r
                }\r
                return input;\r
        }\r
@@ -163,7 +165,7 @@ public class FtpDirectoryLister implements IDirectoryLister {
                connect();\r
                if (ftpClient != null) {\r
                        output = ftpClient.storeFileStream(remoteFile.getName());\r
-                       completed = true;\r
+                       checkCompletePending = true;\r
                }\r
                return output;\r
 \r
index 557fe71bf5a0150b400683ebe2e16127566847bf..700b9f229f8f729e7f7d82ba23170a8d5e4775cf 100644 (file)
@@ -1,4 +1,65 @@
-select * from media where id = 76952087\r
+drop function HIGHLIGHT\r
+go\r
+CREATE FUNCTION HIGHLIGHT (content CLOB(400000), starttag VARCHAR(20), endtag VARCHAR(20), pattern VARCHAR(1000))\r
+      RETURNS VARCHAR(32000)\r
+      LANGUAGE SQL\r
+      NO EXTERNAL ACTION\r
+      READS SQL DATA\r
+      DETERMINISTIC\r
+BEGIN\r
+    DECLARE RESULT VARCHAR(32000) DEFAULT '';\r
+    DECLARE CHUNKSIZE INT DEFAULT 10000;\r
+    DECLARE CHUNK VARCHAR(10000);\r
+    DECLARE CHUNKSTART INT DEFAULT 1;\r
+    DECLARE HITSTART INT DEFAULT 1;\r
+    WHILE LENGTH(RESULT) = 0 AND CHUNKSTART < LENGTH(content) DO\r
+        SET CHUNK = DBMS_LOB.SUBSTR(content, CHUNKSIZE, CHUNKSTART);\r
+        SET HITSTART = REGEXP_INSTR(CHUNK, pattern, 1, 1, 0, 'i');\r
+        IF HITSTART > 0 THEN\r
+            IF CHUNKSTART + HITSTART > 100 THEN\r
+                SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART + HITSTART - 100);\r
+            ELSE\r
+                SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART);\r
+            END IF;    \r
+            SET CHUNK = REPLACE(CHUNK, '<', '');\r
+            SET CHUNK = REPLACE(CHUNK, '>', '');\r
+            SET RESULT = '...' || REGEXP_REPLACE(CHUNK, pattern, starttag||'$0'||endtag,1,0,'i') || '...';\r
+        END IF;    \r
+        SET CHUNKSTART = CHUNKSTART + CHUNKSIZE;\r
+    END WHILE;\r
+    RETURN RESULT;\r
+END\r
+go\r
+\r
+select REGEXP_COUNT('Ha tettem máskor is az nem az én hibám', 'máskor|hib')from sysibm.sysdummy1\r
+select HIGHLIGHT(clob('Ha tettem máskor is az nem az én hibám'), '<b>', '</b>', 'máskor|hib') from sysibm.sysdummy1     \r
+select HIGHLIGHT(description, '<b>', '</b>', 'egy') from mediadescription fetch first 1000 rows only\r
+\r
+select * from mediadescription where length(description) > 50000 fetch first row only\r
+select HIGHLIGHT(description, '<b>', '</b>', 'sdert') from mediadescription where id=253824\r
+\r
+SELECT REGEXP_SUBSTR('hello to you', '.o',1,2) FROM sysibm.sysdummy1\r
+SELECT REGEXP_INSTR('hello to you', '.x', 1, 1, 0, 'i') FROM sysibm.sysdummy1\r
+\r
+select 'a'||'b' from sysibm.sysdummy1     \r
+\r
+select *, HIGHLIGHT(description, '<b>', '</b>', 'szolnok') from mediadescription where REGEXP_COUNT(description, 'szolnok') > 0\r
+\r
+\r
+SELECT i.id itemid,i.title itemtitle,m.id mediaid,m.title mediatitle,m.archived,m.length,m.itemtypeid mediaitemtypeid,md.description,it.name mediaitemtypename,m.houseid mediahouseid,mf.houseid mediafilehouseid,vw_mf.mediafilecount FROM ITEM i, MEDIA m, MEDIAFILE mf, MEDIADESCRIPTION md, VW_MEDIAFILES vw_mf, ITEMTYPE it WHERE i.id = md.itemid AND m.id = md.mediaid AND mf.id = md.mediafileid AND m.id=vw_mf.mediaid AND m.itemTypeId = it.id AND CONTAINS(md.description, 'trend*') >= 1 ORDER BY length ASC\r
+\r
+select DBMS_LOB.SUBSTR(description, 30000, 1), DBMS_LOB.SUBSTR(description, 30000, 30001), DBMS_LOB.SUBSTR(description, 30000, 60001) from mediadescription where id =268217\r
+\r
+select REGEXP_REPLACE(\r
+  DBMS_LOB.SUBSTR(description, 10000, 1),\r
+  'főcím|mos','<b>$0</b>',1,0,'i') from mediadescription where id =268217\r
+\r
+SELECT  \r
+\r
+\r
+select id, length(description) from mediadescription order by length(description) desc\r
+\r
+select * from media where id = 76952087\r
     \r
 select id,archived from media where length=0 order by archived desc\r
 --Letezo mediahousid lekerdezese\r
index e807b30ac6ea6d705ced0c9ecc1acd4ffc8b2339..e14bc22366584cc3218f31df323b34321a5253c5 100644 (file)
@@ -42,10 +42,14 @@ import sqlj.runtime.ref.DefaultContext;
 import user.commons.CalendarUtils;\r
 import user.commons.IEntityBase;\r
 import user.commons.ListUtils;\r
+import user.commons.StoreUri;\r
 import user.commons.logging.LogUtils;\r
 import user.commons.nosql.NoSQLUtils;\r
 import user.commons.octopus.IOctopusAPI;\r
 import user.commons.octopus.OctopusAPI;\r
+import user.commons.remotestore.IProgressEventListener;\r
+import user.commons.remotestore.ProgressEvent;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.IResultSetConsumer;\r
 import user.jobengine.db.IStatementDecorator;\r
@@ -590,7 +594,21 @@ public class Support {
        }\r
 \r
        @Test\r
-       public void test1() throws IOException {\r
+       public void test1() throws Exception {\r
+               StoreUri source = manager.createStoreUri(RemoteStoreProtocol.LOCAL, "c:\\_video");\r
+               source.addProgressListener(new IProgressEventListener() {\r
+                       @Override\r
+                       public void progressChanged(ProgressEvent evt) {\r
+                               System.out.println(evt.getProgress());\r
+                       }\r
+               });\r
+\r
+               StoreUri target = manager.createStoreUri(RemoteStoreProtocol.FTP, "10.10.1.55");\r
+               target.setPortNumber(2098);\r
+               target.setUserName("administrator");\r
+               target.setPassword("VR300");\r
+\r
+               source.transferFrom(target, "TEST180720.MXF", "TEST180720.MXF");\r
 \r
        }\r
 \r