diff options
author | Jim Hahn <jrh3@att.com> | 2019-09-13 17:31:46 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-09-16 18:24:42 -0400 |
commit | 50cd3fbf4561fe445751d299c53efc499df6dfb6 (patch) | |
tree | 28d10581129d3b5107693d7183bd2f46af419377 | |
parent | 89a8e32aabc34432b3d614f452e10f7125b478ce (diff) |
Add YAML support to drools-pdp rest servlets
Drools-pdp depends on some of the GsonJackson annotations that cannot
be easily worked around via standard gson. Consequently, this continues
to use the JacksonHandler for json-encoding, thus it uses the
YamlJacksonHandler for yaml-encoding.
Added YAML to swagger "consumes" list.
Change-Id: Ic70c68bb274222db571b3515cbf1ab22d9ff2366
Issue-ID: POLICY-2081
Signed-off-by: Jim Hahn <jrh3@att.com>
9 files changed, 32 insertions, 23 deletions
diff --git a/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties b/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties index fc03841a..70a010cd 100644 --- a/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties +++ b/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties @@ -28,4 +28,4 @@ http.server.services.HEALTHCHECK.userName=${env:HEALTHCHECK_USER} http.server.services.HEALTHCHECK.password=${env:HEALTHCHECK_PASSWORD} http.server.services.HEALTHCHECK.https=true http.server.services.HEALTHCHECK.aaf=${env:AAF} -http.server.services.HEALTHCHECK.serialization.provider=org.onap.policy.common.gson.JacksonHandler +http.server.services.HEALTHCHECK.serialization.provider=org.onap.policy.common.gson.JacksonHandler,org.onap.policy.common.endpoints.http.server.YamlJacksonHandler diff --git a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java index 954a2c55..5d9d67ec 100644 --- a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java +++ b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java @@ -31,20 +31,20 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - +import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.drools.healthcheck.HealthCheck.Reports; @Path("/") @Api -@Produces(MediaType.APPLICATION_JSON) +@Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @SwaggerDefinition( info = @Info( description = "PDP-D Healthcheck Service", version = "v1.0", title = "PDP-D Healthcheck" ), - consumes = {MediaType.APPLICATION_JSON}, - produces = {MediaType.APPLICATION_JSON}, + consumes = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, + produces = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, schemes = {SwaggerDefinition.Scheme.HTTP}, tags = { @Tag(name = "pdp-d-healthcheck", description = "Drools PDP Healthcheck Operations") @@ -54,7 +54,6 @@ public class RestHealthCheck { @GET @Path("healthcheck") - @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Perform a system healthcheck", notes = "Provides healthy status of the PDP-D plus the components defined in its " @@ -67,7 +66,6 @@ public class RestHealthCheck { @GET @Path("healthcheck/configuration") - @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Configuration", notes = "Provides the Healthcheck server configuration and monitored REST clients", diff --git a/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/RestMockHealthCheck.java b/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/RestMockHealthCheck.java index 8bdad5b6..8cbe1fbf 100644 --- a/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/RestMockHealthCheck.java +++ b/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/RestMockHealthCheck.java @@ -7,9 +7,9 @@ * 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. @@ -26,14 +26,15 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; @Path("/") public class RestMockHealthCheck { - + @GET @Path("healthcheck/test") - @Produces(MediaType.APPLICATION_JSON) - public Response papHealthCheck() { + @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) + public Response papHealthCheck() { return Response.status(Status.OK).entity("All Alive").build(); } diff --git a/feature-lifecycle/pom.xml b/feature-lifecycle/pom.xml index 18831b5a..66da4614 100644 --- a/feature-lifecycle/pom.xml +++ b/feature-lifecycle/pom.xml @@ -7,9 +7,9 @@ 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. @@ -122,6 +122,13 @@ <dependency> <groupId>org.onap.policy.common</groupId> + <artifactId>policy-endpoints</artifactId> + <version>${policy.common.version}</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>org.onap.policy.common</groupId> <artifactId>utils-test</artifactId> <version>${policy.common.version}</version> <scope>test</scope> diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java index e4a93310..9aea0450 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java @@ -26,6 +26,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.drools.lifecycle.LifecycleFeature; import org.onap.policy.drools.lifecycle.LifecycleFsm; @@ -34,8 +35,8 @@ import org.onap.policy.drools.lifecycle.LifecycleFsm; */ @Path("/policy/pdp") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) +@Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) +@Consumes({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @Api public class RestLifecycleManager { diff --git a/feature-state-management/src/main/feature/config/feature-state-management.properties b/feature-state-management/src/main/feature/config/feature-state-management.properties index 9ab53d3f..d2df6c52 100644 --- a/feature-state-management/src/main/feature/config/feature-state-management.properties +++ b/feature-state-management/src/main/feature/config/feature-state-management.properties @@ -28,7 +28,7 @@ javax.persistence.jdbc.password=${env:SQL_PASSWORD} # Test interface host and port defaults may be overwritten here http.server.services.TEST.host=0.0.0.0 http.server.services.TEST.port=9981 -http.server.services.TEST.serialization.provider=org.onap.policy.common.gson.JacksonHandler +http.server.services.TEST.serialization.provider=org.onap.policy.common.gson.JacksonHandler,org.onap.policy.common.endpoints.http.server.YamlJacksonHandler #These properties will default to the following if no other values are provided: # http.server.services.TEST.restClasses=org.onap.policy.drools.statemanagement.IntegrityMonitorRestManager # http.server.services.TEST.managed=false diff --git a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java index 2d40a1f1..c5841b06 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java +++ b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java @@ -55,6 +55,7 @@ import org.onap.policy.common.endpoints.event.comm.TopicEndpoint; import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicSink; import org.onap.policy.common.endpoints.event.comm.TopicSource; +import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.drools.controller.DroolsController; import org.onap.policy.drools.features.PolicyControllerFeatureApi; import org.onap.policy.drools.features.PolicyEngineFeatureApi; @@ -78,11 +79,12 @@ import org.slf4j.LoggerFactory; */ @Path("/policy/pdp") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) +@Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) +@Consumes({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @Api @SwaggerDefinition(info = @Info(description = "PDP-D Telemetry Services", version = "v1.0", title = "PDP-D Telemetry"), - consumes = {MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN}, produces = {MediaType.APPLICATION_JSON}, + consumes = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML, MediaType.TEXT_PLAIN}, + produces = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, schemes = {SwaggerDefinition.Scheme.HTTP}, tags = {@Tag(name = "pdp-d-telemetry", description = "Drools PDP Telemetry Operations")}) public class RestManager { diff --git a/policy-management/src/main/server/config/engine.properties b/policy-management/src/main/server/config/engine.properties index 05f682e3..aa9b6d80 100644 --- a/policy-management/src/main/server/config/engine.properties +++ b/policy-management/src/main/server/config/engine.properties @@ -42,7 +42,7 @@ http.server.services.SECURED-CONFIG.managed=false http.server.services.SECURED-CONFIG.swagger=true http.server.services.SECURED-CONFIG.https=true http.server.services.SECURED-CONFIG.aaf=${env:AAF} -http.server.services.SECURED-CONFIG.serialization.provider=org.onap.policy.common.gson.JacksonHandler +http.server.services.SECURED-CONFIG.serialization.provider=org.onap.policy.common.gson.JacksonHandler,org.onap.policy.common.endpoints.http.server.YamlJacksonHandler aaf.namespace=${env:AAF_NAMESPACE} aaf.root.permission=${env:AAF_NAMESPACE}.pdpd @@ -62,8 +62,8 @@ <hibernate.commons.annotations.version>5.0.1.Final</hibernate.commons.annotations.version> <commons.io.version>2.5</commons.io.version> <xml.apis.version>1.4.01</xml.apis.version> - <policy.common.version>1.5.2</policy.common.version> - <policy.models.version>2.1.3</policy.models.version> + <policy.common.version>1.6.0-SNAPSHOT</policy.common.version> + <policy.models.version>2.2.0-SNAPSHOT</policy.models.version> </properties> <modules> |