From c74aaaa485af73b9b57a32fa872362595475aa14 Mon Sep 17 00:00:00 2001 From: jrh3 Date: Wed, 17 Jul 2019 09:45:45 -0400 Subject: Modify pap to use RestServer from common Issue-ID: POLICY-1652 Signed-off-by: jrh3 Change-Id: If97c5667f52811cfb3bdf1f7c8caf763e6bfa3b6 Signed-off-by: jrh3 --- .../onap/policy/pap/main/rest/PapRestServer.java | 162 --------------------- .../policy/pap/main/startstop/PapActivator.java | 22 ++- 2 files changed, 19 insertions(+), 165 deletions(-) delete mode 100644 main/src/main/java/org/onap/policy/pap/main/rest/PapRestServer.java (limited to 'main/src') diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PapRestServer.java b/main/src/main/java/org/onap/policy/pap/main/rest/PapRestServer.java deleted file mode 100644 index a4727d00..00000000 --- a/main/src/main/java/org/onap/policy/pap/main/rest/PapRestServer.java +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.pap.main.rest; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; - -import org.onap.policy.common.capabilities.Startable; -import org.onap.policy.common.endpoints.http.server.HttpServletServer; -import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; -import org.onap.policy.common.gson.GsonMessageBodyHandler; -import org.onap.policy.pap.main.rest.depundep.PdpGroupDeleteControllerV1; -import org.onap.policy.pap.main.rest.depundep.PdpGroupDeployControllerV1; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Class to manage life cycle of PAP rest server. - * - * @author Ram Krishna Verma (ram.krishna.verma@est.tech) - */ -public class PapRestServer implements Startable { - - private static final Logger LOGGER = LoggerFactory.getLogger(PapRestServer.class); - - private List servers = new ArrayList<>(); - - private RestServerParameters restServerParameters; - - /** - * Constructor for instantiating PapRestServer. - * - * @param restServerParameters the rest server parameters - */ - public PapRestServer(final RestServerParameters restServerParameters) { - this.restServerParameters = restServerParameters; - } - - /** - * {@inheritDoc}. - */ - @Override - public boolean start() { - try { - servers = HttpServletServerFactoryInstance.getServerFactory().build(getServerProperties()); - for (final HttpServletServer server : servers) { - if (server.isAaf()) { - server.addFilterClass(null, PapAafFilter.class.getName()); - } - server.start(); - } - } catch (final Exception exp) { - LOGGER.error("Failed to start pap http server", exp); - return false; - } - return true; - } - - /** - * Creates the server properties object using restServerParameters. - * - * @return the properties object - */ - private Properties getServerProperties() { - final Properties props = new Properties(); - props.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES, restServerParameters.getName()); - - final String svcpfx = - PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "." + restServerParameters.getName(); - - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, restServerParameters.getHost()); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, - Integer.toString(restServerParameters.getPort())); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_REST_CLASSES_SUFFIX, - String.join(",", HealthCheckRestControllerV1.class.getName(), - StatisticsRestControllerV1.class.getName(), - PdpGroupDeployControllerV1.class.getName(), - PdpGroupDeleteControllerV1.class.getName(), - PdpGroupStateChangeControllerV1.class.getName(), - PdpGroupQueryControllerV1.class.getName(), - PdpGroupHealthCheckControllerV1.class.getName())); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "false"); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SWAGGER_SUFFIX, "true"); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_USERNAME_SUFFIX, - restServerParameters.getUserName()); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_PASSWORD_SUFFIX, - restServerParameters.getPassword()); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_HTTPS_SUFFIX, - String.valueOf(restServerParameters.isHttps())); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_AAF_SUFFIX, - String.valueOf(restServerParameters.isAaf())); - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, - GsonMessageBodyHandler.class.getName()); - return props; - } - - /** - * {@inheritDoc}. - */ - @Override - public boolean stop() { - for (final HttpServletServer server : servers) { - try { - server.stop(); - } catch (final Exception exp) { - LOGGER.error("Failed to stop pap http server", exp); - } - } - return true; - } - - /** - * {@inheritDoc}. - */ - @Override - public void shutdown() { - stop(); - } - - /** - * {@inheritDoc}. - */ - @Override - public boolean isAlive() { - return !servers.isEmpty(); - } - - /** - * {@inheritDoc}. - */ - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append("PapRestServer [servers="); - builder.append(servers); - builder.append("]"); - return builder.toString(); - } - -} diff --git a/main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java b/main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java index 5ceb55a1..a15bc0f1 100644 --- a/main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java +++ b/main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java @@ -26,6 +26,7 @@ import java.util.Properties; import java.util.concurrent.atomic.AtomicReference; import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicSource; +import org.onap.policy.common.endpoints.http.server.RestServer; import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher; import org.onap.policy.common.endpoints.listeners.RequestIdDispatcher; import org.onap.policy.common.parameters.ParameterService; @@ -44,8 +45,15 @@ import org.onap.policy.pap.main.comm.TimerManager; import org.onap.policy.pap.main.parameters.PapParameterGroup; import org.onap.policy.pap.main.parameters.PdpModifyRequestMapParams; import org.onap.policy.pap.main.parameters.PdpParameters; -import org.onap.policy.pap.main.rest.PapRestServer; +import org.onap.policy.pap.main.rest.HealthCheckRestControllerV1; +import org.onap.policy.pap.main.rest.PapAafFilter; import org.onap.policy.pap.main.rest.PapStatisticsManager; +import org.onap.policy.pap.main.rest.PdpGroupHealthCheckControllerV1; +import org.onap.policy.pap.main.rest.PdpGroupQueryControllerV1; +import org.onap.policy.pap.main.rest.PdpGroupStateChangeControllerV1; +import org.onap.policy.pap.main.rest.StatisticsRestControllerV1; +import org.onap.policy.pap.main.rest.depundep.PdpGroupDeleteControllerV1; +import org.onap.policy.pap.main.rest.depundep.PdpGroupDeployControllerV1; /** * This class activates Policy Administration (PAP) as a complete service together with all its controllers, listeners & @@ -113,7 +121,7 @@ public class PapActivator extends ServiceManagerContainer { final AtomicReference heartBeatTimers = new AtomicReference<>(); final AtomicReference daoFactory = new AtomicReference<>(); final AtomicReference requestMap = new AtomicReference<>(); - final AtomicReference restServer = new AtomicReference<>(); + final AtomicReference restServer = new AtomicReference<>(); // @formatter:off addAction("PAP parameters", @@ -208,7 +216,15 @@ public class PapActivator extends ServiceManagerContainer { addAction("REST server", () -> { - restServer.set(new PapRestServer(papParameterGroup.getRestServerParameters())); + RestServer server = new RestServer(papParameterGroup.getRestServerParameters(), PapAafFilter.class, + HealthCheckRestControllerV1.class, + StatisticsRestControllerV1.class, + PdpGroupDeployControllerV1.class, + PdpGroupDeleteControllerV1.class, + PdpGroupStateChangeControllerV1.class, + PdpGroupQueryControllerV1.class, + PdpGroupHealthCheckControllerV1.class); + restServer.set(server); restServer.get().start(); }, () -> restServer.get().stop()); -- cgit 1.2.3-korg