From: Vásáry Dániel Date: Fri, 20 Jul 2018 10:14:51 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=3dfc6ea3666b0b23b499c4b96c1029f483d6650d;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31199 --- diff --git a/server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java b/server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java index 2f050895..12a5a7b7 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/StoreUri.java @@ -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("."); diff --git a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java index c6edf856..0c4645d6 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java @@ -20,7 +20,7 @@ import user.commons.StoreUri; public class FtpDirectoryLister implements IDirectoryLister { private final StoreUri storeUri; private FTPClient ftpClient; - private boolean completed; + private boolean checkCompletePending; public FtpDirectoryLister(StoreUri storeUri) { this.storeUri = storeUri; @@ -34,7 +34,7 @@ public class FtpDirectoryLister implements IDirectoryLister { connect(); if (ftpClient != null) { input = ftpClient.retrieveFileStream(name); - completed = true; + checkCompletePending = true; if (input != null) { input.close(); completePendingCommand(); @@ -54,6 +54,9 @@ public class FtpDirectoryLister implements IDirectoryLister { @Override public void cleanUp() throws Exception { if (ftpClient != null) { + if (checkCompletePending) { + completePendingCommand(); + } if (ftpClient.isConnected()) { ftpClient.logout(); ftpClient.disconnect(); @@ -61,17 +64,16 @@ public class FtpDirectoryLister implements IDirectoryLister { } else { ftpClient = null; } - if (completed) { - completePendingCommand(); - } } } private void completePendingCommand() throws Exception { - if (completed) { + if (checkCompletePending) { if (ftpClient != null) { - ftpClient.completePendingCommand(); - completed = false; + boolean completePendingCommand = ftpClient.completePendingCommand(); + if (!completePendingCommand) + throw new Exception("Transfer not completed!"); + checkCompletePending = false; } } } @@ -152,7 +154,7 @@ public class FtpDirectoryLister implements IDirectoryLister { connect(); if (ftpClient != null) { input = ftpClient.retrieveFileStream(remoteFile.getName()); - completed = true; + checkCompletePending = true; } return input; } @@ -163,7 +165,7 @@ public class FtpDirectoryLister implements IDirectoryLister { connect(); if (ftpClient != null) { output = ftpClient.storeFileStream(remoteFile.getName()); - completed = true; + checkCompletePending = true; } return output; diff --git a/server/user.jobengine.osgi.db/sql/cleanup.sql b/server/user.jobengine.osgi.db/sql/cleanup.sql index 557fe71b..700b9f22 100644 --- a/server/user.jobengine.osgi.db/sql/cleanup.sql +++ b/server/user.jobengine.osgi.db/sql/cleanup.sql @@ -1,4 +1,65 @@ -select * from media where id = 76952087 +drop function HIGHLIGHT +go +CREATE FUNCTION HIGHLIGHT (content CLOB(400000), starttag VARCHAR(20), endtag VARCHAR(20), pattern VARCHAR(1000)) + RETURNS VARCHAR(32000) + LANGUAGE SQL + NO EXTERNAL ACTION + READS SQL DATA + DETERMINISTIC +BEGIN + DECLARE RESULT VARCHAR(32000) DEFAULT ''; + DECLARE CHUNKSIZE INT DEFAULT 10000; + DECLARE CHUNK VARCHAR(10000); + DECLARE CHUNKSTART INT DEFAULT 1; + DECLARE HITSTART INT DEFAULT 1; + WHILE LENGTH(RESULT) = 0 AND CHUNKSTART < LENGTH(content) DO + SET CHUNK = DBMS_LOB.SUBSTR(content, CHUNKSIZE, CHUNKSTART); + SET HITSTART = REGEXP_INSTR(CHUNK, pattern, 1, 1, 0, 'i'); + IF HITSTART > 0 THEN + IF CHUNKSTART + HITSTART > 100 THEN + SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART + HITSTART - 100); + ELSE + SET CHUNK = DBMS_LOB.SUBSTR(content, 200, CHUNKSTART); + END IF; + SET CHUNK = REPLACE(CHUNK, '<', ''); + SET CHUNK = REPLACE(CHUNK, '>', ''); + SET RESULT = '...' || REGEXP_REPLACE(CHUNK, pattern, starttag||'$0'||endtag,1,0,'i') || '...'; + END IF; + SET CHUNKSTART = CHUNKSTART + CHUNKSIZE; + END WHILE; + RETURN RESULT; +END +go + +select REGEXP_COUNT('Ha tettem máskor is az nem az én hibám', 'máskor|hib')from sysibm.sysdummy1 +select HIGHLIGHT(clob('Ha tettem máskor is az nem az én hibám'), '', '', 'máskor|hib') from sysibm.sysdummy1 +select HIGHLIGHT(description, '', '', 'egy') from mediadescription fetch first 1000 rows only + +select * from mediadescription where length(description) > 50000 fetch first row only +select HIGHLIGHT(description, '', '', 'sdert') from mediadescription where id=253824 + +SELECT REGEXP_SUBSTR('hello to you', '.o',1,2) FROM sysibm.sysdummy1 +SELECT REGEXP_INSTR('hello to you', '.x', 1, 1, 0, 'i') FROM sysibm.sysdummy1 + +select 'a'||'b' from sysibm.sysdummy1 + +select *, HIGHLIGHT(description, '', '', 'szolnok') from mediadescription where REGEXP_COUNT(description, 'szolnok') > 0 + + +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 + +select DBMS_LOB.SUBSTR(description, 30000, 1), DBMS_LOB.SUBSTR(description, 30000, 30001), DBMS_LOB.SUBSTR(description, 30000, 60001) from mediadescription where id =268217 + +select REGEXP_REPLACE( + DBMS_LOB.SUBSTR(description, 10000, 1), + 'főcím|mos','$0',1,0,'i') from mediadescription where id =268217 + +SELECT + + +select id, length(description) from mediadescription order by length(description) desc + +select * from media where id = 76952087 select id,archived from media where length=0 order by archived desc --Letezo mediahousid lekerdezese diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java b/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java index e807b30a..e14bc223 100644 --- a/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java +++ b/server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java @@ -42,10 +42,14 @@ import sqlj.runtime.ref.DefaultContext; import user.commons.CalendarUtils; import user.commons.IEntityBase; import user.commons.ListUtils; +import user.commons.StoreUri; import user.commons.logging.LogUtils; import user.commons.nosql.NoSQLUtils; import user.commons.octopus.IOctopusAPI; import user.commons.octopus.OctopusAPI; +import user.commons.remotestore.IProgressEventListener; +import user.commons.remotestore.ProgressEvent; +import user.commons.remotestore.RemoteStoreProtocol; import user.jobengine.db.IItemManager; import user.jobengine.db.IResultSetConsumer; import user.jobengine.db.IStatementDecorator; @@ -590,7 +594,21 @@ public class Support { } @Test - public void test1() throws IOException { + public void test1() throws Exception { + StoreUri source = manager.createStoreUri(RemoteStoreProtocol.LOCAL, "c:\\_video"); + source.addProgressListener(new IProgressEventListener() { + @Override + public void progressChanged(ProgressEvent evt) { + System.out.println(evt.getProgress()); + } + }); + + StoreUri target = manager.createStoreUri(RemoteStoreProtocol.FTP, "10.10.1.55"); + target.setPortNumber(2098); + target.setUserName("administrator"); + target.setPassword("VR300"); + + source.transferFrom(target, "TEST180720.MXF", "TEST180720.MXF"); }