git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Oct 2017 10:11:54 +0000 (10:11 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Oct 2017 10:11:54 +0000 (10:11 +0000)
server/-configuration/scheduledjobs.json
server/user.jobengine.executors/jobtemplates/delete-nexio-materials.xml
server/user.jobengine.executors/src/user/jobengine/server/steps/DeleteNEXIOMaterialsStep.java
server/user.jobengine.osgi.commons/src/user/commons/nexio/NexioClipEventDispatcher.java
server/user.jobengine.osgi.commons/src/user/commons/remotestore/FtpDirectoryLister.java

index 8a436610b1c6a55e42400d8004215c135e2655fb..0477cf2607911d5e9af894bfbf40ad81fdf24f0d 100644 (file)
       "executeimmediate": true,\r
       "cronexpression": "0 0 0/1 1/1 * ? *",\r
       "parameters": [ \r
-       {"name": "port", "value": 21, "type": "java.lang.Integer"},\r
-       {"name": "userName", "value": "dani", "type": "java.lang.String"},\r
-       {"name": "password", "value": "dani", "type": "java.lang.String"}\r
+       {"name": "port", "value": 2098, "type": "java.lang.Integer"},\r
+       {"name": "userName", "value": "administrator", "type": "java.lang.String"},\r
+       {"name": "password", "value": "system", "type": "java.lang.String"},\r
+       {"name": "gracePeriodDays", "value": 1, "type": "java.lang.Integer"}\r
       ]\r
        },      \r
        {\r
index 4b8768c3087f2de9b8552a38c48020891d58c2eb..d33548680ef3300589825931e3ba3d04fe0d56bf 100644 (file)
@@ -6,6 +6,7 @@
                        <parameter name="port" type="java.lang.Integer"/>\r
                        <parameter name="userName" type="java.lang.String"/>\r
                        <parameter name="password" type="java.lang.String"/>\r
+                       <parameter name="gracePeriodDays" type="java.lang.Integer"/>\r
                </parameters>\r
        </declarations>\r
        <commands>\r
@@ -20,6 +21,9 @@
                                <input>\r
                                        <parameter name="password" />\r
                                </input>\r
+                               <input>\r
+                                       <parameter name="gracePeriodDays" />\r
+                               </input>\r
                        </inputs>\r
                </calljobstep>\r
        </commands>\r
index ecd2f1ca77595eaeee150cbd7bcfbf6262a44ad6..515000b880d15d803ed79123a5c8d3fc0541700e 100644 (file)
@@ -1,8 +1,7 @@
 package user.jobengine.server.steps;\r
 \r
-import java.util.Date;\r
+import java.util.Calendar;\r
 import java.util.List;\r
-import java.util.regex.Pattern;\r
 \r
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.logging.log4j.LogManager;\r
@@ -23,15 +22,11 @@ import user.jobengine.server.IJobEngine;
 import user.jobengine.server.IJobRuntime;\r
 \r
 public class DeleteNEXIOMaterialsStep extends JobStep {\r
-       private static final String NEXIOCLIPS = "nexioclips";\r
        private static final Logger logger = LogManager.getLogger();\r
-       private static final String MODIFIEDTIMESTAMP = "modifiedtimestamp";\r
-       private static final String EXTAGENCY = "extagency";\r
+       private static final String NEXIOCLIPS = "nexioclips";\r
+       private static final String KILLDATE = "killdate";\r
        private static final String LONGNAMEID = "longnameid";\r
        private StoreUri sourceUri;\r
-       private String fileNameRegex = "1$";\r
-       private Date modified = new Date();\r
-       private String agency = "";\r
 \r
        private void delete(String name) {\r
                RemoteFile remoteFile = null;\r
@@ -47,9 +42,8 @@ public class DeleteNEXIOMaterialsStep extends JobStep {
        }\r
 \r
        @StepEntry\r
-       public Object[] execute(int port, String userName, String password, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
+       public Object[] execute(int port, String userName, String password, int gracePeriodDays, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
                String nexioHost = System.getProperty("nexio.host");\r
-               nexioHost = "localhost";\r
                if (StringUtils.isBlank(nexioHost)) {\r
                        logger.error(getMarker(), "A 'nexio.host' rendszer paraméter nem található.");\r
                        throw new NullPointerException("System is not configured properly, 'jobengine.selenio.address' startup parameter missing.");\r
@@ -60,20 +54,21 @@ public class DeleteNEXIOMaterialsStep extends JobStep {
                DBCollection collection = db.getCollection(NEXIOCLIPS);\r
                //https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html\r
                //http://www.vogella.com/tutorials/JavaRegularExpressions/article.html\r
-               QueryBuilder queryBuilder = QueryBuilder.start();\r
-               if (StringUtils.isNotBlank(fileNameRegex))\r
-                       queryBuilder.and(QueryBuilder.start(LONGNAMEID).regex(Pattern.compile(fileNameRegex)).get());\r
-               if (StringUtils.isNotBlank(agency))\r
-                       queryBuilder.and(QueryBuilder.start(EXTAGENCY).all(agency).get());\r
-               if (modified != null)\r
-                       queryBuilder.and(QueryBuilder.start(MODIFIEDTIMESTAMP).lessThan(modified).get());\r
+               //              if (StringUtils.isNotBlank(fileNameRegex))\r
+               //                      queryBuilder.and(QueryBuilder.start(LONGNAMEID).regex(Pattern.compile(fileNameRegex)).get());\r
+               //              if (StringUtils.isNotBlank(agency))\r
+               //                      queryBuilder.and(QueryBuilder.start(EXTAGENCY).all(agency).get());\r
+               Calendar now = Calendar.getInstance();\r
+               now.add(Calendar.DAY_OF_YEAR, gracePeriodDays * -1);\r
+\r
+               QueryBuilder queryBuilder = QueryBuilder.start(KILLDATE).lessThan(now.getTime());\r
                DBCursor cursor = collection.find(queryBuilder.get());\r
                if (!cursor.hasNext())\r
                        return null;\r
 \r
                IItemManager manager = jobEngine.getItemManager();\r
                sourceUri = manager.createStoreUri(RemoteStoreProtocol.FTP, nexioHost);\r
-               sourceUri.setPortNumber(21);\r
+               sourceUri.setPortNumber(port);\r
                sourceUri.setUserName(userName);\r
                sourceUri.setPassword(password);\r
 \r
index c4ae372db5108d2423cbcfe8b984fcfd6b53e506..23205567ee32cb8df840b806d7603bdb47024a38 100644 (file)
@@ -218,7 +218,7 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                }\r
 \r
                try {\r
-                       jsClip.put(KILLDATE, clip.getKillDate());\r
+                       jsClip.put(KILLDATE, clip.getKillDate().getTime());\r
                } catch (Exception e) {\r
                        //                      System.out.println(e);\r
                }\r
@@ -337,14 +337,14 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                }\r
 \r
                /*\r
-\r
+               \r
                                int c = connection.read(buffer, 0, 2);\r
                                //2 bytes hosszan az idokozben hozzaadott id-k szamossaga\r
                                if (c < 2) {\r
                                        throw new ProtocolException("c, 2, 2");\r
                                }\r
                                //MSB, LSB\r
-\r
+               \r
                                return nofIds;\r
                        */\r
                return ret;\r
index b0d88fda795d03c97428ab23fe1bd9dc79938422..6b479bcbb37a285407c8750c469e70639f6ff422 100644 (file)
@@ -101,7 +101,9 @@ public class FtpDirectoryLister implements IDirectoryLister {
        public void delete(RemoteFile remoteFile) throws Exception {\r
                if (remoteFile.getSourceObject() instanceof FTPFile) {\r
                        FTPFile ftpFile = (FTPFile) remoteFile.getSourceObject();\r
-                       ftpClient.deleteFile(ftpFile.getName());\r
+                       boolean result = ftpClient.deleteFile(ftpFile.getName());\r
+                       if (!result)\r
+                               throw new Exception(ftpClient.getReplyString());\r
                }\r
        }\r
 \r