Remove datarouter-node critical code smells
[dmaap/datarouter.git] / datarouter-node / src / main / java / org / onap / dmaap / datarouter / node / LogManager.java
index ade4773..6ffb760 100644 (file)
  ******************************************************************************/
 package org.onap.dmaap.datarouter.node;
 
-import java.util.*;
-import java.util.regex.*;
-import java.io.*;
-import java.nio.file.*;
-import java.text.*;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.TimerTask;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * Cleanup of old log files.
  * <p>
- * Periodically scan the log directory for log files that are older than
- * the log file retention interval, and delete them.  In a future release,
- * This class will also be responsible for uploading events logs to the
- * log server to support the log query APIs.
+ * Periodically scan the log directory for log files that are older than the log file retention interval, and delete
+ * them.  In a future release, This class will also be responsible for uploading events logs to the log server to
+ * support the log query APIs.
  */
 
 public class LogManager extends TimerTask {
+    private EELFLogger logger = EELFManager.getInstance().getLogger(LogManager.class);
     private NodeConfigManager config;
     private Matcher isnodelog;
     private Matcher iseventlog;
@@ -46,10 +54,16 @@ public class LogManager extends TimerTask {
     private String logdir;
 
     private class Uploader extends Thread implements DeliveryQueueHelper {
+        private EELFLogger logger = EELFManager.getInstance().getLogger(Uploader.class);
+
         public long getInitFailureTimer() {
             return (10000L);
         }
 
+        public long getWaitForFileProcessFailureTimer() {
+            return (600000L);
+        }
+
         public double getFailureBackoff() {
             return (2.0);
         }
@@ -70,14 +84,14 @@ public class LogManager extends TimerTask {
             return (86400000);
         }
 
-        public String getDestURL(DestInfo dest, String fileid) {
+        public String getDestURL(DestInfo destinationInfo, String fileid) {
             return (config.getEventLogUrl());
         }
 
-        public void handleUnreachable(DestInfo dest) {
+        public void handleUnreachable(DestInfo destinationInfo) {
         }
 
-        public boolean handleRedirection(DestInfo dest, String location, String fileid) {
+        public boolean handleRedirection(DestInfo destinationInfo, String location, String fileid) {
             return (false);
         }
 
@@ -92,7 +106,11 @@ public class LogManager extends TimerTask {
         private DeliveryQueue dq;
 
         public Uploader() {
-            dq = new DeliveryQueue(this, new DestInfo("LogUpload", uploaddir, null, null, null, config.getMyName(), config.getMyAuth(), false, false));
+            dq = new DeliveryQueue(this,
+                new DestInfo.DestInfoBuilder().setName("LogUpload").setSpool(uploaddir).setSubid(null).setLogdata(null)
+                    .setUrl(null).setAuthuser(config.getMyName()).setAuthentication(config.getMyAuth())
+                    .setMetaonly(false).setUse100(false).setPrivilegedSubscriber(false).setFollowRedirects(false)
+                    .setDecompress(false).createDestInfo());
             setDaemon(true);
             setName("Log Uploader");
             start();
@@ -102,6 +120,7 @@ public class LogManager extends TimerTask {
             try {
                 wait(10000);
             } catch (Exception e) {
+                logger.error("InterruptedException", e);
             }
         }
 
@@ -133,6 +152,7 @@ public class LogManager extends TimerTask {
                 lastqueued = br.readLine();
                 br.close();
             } catch (Exception e) {
+                logger.error("Exception", e);
             }
             for (String fn : fns) {
                 if (!isnodelog.reset(fn).matches()) {
@@ -146,6 +166,7 @@ public class LogManager extends TimerTask {
                             Files.createLink(Paths.get(uploaddir + "/" + pid), Paths.get(logdir + "/" + fn));
                             Files.createLink(Paths.get(uploaddir + "/" + pid + ".M"), Paths.get(uploaddir + "/.meta"));
                         } catch (Exception e) {
+                            logger.error("Exception", e);
                         }
                     }
                 }
@@ -154,12 +175,11 @@ public class LogManager extends TimerTask {
                     f.delete();
                 }
             }
-            try {
+            try (Writer w = new FileWriter(uploaddir + "/.lastqueued")) {
                 (new File(uploaddir + "/.meta")).delete();
-                Writer w = new FileWriter(uploaddir + "/.lastqueued");
                 w.write(lastqueued + "\n");
-                w.close();
             } catch (Exception e) {
+                logger.error("Exception", e);
             }
         }
     }
@@ -167,10 +187,8 @@ public class LogManager extends TimerTask {
     /**
      * Construct a log manager
      * <p>
-     * The log manager will check for expired log files every 5 minutes
-     * at 20 seconds after the 5 minute boundary.  (Actually, the
-     * interval is the event log rollover interval, which
-     * defaults to 5 minutes).
+     * The log manager will check for expired log files every 5 minutes at 20 seconds after the 5 minute boundary.
+     * (Actually, the interval is the event log rollover interval, which defaults to 5 minutes).
      */
     public LogManager(NodeConfigManager config) {
         this.config = config;
@@ -178,12 +196,13 @@ public class LogManager extends TimerTask {
             isnodelog = Pattern.compile("node\\.log\\.\\d{8}").matcher("");
             iseventlog = Pattern.compile("events-\\d{12}\\.log").matcher("");
         } catch (Exception e) {
+            logger.error("Exception", e);
         }
         logdir = config.getLogDir();
         uploaddir = logdir + "/.spool";
         (new File(uploaddir)).mkdirs();
         long now = System.currentTimeMillis();
-        long intvl = StatusLog.parseInterval(config.getEventLogInterval(), 300000);
+        long intvl = StatusLog.parseInterval(config.getEventLogInterval(), 30000);
         long when = now - now % intvl + intvl + 20000L;
         config.getTimer().scheduleAtFixedRate(this, when - now, intvl);
         worker = new Uploader();