Merge "Close old UEB/DMaaP consumer"
[policy/drools-pdp.git] / policy-endpoints / src / main / java / org / onap / policy / drools / http / server / internal / JettyJerseyServer.java
index 0c724fc..0cbd983 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-endpoints
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  */
 package org.onap.policy.drools.http.server.internal;
 
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.HashMap;
-
 import org.eclipse.jetty.servlet.ServletHolder;
-import org.slf4j.LoggerFactory;
+import org.onap.policy.drools.utils.NetworkUtil;
 import org.slf4j.Logger;
-
+import org.slf4j.LoggerFactory;
 import io.swagger.jersey.config.JerseyJaxrsConfig;
 
 /**
  * REST Jetty Server that uses Jersey Servlets to support JAX-RS Web Services
  */
 public class JettyJerseyServer extends JettyServletServer {
+
+       /**
+        * Swagger API Base Path
+        */
+       protected static final String SWAGGER_API_BASEPATH = "swagger.api.basepath";
        
        /**
-        * Jersey Packages Init Param Name
+        * Swagger Context ID
         */
-       protected static final String JERSEY_INIT_PACKAGES_PARAM_NAME = "jersey.config.server.provider.packages";
+       protected static final String SWAGGER_CONTEXT_ID = "swagger.context.id";
        
        /**
-        * Jersey Packages Init Param Value
+        * Swagger Scanner ID
         */
-       protected static final String JERSEY_INIT_PACKAGES_PARAM_VALUE = "com.fasterxml.jackson.jaxrs.json";
+       protected static final String SWAGGER_SCANNER_ID = "swagger.scanner.id";
+       
+       /**
+        * Swagger Pretty Print
+        */
+       protected static final String SWAGGER_PRETTY_PRINT = "swagger.pretty.print";
        
        /**
         * Swagger Packages
         */
        protected static final String SWAGGER_INIT_PACKAGES_PARAM_VALUE = "io.swagger.jaxrs.listing";
+
+       /**
+        * Jersey Packages Init Param Name
+        */
+       protected static final String JERSEY_INIT_PACKAGES_PARAM_NAME = "jersey.config.server.provider.packages";
+       
+       /**
+        * Jersey Packages Init Param Value
+        */
+       protected static final String JERSEY_INIT_PACKAGES_PARAM_VALUE = "com.fasterxml.jackson.jaxrs.json";
        
        /**
         * Jersey Classes Init Param Name
@@ -72,7 +89,7 @@ public class JettyJerseyServer extends JettyServletServer {
        /**
         * Container for servlets
         */
-       protected HashMap<String, ServletHolder> servlets = new HashMap<String, ServletHolder>();
+       protected HashMap<String, ServletHolder> servlets = new HashMap<>();
        
        /**
         * Swagger ID
@@ -90,8 +107,7 @@ public class JettyJerseyServer extends JettyServletServer {
         * 
         * @throws IllegalArgumentException in invalid arguments are provided
         */
-       public JettyJerseyServer(String name, String host, int port, String contextPath, boolean swagger) 
-              throws IllegalArgumentException {
+       public JettyJerseyServer(String name, String host, int port, String contextPath, boolean swagger) {
                
                super(name, host, port, contextPath);
                if (swagger) {
@@ -108,20 +124,15 @@ public class JettyJerseyServer extends JettyServletServer {
                ServletHolder swaggerServlet = context.addServlet(JerseyJaxrsConfig.class, "/");
 
                String hostname = this.connector.getHost();
-               if (hostname == null || hostname.isEmpty() || hostname.equals("0.0.0.0")) {
-                       try {
-                               hostname = InetAddress.getLocalHost().getHostName();
-                       } catch (UnknownHostException e) {
-                               logger.warn("{}: can't resolve connector's hostname: ", this);
-                               hostname = "localhost";
-                       }
+               if (hostname == null || hostname.isEmpty() || hostname.equals(NetworkUtil.IPv4_WILDCARD_ADDRESS)) {
+                       hostname = NetworkUtil.getHostname();
                }
 
-               swaggerServlet.setInitParameter("swagger.api.basepath",
+               swaggerServlet.setInitParameter(SWAGGER_API_BASEPATH,
                                "http://" + hostname + ":" + this.connector.getPort() + "/");
-               swaggerServlet.setInitParameter("swagger.context.id", swaggerId);
-               swaggerServlet.setInitParameter("swagger.scanner.id", swaggerId);
-               swaggerServlet.setInitParameter("swagger.pretty.print", "true");
+               swaggerServlet.setInitParameter(SWAGGER_CONTEXT_ID, swaggerId);
+               swaggerServlet.setInitParameter(SWAGGER_SCANNER_ID, swaggerId);
+               swaggerServlet.setInitParameter(SWAGGER_PRETTY_PRINT, "true");
                swaggerServlet.setInitOrder(2);
                
         if (logger.isDebugEnabled())
@@ -136,8 +147,7 @@ public class JettyJerseyServer extends JettyServletServer {
         * 
         * @throws IllegalArgumentException if invalid arguments are provided
         */
-       protected synchronized ServletHolder getServlet(String servletPath)
-                         throws IllegalArgumentException {
+       protected synchronized ServletHolder getServlet(String servletPath) {
                
                ServletHolder jerseyServlet = servlets.get(servletPath);
                if (jerseyServlet == null) {
@@ -151,16 +161,15 @@ public class JettyJerseyServer extends JettyServletServer {
        }
        
        @Override
-       public synchronized void addServletPackage(String servletPath, String restPackage) 
-              throws IllegalArgumentException, IllegalStateException {
-               
+       public synchronized void addServletPackage(String servletPath, String restPackage) {
+               String servPath = servletPath;
        if (restPackage == null || restPackage.isEmpty())
                        throw new IllegalArgumentException("No discoverable REST package provided");
        
-       if (servletPath == null || servletPath.isEmpty())
-               servletPath = "/*";
+       if (servPath == null || servPath.isEmpty())
+           servPath = "/*";
                
-               ServletHolder jerseyServlet = this.getServlet(servletPath);
+               ServletHolder jerseyServlet = this.getServlet(servPath);
                
                String initClasses = 
                                jerseyServlet.getInitParameter(JERSEY_INIT_CLASSNAMES_PARAM_NAME);
@@ -175,8 +184,8 @@ public class JettyJerseyServer extends JettyServletServer {
                                               SWAGGER_INIT_PACKAGES_PARAM_VALUE + "," + 
                                                       restPackage;
                                
-                       jerseyServlet.setInitParameter("swagger.context.id", swaggerId);
-                       jerseyServlet.setInitParameter("swagger.scanner.id", swaggerId);
+                       jerseyServlet.setInitParameter(SWAGGER_CONTEXT_ID, swaggerId);
+                       jerseyServlet.setInitParameter(SWAGGER_SCANNER_ID, swaggerId);
                        } else {
                                initPackages = JERSEY_INIT_PACKAGES_PARAM_VALUE + "," + 
                                               restPackage;
@@ -192,8 +201,7 @@ public class JettyJerseyServer extends JettyServletServer {
        }
        
        @Override
-       public synchronized void addServletClass(String servletPath, String restClass) 
-                      throws IllegalArgumentException, IllegalStateException {
+       public synchronized void addServletClass(String servletPath, String restClass) {
                        
        if (restClass == null || restClass.isEmpty())
                        throw new IllegalArgumentException("No discoverable REST class provided");
@@ -216,8 +224,8 @@ public class JettyJerseyServer extends JettyServletServer {
                                                      SWAGGER_INIT_CLASSNAMES_PARAM_VALUE + "," + 
                                              restClass;
                                
-                       jerseyServlet.setInitParameter("swagger.context.id", swaggerId);
-                       jerseyServlet.setInitParameter("swagger.scanner.id", swaggerId);
+                       jerseyServlet.setInitParameter(SWAGGER_CONTEXT_ID, swaggerId);
+                       jerseyServlet.setInitParameter(SWAGGER_SCANNER_ID, swaggerId);
                        } else {
                                initClasses = JERSEY_JACKSON_INIT_CLASSNAMES_PARAM_VALUE + "," + restClass;
                        }