diff options
Diffstat (limited to 'plugins')
38 files changed, 236 insertions, 83 deletions
diff --git a/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-hazelcast/pom.xml b/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-hazelcast/pom.xml index 98345b525..a35f2c49f 100644 --- a/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-hazelcast/pom.xml +++ b/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-hazelcast/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-distribution</groupId> <artifactId>plugins-context-distribution</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-context-distribution-hazelcast</artifactId> diff --git a/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-infinispan/pom.xml b/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-infinispan/pom.xml index 3af217468..b173fb345 100644 --- a/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-infinispan/pom.xml +++ b/plugins/plugins-context/plugins-context-distribution/plugins-context-distribution-infinispan/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-distribution</groupId> <artifactId>plugins-context-distribution</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-context-distribution-infinispan</artifactId> diff --git a/plugins/plugins-context/plugins-context-distribution/pom.xml b/plugins/plugins-context/plugins-context-distribution/pom.xml index 99d39a321..3ef613761 100644 --- a/plugins/plugins-context/plugins-context-distribution/pom.xml +++ b/plugins/plugins-context/plugins-context-distribution/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context</groupId> <artifactId>plugins-context</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-distribution</groupId> diff --git a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/pom.xml b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/pom.xml index 26c96ab56..e1f23e641 100644 --- a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/pom.xml +++ b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-locking</groupId> <artifactId>plugins-context-locking</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-context-locking-curator</artifactId> diff --git a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-hazelcast/pom.xml b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-hazelcast/pom.xml index e0f38008a..f3b7d5b82 100644 --- a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-hazelcast/pom.xml +++ b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-hazelcast/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-locking</groupId> <artifactId>plugins-context-locking</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-context-locking-hazelcast</artifactId> diff --git a/plugins/plugins-context/plugins-context-locking/pom.xml b/plugins/plugins-context/plugins-context-locking/pom.xml index 07db40014..94bca7e3b 100644 --- a/plugins/plugins-context/plugins-context-locking/pom.xml +++ b/plugins/plugins-context/plugins-context-locking/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context</groupId> <artifactId>plugins-context</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-locking</groupId> diff --git a/plugins/plugins-context/plugins-context-persistence/pom.xml b/plugins/plugins-context/plugins-context-persistence/pom.xml index ebf362b74..b50049e6b 100644 --- a/plugins/plugins-context/plugins-context-persistence/pom.xml +++ b/plugins/plugins-context/plugins-context-persistence/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context</groupId> <artifactId>plugins-context</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-persistence</groupId> diff --git a/plugins/plugins-context/plugins-context-schema/plugins-context-schema-avro/pom.xml b/plugins/plugins-context/plugins-context-schema/plugins-context-schema-avro/pom.xml index ae1ca7172..3b2a26f98 100644 --- a/plugins/plugins-context/plugins-context-schema/plugins-context-schema-avro/pom.xml +++ b/plugins/plugins-context/plugins-context-schema/plugins-context-schema-avro/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-schema</groupId> <artifactId>plugins-context-schema</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-context-schema-avro</artifactId> diff --git a/plugins/plugins-context/plugins-context-schema/pom.xml b/plugins/plugins-context/plugins-context-schema/pom.xml index 510b5f49a..fd07dec04 100644 --- a/plugins/plugins-context/plugins-context-schema/pom.xml +++ b/plugins/plugins-context/plugins-context-schema/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context</groupId> <artifactId>plugins-context</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-schema</groupId> diff --git a/plugins/plugins-context/pom.xml b/plugins/plugins-context/pom.xml index c6cac81e0..cc3d8a2c2 100644 --- a/plugins/plugins-context/pom.xml +++ b/plugins/plugins-context/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins</groupId> <artifactId>plugins</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-context</groupId> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml index f2e467269..9a738a5e5 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-jms</artifactId> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml index 1a9ffb590..5acb08ab0 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-kafka</artifactId> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml index 4c91c265b..81c85ee90 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-restclient</artifactId> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml index 4876be13e..f56cfd2ac 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-restrequestor</artifactId> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml index 4233c1973..458b7f025 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-restserver</artifactId> @@ -50,6 +50,11 @@ <artifactId>jersey-container-servlet-core</artifactId> <version>${version.jersey}</version> </dependency> + <dependency> + <groupId>org.onap.policy.common</groupId> + <artifactId>policy-endpoints</artifactId> + <version>${version.policy.common}</version> + </dependency> </dependencies> <profiles> diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilter.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilter.java new file mode 100644 index 000000000..2c38cb489 --- /dev/null +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilter.java @@ -0,0 +1,39 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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.apex.plugins.event.carrier.restserver; + +import org.onap.policy.common.endpoints.http.server.aaf.AafGranularAuthFilter; + +/** + * Class to manage aaf filters for Apex Rest Server. + * + * @author Ajith Sreekumar (ajith.sreekumar@est.tech) + */ +public class ApexRestServerAafFilter extends AafGranularAuthFilter { + + public static final String AAF_NODETYPE = "apex-rest-server"; + public static final String AAF_ROOT_PERMISSION = DEFAULT_NAMESPACE + "." + AAF_NODETYPE; + + @Override + public String getPermissionTypeRoot() { + return AAF_ROOT_PERMISSION; + } +} diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java index a8c508659..c8a07f234 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,17 +21,11 @@ package org.onap.policy.apex.plugins.event.carrier.restserver; -import java.net.URI; import java.util.EnumMap; import java.util.Map; import java.util.Properties; import java.util.concurrent.atomic.AtomicLong; - import javax.ws.rs.core.Response; - -import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; -import org.glassfish.jersey.server.ResourceConfig; import org.onap.policy.apex.core.infrastructure.threading.ApplicationThreadFactory; import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities; import org.onap.policy.apex.service.engine.event.ApexEventConsumer; @@ -40,6 +35,9 @@ import org.onap.policy.apex.service.engine.event.PeeredReference; import org.onap.policy.apex.service.engine.event.SynchronousEventCache; import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters; import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode; +import org.onap.policy.common.endpoints.http.server.HttpServletServer; +import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; +import org.onap.policy.common.gson.GsonMessageBodyHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,8 +50,6 @@ public class ApexRestServerConsumer implements ApexEventConsumer, Runnable { // Get a reference to the logger private static final Logger LOGGER = LoggerFactory.getLogger(ApexRestServerConsumer.class); - private static final String BASE_URI_TEMPLATE = "http://%s:%d/apex"; - // The amount of time to wait in milliseconds between checks that the consumer thread has stopped private static final long REST_SERVER_CONSUMER_WAIT_SLEEP_TIME = 50; @@ -71,7 +67,7 @@ public class ApexRestServerConsumer implements ApexEventConsumer, Runnable { private boolean stopOrderedFlag = false; // The local HTTP server to use for REST call reception if we are running a local Grizzly server - private HttpServer server; + private HttpServletServer server; // Holds the next identifier for event execution. private static AtomicLong nextExecutionID = new AtomicLong(0L); @@ -126,15 +122,11 @@ public class ApexRestServerConsumer implements ApexEventConsumer, Runnable { throw new ApexEventException(errorMessage); } - // Compose the URI for the standalone server - final String baseUrl = String.format(BASE_URI_TEMPLATE, restConsumerProperties.getHost(), - restConsumerProperties.getPort()); - // Instantiate the standalone server - final ResourceConfig rc = new ResourceConfig(RestServerEndpoint.class, AccessControlFilter.class); - server = GrizzlyHttpServerFactory.createHttpServer(URI.create(baseUrl), rc); - - while (!server.isStarted()) { + LOGGER.info("Creating the Apex Rest Server"); + createServer(restConsumerProperties); + server.start(); + while (!server.isAlive()) { ThreadUtilities.sleep(REST_SERVER_CONSUMER_WAIT_SLEEP_TIME); } } @@ -143,6 +135,26 @@ public class ApexRestServerConsumer implements ApexEventConsumer, Runnable { RestServerEndpoint.registerApexRestServerConsumer(this.name, this); } + private void createServer(RestServerCarrierTechnologyParameters restConsumerProperties) { + + server = HttpServletServerFactoryInstance.getServerFactory().build( + restConsumerProperties.getName(), + restConsumerProperties.isHttps(), + restConsumerProperties.getHost(), + restConsumerProperties.getPort(), null, true, false); + if (restConsumerProperties.isAaf()) { + server.addFilterClass(null, ApexRestServerAafFilter.class.getName()); + } + server.addServletClass(null, RestServerEndpoint.class.getName()); + server.addServletClass(null, AccessControlFilter.class.getName()); + server.setSerializationProvider(GsonMessageBodyHandler.class.getName()); + if (null != restConsumerProperties.getUserName() + && null != restConsumerProperties.getPassword()) { + server.setBasicAuthentication(restConsumerProperties.getUserName(), + restConsumerProperties.getPassword(), null); + } + } + /** * {@inheritDoc}. */ @@ -262,5 +274,8 @@ public class ApexRestServerConsumer implements ApexEventConsumer, Runnable { while (consumerThread.isAlive()) { ThreadUtilities.sleep(REST_SERVER_CONSUMER_WAIT_SLEEP_TIME); } + if (server != null) { + server.stop(); + } } } diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java index 9a98588a5..42613bcf8 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +21,7 @@ package org.onap.policy.apex.plugins.event.carrier.restserver; +import lombok.Getter; import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters; import org.onap.policy.common.parameters.GroupValidationResult; import org.onap.policy.common.parameters.ValidationStatus; @@ -40,6 +42,7 @@ import org.onap.policy.common.parameters.ValidationStatus; * * @author Liam Fallon (liam.fallon@ericsson.com) */ +@Getter public class RestServerCarrierTechnologyParameters extends CarrierTechnologyParameters { // @formatter:off private static final int MIN_USER_PORT = 1024; @@ -58,6 +61,10 @@ public class RestServerCarrierTechnologyParameters extends CarrierTechnologyPara private boolean standalone = false; private String host = null; private int port = -1; + private String userName; + private String password; + private boolean https; + private boolean aaf; // @formatter:on /** @@ -74,34 +81,6 @@ public class RestServerCarrierTechnologyParameters extends CarrierTechnologyPara } /** - * Check if the REST server is running in standalone mode or is using an underlying servlet infrastructure to manage - * requests. - * - * @return true if in standalone mode - */ - public boolean isStandalone() { - return standalone; - } - - /** - * Gets the host. - * - * @return the host - */ - public String getHost() { - return host; - } - - /** - * Gets the port. - * - * @return the port - */ - public int getPort() { - return port; - } - - /** * {@inheritDoc}. */ @Override diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerEndpoint.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerEndpoint.java index ca2d797b9..c4354918f 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerEndpoint.java +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerEndpoint.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,9 +21,19 @@ package org.onap.policy.apex.plugins.event.carrier.restserver; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.Authorization; +import io.swagger.annotations.BasicAuthDefinition; +import io.swagger.annotations.Info; +import io.swagger.annotations.SecurityDefinition; +import io.swagger.annotations.SwaggerDefinition; +import io.swagger.annotations.Tag; +import java.net.HttpURLConnection; import java.util.LinkedHashMap; import java.util.Map; - import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -32,7 +43,6 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,15 +52,35 @@ import org.slf4j.LoggerFactory; * * @author Liam Fallon (liam.fallon@ericsson.com) */ -@Path("/{eventInput}") +@Path("/apex/{eventInput}") +@Api(value = "APEX REST SERVER API") @Produces( { MediaType.APPLICATION_JSON }) @Consumes( { MediaType.APPLICATION_JSON }) +@SwaggerDefinition( + info = @Info(description = + "APEX RestServer that handles REST requests and responses to and from Apex.", version = "v1.0", + title = "APEX RESTSERVER"), + consumes = {MediaType.APPLICATION_JSON}, + produces = {MediaType.APPLICATION_JSON}, + schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS}, + tags = {@Tag(name = "APEX RESTSERVER", description = "APEX RESTSERVER")}, + securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")})) public class RestServerEndpoint { // Get a reference to the logger private static final Logger LOGGER = LoggerFactory.getLogger(RestServerEndpoint.class); + public static final String AUTHORIZATION_TYPE = "basicAuth"; + + public static final int AUTHENTICATION_ERROR_CODE = HttpURLConnection.HTTP_UNAUTHORIZED; + public static final int AUTHORIZATION_ERROR_CODE = HttpURLConnection.HTTP_FORBIDDEN; + public static final int SERVER_ERROR_CODE = HttpURLConnection.HTTP_INTERNAL_ERROR; + + public static final String AUTHENTICATION_ERROR_MESSAGE = "Authentication Error"; + public static final String AUTHORIZATION_ERROR_MESSAGE = "Authorization Error"; + public static final String SERVER_ERROR_MESSAGE = "Internal Server Error"; + // Statistics on the amount of HTTP messages handled private static int getMessagesReceived = 0; private static int postEventMessagesReceived = 0; @@ -82,6 +112,14 @@ public class RestServerEndpoint { */ @Path("/Status") @GET + @ApiOperation( + value = "Get Statistics", + notes = "Get statistics on apex REST event handlin", + authorizations = @Authorization(value = AUTHORIZATION_TYPE)) + @ApiResponses( + value = {@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE), + @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE), + @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)}) public Response serviceGetStats() { incrementGetMessages(); return Response.status(Response.Status.OK.getStatusCode()) @@ -92,13 +130,21 @@ public class RestServerEndpoint { } /** - * Service post request, an incoming event over RETS to Apex. + * Service post request, an incoming event over REST to Apex. * * @param jsonString the JSON string containing the data coming in on the REST call * @return the response event to the request */ @Path("/EventIn") @POST + @ApiOperation( + value = "Post Event", + notes = "Service post request, an incoming event over REST to Apex", + authorizations = @Authorization(value = AUTHORIZATION_TYPE)) + @ApiResponses( + value = {@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE), + @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE), + @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)}) public Response servicePostRequest(final String jsonString) { incrementPostEventMessages(); @@ -112,13 +158,21 @@ public class RestServerEndpoint { } /** - * Service put request, an incoming event over RETS to Apex. + * Service put request, an incoming event over REST to Apex. * * @param jsonString the JSON string containing the data coming in on the REST call * @return the response event to the request */ @Path("/EventIn") @PUT + @ApiOperation( + value = "Put Event", + notes = "Service put request, an incoming event over REST to Apex", + authorizations = @Authorization(value = AUTHORIZATION_TYPE)) + @ApiResponses( + value = {@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE), + @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE), + @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)}) public Response servicePutRequest(final String jsonString) { incrementPutEventMessages(); diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java index 02daed02e..07f705cc6 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java @@ -93,7 +93,7 @@ public class ApexRestServerConsumerTest { incomingEventReceiver); } - @Test(expected = IllegalStateException.class) + @Test(expected = IllegalArgumentException.class) public void testInitWithSynchronousModeAndProperValues() throws ApexEventException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java index dbe20c960..2c8a764e8 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java @@ -86,4 +86,65 @@ public class RestServerCarrierTechnologyParametersTest { assertFalse(result.isValid()); } + @Test + public void testValidateWithValidValues() throws NoSuchFieldException, SecurityException, + IllegalArgumentException, IllegalAccessException { + + Field field = RestServerCarrierTechnologyParameters.class.getDeclaredField("standalone"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, true); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("host"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "localhost"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("port"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, 6969); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("userName"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "username"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("password"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "password"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("https"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, true); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("aaf"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, true); + result = restServerCarrierTechnologyParameters.validate(); + assertNotNull(result); + assertTrue(result.isValid()); + } + + @Test + public void testValidateWithInvalidValues() throws NoSuchFieldException, SecurityException, + IllegalArgumentException, IllegalAccessException { + + Field field = RestServerCarrierTechnologyParameters.class.getDeclaredField("standalone"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, false); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("host"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "localhost"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("port"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, 6969); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("userName"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "username"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("password"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, "password"); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("https"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, true); + field = RestServerCarrierTechnologyParameters.class.getDeclaredField("aaf"); + field.setAccessible(true); + field.set(restServerCarrierTechnologyParameters, true); + result = restServerCarrierTechnologyParameters.validate(); + assertNotNull(result); + assertFalse(result.isValid()); + assertTrue(result.getResult().contains("host is specified only in standalone mode")); + assertTrue(result.getResult().contains("port is specified only in standalone mode")); + } } diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml index 868eda2f3..ba95247f4 100644 --- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> <artifactId>plugins-event-carrier</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-carrier-websocket</artifactId> diff --git a/plugins/plugins-event/plugins-event-carrier/pom.xml b/plugins/plugins-event/plugins-event-carrier/pom.xml index 40cb0e016..cd48929d3 100644 --- a/plugins/plugins-event/plugins-event-carrier/pom.xml +++ b/plugins/plugins-event/plugins-event-carrier/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event</groupId> <artifactId>plugins-event</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId> diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml index 47e5b8e9d..c1ea5b6bd 100644 --- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml +++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-protocol</groupId> <artifactId>plugins-event-protocol</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-protocol-jms</artifactId> diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/pom.xml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/pom.xml index 8349628b0..0ae99a5e4 100644 --- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/pom.xml +++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-protocol</groupId> <artifactId>plugins-event-protocol</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-protocol-xml</artifactId> diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/pom.xml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/pom.xml index d563fb438..7857ef562 100644 --- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/pom.xml +++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-protocol</groupId> <artifactId>plugins-event-protocol</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-event-protocol-yaml</artifactId> diff --git a/plugins/plugins-event/plugins-event-protocol/pom.xml b/plugins/plugins-event/plugins-event-protocol/pom.xml index 42ae5e45e..6532fef75 100644 --- a/plugins/plugins-event/plugins-event-protocol/pom.xml +++ b/plugins/plugins-event/plugins-event-protocol/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event</groupId> <artifactId>plugins-event</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-protocol</groupId> diff --git a/plugins/plugins-event/pom.xml b/plugins/plugins-event/pom.xml index d4ed09920..89593b93d 100644 --- a/plugins/plugins-event/pom.xml +++ b/plugins/plugins-event/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins</groupId> <artifactId>plugins</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-event</groupId> diff --git a/plugins/plugins-executor/plugins-executor-java/pom.xml b/plugins/plugins-executor/plugins-executor-java/pom.xml index 5f711a704..288f01723 100644 --- a/plugins/plugins-executor/plugins-executor-java/pom.xml +++ b/plugins/plugins-executor/plugins-executor-java/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> <artifactId>plugins-executor</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-executor-java</artifactId> diff --git a/plugins/plugins-executor/plugins-executor-javascript/pom.xml b/plugins/plugins-executor/plugins-executor-javascript/pom.xml index a565068b2..390b803d4 100644 --- a/plugins/plugins-executor/plugins-executor-javascript/pom.xml +++ b/plugins/plugins-executor/plugins-executor-javascript/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> <artifactId>plugins-executor</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-executor-javascript</artifactId> diff --git a/plugins/plugins-executor/plugins-executor-jruby/pom.xml b/plugins/plugins-executor/plugins-executor-jruby/pom.xml index 1966384c5..72fd8cccf 100644 --- a/plugins/plugins-executor/plugins-executor-jruby/pom.xml +++ b/plugins/plugins-executor/plugins-executor-jruby/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> <artifactId>plugins-executor</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-executor-jruby</artifactId> diff --git a/plugins/plugins-executor/plugins-executor-jython/pom.xml b/plugins/plugins-executor/plugins-executor-jython/pom.xml index b32ea76da..9c92b67cd 100644 --- a/plugins/plugins-executor/plugins-executor-jython/pom.xml +++ b/plugins/plugins-executor/plugins-executor-jython/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> <artifactId>plugins-executor</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-executor-jython</artifactId> diff --git a/plugins/plugins-executor/plugins-executor-mvel/pom.xml b/plugins/plugins-executor/plugins-executor-mvel/pom.xml index 016a62181..dd3b39295 100644 --- a/plugins/plugins-executor/plugins-executor-mvel/pom.xml +++ b/plugins/plugins-executor/plugins-executor-mvel/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> <artifactId>plugins-executor</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-executor-mvel</artifactId> diff --git a/plugins/plugins-executor/pom.xml b/plugins/plugins-executor/pom.xml index 8961053de..711bd0f03 100644 --- a/plugins/plugins-executor/pom.xml +++ b/plugins/plugins-executor/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins</groupId> <artifactId>plugins</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId> diff --git a/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-eclipselink/pom.xml b/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-eclipselink/pom.xml index b7c0f5140..dbe19ee02 100644 --- a/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-eclipselink/pom.xml +++ b/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-eclipselink/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-persistence.plugins-persistence-jpa</groupId> <artifactId>plugins-persistence-jpa</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <artifactId>plugins-persistence-jpa-eclipselink</artifactId> <name>${project.artifactId}</name> diff --git a/plugins/plugins-persistence/plugins-persistence-jpa/pom.xml b/plugins/plugins-persistence/plugins-persistence-jpa/pom.xml index cb9f2a005..3002f0ac7 100644 --- a/plugins/plugins-persistence/plugins-persistence-jpa/pom.xml +++ b/plugins/plugins-persistence/plugins-persistence-jpa/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-persistence</groupId> <artifactId>plugins-persistence</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-persistence.plugins-persistence-jpa</groupId> diff --git a/plugins/plugins-persistence/pom.xml b/plugins/plugins-persistence/pom.xml index 84c91c11a..389b59552 100644 --- a/plugins/plugins-persistence/pom.xml +++ b/plugins/plugins-persistence/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.onap.policy.apex-pdp.plugins</groupId> <artifactId>plugins</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins.plugins-persistence</groupId> diff --git a/plugins/pom.xml b/plugins/pom.xml index 15c1562ca..a0a7f8c7b 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.policy.apex-pdp</groupId> <artifactId>apex-pdp</artifactId> - <version>2.2.2-SNAPSHOT</version> + <version>2.3.0-SNAPSHOT</version> </parent> <groupId>org.onap.policy.apex-pdp.plugins</groupId> |