aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjrh3 <jrh3@att.com>2019-07-17 09:45:45 -0400
committerjrh3 <jrh3@att.com>2019-07-17 10:00:14 -0400
commitc74aaaa485af73b9b57a32fa872362595475aa14 (patch)
tree3476463dfb3d465779e4661236c15fd47c9ac008
parent27f6bacd9c7ef76557a8a653142ed8e67a091a5a (diff)
Modify pap to use RestServer from common
Issue-ID: POLICY-1652 Signed-off-by: jrh3 <jrh3@att.com> Change-Id: If97c5667f52811cfb3bdf1f7c8caf763e6bfa3b6 Signed-off-by: jrh3 <jrh3@att.com>
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/PapRestServer.java162
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java22
2 files changed, 19 insertions, 165 deletions
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<HttpServletServer> 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<TimerManager> heartBeatTimers = new AtomicReference<>();
final AtomicReference<PolicyModelsProviderFactoryWrapper> daoFactory = new AtomicReference<>();
final AtomicReference<PdpModifyRequestMap> requestMap = new AtomicReference<>();
- final AtomicReference<PapRestServer> restServer = new AtomicReference<>();
+ final AtomicReference<RestServer> 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());