X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=policy-endpoints%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fdrools%2Fhttp%2Fserver%2Finternal%2FJettyJerseyServer.java;h=0cbd983d73f37cf749229a5258c43a37b2bafe43;hb=37975da4fdeaa9bf13d3a68236d21da746e2c00e;hp=0c724fc868b424ae934969760a75d190a8611400;hpb=6abeb297254942c48722c2da0e7c355d523fe307;p=policy%2Fdrools-pdp.git diff --git a/policy-endpoints/src/main/java/org/onap/policy/drools/http/server/internal/JettyJerseyServer.java b/policy-endpoints/src/main/java/org/onap/policy/drools/http/server/internal/JettyJerseyServer.java index 0c724fc8..0cbd983d 100644 --- a/policy-endpoints/src/main/java/org/onap/policy/drools/http/server/internal/JettyJerseyServer.java +++ b/policy-endpoints/src/main/java/org/onap/policy/drools/http/server/internal/JettyJerseyServer.java @@ -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. @@ -19,35 +19,52 @@ */ 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 servlets = new HashMap(); + protected HashMap 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; }