Remove major and minor code smells in dr-node
[dmaap/datarouter.git] / datarouter-node / src / main / java / org / onap / dmaap / datarouter / node / NodeMain.java
index 7a2691e..9eaea28 100644 (file)
@@ -26,74 +26,38 @@ package org.onap.dmaap.datarouter.node;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.EnumSet;
+import java.util.Properties;
+import javax.servlet.DispatcherType;
+import javax.servlet.ServletException;
 import org.eclipse.jetty.http.HttpVersion;
 import org.eclipse.jetty.http.HttpVersion;
-import org.eclipse.jetty.server.*;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.SecureRequestCustomizer;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.onap.aaf.cadi.PropAccess;
 
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.onap.aaf.cadi.PropAccess;
 
-import javax.servlet.DispatcherType;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.EnumSet;
-import java.util.Properties;
-
 /**
  * The main starting point for the Data Router node
  */
 public class NodeMain {
 
 /**
  * The main starting point for the Data Router node
  */
 public class NodeMain {
 
-    private NodeMain() {
-    }
-
     private static EELFLogger nodeMainLogger = EELFManager.getInstance().getLogger(NodeMain.class);
     private static EELFLogger nodeMainLogger = EELFManager.getInstance().getLogger(NodeMain.class);
-
-    class Inner {
-        InputStream getCadiProps() {
-            InputStream in = null;
-            try {
-                in = getClass().getClassLoader().getResourceAsStream("drNodeCadi.properties");
-            } catch (Exception e) {
-                nodeMainLogger.error("Exception in Inner.getCadiProps() method ", e);
-            }
-            return in;
-        }
-    }
-
-    private static class WaitForConfig implements Runnable {
-
-        private NodeConfigManager localNodeConfigManager;
-
-        WaitForConfig(NodeConfigManager ncm) {
-            this.localNodeConfigManager = ncm;
-        }
-
-        public synchronized void run() {
-            notify();
-        }
-
-        synchronized void waitForConfig() {
-            localNodeConfigManager.registerConfigTask(this);
-            while (!localNodeConfigManager.isConfigured()) {
-                nodeMainLogger.info("NODE0003 Waiting for Node Configuration");
-                try {
-                    wait();
-                } catch (Exception exception) {
-                    nodeMainLogger
-                            .error("NodeMain: waitForConfig exception. Exception Message:- " + exception.toString(),
-                                    exception);
-                }
-            }
-            localNodeConfigManager.deregisterConfigTask(this);
-            nodeMainLogger.info("NODE0004 Node Configuration Data Received");
-        }
-    }
-
     private static Delivery delivery;
     private static NodeConfigManager nodeConfigManager;
 
     private static Delivery delivery;
     private static NodeConfigManager nodeConfigManager;
 
+    private NodeMain() {
+    }
+
     /**
      * Reset the retry timer for a subscription
      */
     /**
      * Reset the retry timer for a subscription
      */
@@ -123,7 +87,8 @@ public class NodeMain {
         httpConfiguration.setRequestHeaderSize(2048);
 
         // HTTP connector
         httpConfiguration.setRequestHeaderSize(2048);
 
         // HTTP connector
-        try (ServerConnector httpServerConnector = new ServerConnector(server, new HttpConnectionFactory(httpConfiguration))) {
+        try (ServerConnector httpServerConnector = new ServerConnector(server,
+                new HttpConnectionFactory(httpConfiguration))) {
             httpServerConnector.setPort(nodeConfigManager.getHttpPort());
             httpServerConnector.setIdleTimeout(2000);
 
             httpServerConnector.setPort(nodeConfigManager.getHttpPort());
             httpServerConnector.setIdleTimeout(2000);
 
@@ -147,9 +112,12 @@ public class NodeMain {
 
             sslContextFactory.addExcludeProtocols("SSLv3");
             sslContextFactory.setIncludeProtocols(nodeConfigManager.getEnabledprotocols());
 
             sslContextFactory.addExcludeProtocols("SSLv3");
             sslContextFactory.setIncludeProtocols(nodeConfigManager.getEnabledprotocols());
-            nodeMainLogger.info("NODE00004 Unsupported protocols node server:-" + String.join(",", sslContextFactory.getExcludeProtocols()));
-            nodeMainLogger.info("NODE00004 Supported protocols node server:-" + String.join(",", sslContextFactory.getIncludeProtocols()));
-            nodeMainLogger.info("NODE00004 Unsupported ciphers node server:-" + String.join(",", sslContextFactory.getExcludeCipherSuites()));
+            nodeMainLogger.info("NODE00004 Unsupported protocols node server:-" +
+                    String.join(",", sslContextFactory.getExcludeProtocols()));
+            nodeMainLogger.info("NODE00004 Supported protocols node server:-" +
+                    String.join(",", sslContextFactory.getIncludeProtocols()));
+            nodeMainLogger.info("NODE00004 Unsupported ciphers node server:-" +
+                    String.join(",", sslContextFactory.getExcludeCipherSuites()));
 
             HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
             httpsConfiguration.setRequestHeaderSize(8192);
 
             HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
             httpsConfiguration.setRequestHeaderSize(8192);
@@ -174,20 +142,8 @@ public class NodeMain {
                 servletContextHandler.addServlet(new ServletHolder(new NodeServlet(delivery)), "/*");
 
                 //CADI Filter activation check
                 servletContextHandler.addServlet(new ServletHolder(new NodeServlet(delivery)), "/*");
 
                 //CADI Filter activation check
-                if (nodeConfigManager.getCadiEnabeld()) {
-                    Properties cadiProperties = new Properties();
-                    try {
-                        Inner obj = new NodeMain().new Inner();
-                        InputStream in = obj.getCadiProps();
-                        cadiProperties.load(in);
-                    } catch (IOException e1) {
-                        nodeMainLogger.error("NODE00005 Exception in NodeMain.Main() loading CADI properties ", e1);
-                    }
-                    cadiProperties.setProperty("aaf_locate_url", nodeConfigManager.getAafURL());
-                    nodeMainLogger.info("NODE00005  aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
-
-                    PropAccess access = new PropAccess(cadiProperties);
-                    servletContextHandler.addFilter(new FilterHolder(new DRNodeCadiFilter(true, access)), "/*", EnumSet.of(DispatcherType.REQUEST));
+                if (nodeConfigManager.getCadiEnabled()) {
+                    enableCadi(servletContextHandler);
                 }
 
                 server.setHandler(servletContextHandler);
                 }
 
                 server.setHandler(servletContextHandler);
@@ -199,9 +155,68 @@ public class NodeMain {
             server.start();
             nodeMainLogger.info("NODE00006 Node Server started-" + server.getState());
         } catch (Exception e) {
             server.start();
             nodeMainLogger.info("NODE00006 Node Server started-" + server.getState());
         } catch (Exception e) {
-            nodeMainLogger.info("NODE00006 Jetty failed to start. Reporting will we unavailable", e);
+            nodeMainLogger.info("NODE00006 Jetty failed to start. Reporting will we unavailable", e.getMessage());
         }
         server.join();
         nodeMainLogger.info("NODE00007 Node Server joined - " + server.getState());
     }
         }
         server.join();
         nodeMainLogger.info("NODE00007 Node Server joined - " + server.getState());
     }
+
+    private static void enableCadi(ServletContextHandler servletContextHandler) throws ServletException {
+        Properties cadiProperties = new Properties();
+        try {
+            Inner obj = new NodeMain().new Inner();
+            InputStream in = obj.getCadiProps();
+            cadiProperties.load(in);
+        } catch (IOException e1) {
+            nodeMainLogger.error("NODE00005 Exception in NodeMain.Main() loading CADI properties " + e1.getMessage());
+        }
+        cadiProperties.setProperty("aaf_locate_url", nodeConfigManager.getAafURL());
+        nodeMainLogger.info("NODE00005  aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
+
+        PropAccess access = new PropAccess(cadiProperties);
+        servletContextHandler.addFilter(new FilterHolder(new DRNodeCadiFilter(true, access)), "/*", EnumSet
+                .of(DispatcherType.REQUEST));
+    }
+
+    private static class WaitForConfig implements Runnable {
+
+        private NodeConfigManager localNodeConfigManager;
+
+        WaitForConfig(NodeConfigManager ncm) {
+            this.localNodeConfigManager = ncm;
+        }
+
+        public synchronized void run() {
+            notify();
+        }
+
+        synchronized void waitForConfig() {
+            localNodeConfigManager.registerConfigTask(this);
+            while (!localNodeConfigManager.isConfigured()) {
+                nodeMainLogger.info("NODE0003 Waiting for Node Configuration");
+                try {
+                    wait();
+                } catch (Exception exception) {
+                    nodeMainLogger
+                            .error("NodeMain: waitForConfig exception. Exception Message:- " + exception.toString(),
+                                    exception);
+                }
+            }
+            localNodeConfigManager.deregisterConfigTask(this);
+            nodeMainLogger.info("NODE0004 Node Configuration Data Received");
+        }
+    }
+
+    class Inner {
+
+        InputStream getCadiProps() {
+            InputStream in = null;
+            try {
+                in = getClass().getClassLoader().getResourceAsStream("drNodeCadi.properties");
+            } catch (Exception e) {
+                nodeMainLogger.error("Exception in Inner.getCadiProps() method ", e);
+            }
+            return in;
+        }
+    }
 }
 }