aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2022-12-08 18:44:09 +0000
committerliamfallon <liam.fallon@est.tech>2022-12-08 18:44:13 +0000
commit5ac400df6381d2f275e0359cb06c7904eddf1faf (patch)
tree2a3ac7b8d6382d6d572f6034e46e57f699a6143c
parent64e5fee5475ff3172caa98b00d719ce5f1308b5d (diff)
Replace SpringFox with SpringDoc in policy-pap
This commit: - Remove SpringFox - Adds SpringDoc - Enables the .../v3/api-docs endpoint Note that the Swagger annotations from the OpenAPI specification generated code need to be enabled so that the API specification is available over the ..../v3/api-docs endpoint. THis will be done in subsequent commits. Issue-ID: POLICY-4404 Change-Id: I42c1575a3ce76d9b3e753ad51f85df027d12b980 Signed-off-by: liamfallon <liam.fallon@est.tech>
-rw-r--r--main/pom.xml14
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/PolicyPapApplication.java9
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/config/SpringDocBean.java50
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/CommonPapRestServer.java2
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/PapRestControllerV1Test.java1
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupStateChangeControllerV1.java1
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/TestPolicyAuditControllerV1.java1
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/TestStatisticsRestControllerV1.java1
8 files changed, 58 insertions, 21 deletions
diff --git a/main/pom.xml b/main/pom.xml
index d018e691..bd42087c 100644
--- a/main/pom.xml
+++ b/main/pom.xml
@@ -62,16 +62,6 @@
<scope>runtime</scope>
</dependency>
<dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-boot-starter</artifactId>
- <version>${version.springfox}</version>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<scope>provided</scope>
@@ -127,6 +117,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.springdoc</groupId>
+ <artifactId>springdoc-openapi-ui</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/main/src/main/java/org/onap/policy/pap/main/PolicyPapApplication.java b/main/src/main/java/org/onap/policy/pap/main/PolicyPapApplication.java
index edb6ff6d..cfa5c027 100644
--- a/main/src/main/java/org/onap/policy/pap/main/PolicyPapApplication.java
+++ b/main/src/main/java/org/onap/policy/pap/main/PolicyPapApplication.java
@@ -22,15 +22,14 @@ package org.onap.policy.pap.main;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.google.gson.JsonParser;
-import com.google.gson.JsonSerializer;
+import java.time.Instant;
import org.onap.policy.common.gson.GsonMessageBodyHandler;
+import org.onap.policy.common.gson.InstantTypeAdapter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.context.annotation.Bean;
-import springfox.documentation.spring.web.json.Json;
@SpringBootApplication(exclude = {JacksonAutoConfiguration.class})
@EntityScan(
@@ -50,9 +49,7 @@ public class PolicyPapApplication {
@Bean
public Gson gson() {
GsonBuilder gsonBuilder = GsonMessageBodyHandler.configBuilder(new GsonBuilder());
- JsonSerializer<Json> serializer =
- (json, type, jsonSerializationContext) -> JsonParser.parseString(json.value());
- gsonBuilder.registerTypeAdapter(Json.class, serializer);
+ gsonBuilder.registerTypeAdapter(Instant.class, new InstantTypeAdapter());
return gsonBuilder.create();
}
}
diff --git a/main/src/main/java/org/onap/policy/pap/main/config/SpringDocBean.java b/main/src/main/java/org/onap/policy/pap/main/config/SpringDocBean.java
new file mode 100644
index 00000000..ab3dcf49
--- /dev/null
+++ b/main/src/main/java/org/onap/policy/pap/main/config/SpringDocBean.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021-2022 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.pap.main.config;
+
+import io.swagger.v3.oas.models.ExternalDocumentation;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.License;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SpringDocBean {
+
+ /**
+ * Bean to configure Springdoc.
+ *
+ * @return the OpenAPI specification
+ */
+ @Bean
+ public OpenAPI policyFrameworkLifecycleOpenApi() {
+ return new OpenAPI()
+ .info(new Info().title("Policy Framework Policy Administration (PAP)")
+ .description(
+ "The Policy Framework Policy Administration (PAP) allows"
+ + " Policies to be grouped, deployed, and monitored")
+ .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0")))
+ .externalDocs(new ExternalDocumentation()
+ .description("Policy Framework Documentation")
+ .url("https://docs.onap.org/projects/onap-policy-parent/en/latest"));
+ }
+}
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/CommonPapRestServer.java b/main/src/test/java/org/onap/policy/pap/main/rest/CommonPapRestServer.java
index fd4bb742..04971cce 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/CommonPapRestServer.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/CommonPapRestServer.java
@@ -145,7 +145,7 @@ public abstract class CommonPapRestServer {
*/
protected void testSwagger(final String endpoint) throws Exception {
final Invocation.Builder invocationBuilder =
- sendFqeRequest(httpsPrefix + "v2/api-docs", true, MediaType.APPLICATION_JSON);
+ sendFqeRequest(httpsPrefix + "v3/api-docs", true, MediaType.APPLICATION_JSON);
final String resp = invocationBuilder.get(String.class);
assertTrue(resp.contains(ENDPOINT_PREFIX + endpoint));
}
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/PapRestControllerV1Test.java b/main/src/test/java/org/onap/policy/pap/main/rest/PapRestControllerV1Test.java
index 1af9ff55..d1d29f0c 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/PapRestControllerV1Test.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/PapRestControllerV1Test.java
@@ -31,7 +31,6 @@ import javax.ws.rs.core.SecurityContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.http.ResponseEntity;
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupStateChangeControllerV1.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupStateChangeControllerV1.java
index 48009117..6762c49c 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupStateChangeControllerV1.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupStateChangeControllerV1.java
@@ -28,7 +28,6 @@ import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.Response;
import org.junit.Test;
import org.onap.policy.models.pap.concepts.PdpGroupStateChangeResponse;
-import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
/**
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestPolicyAuditControllerV1.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestPolicyAuditControllerV1.java
index 8658b7d2..23fa803a 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/TestPolicyAuditControllerV1.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestPolicyAuditControllerV1.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertEquals;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.Response;
import org.junit.Test;
-import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
/**
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestStatisticsRestControllerV1.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestStatisticsRestControllerV1.java
index 0ed36d58..e19bdb85 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/TestStatisticsRestControllerV1.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestStatisticsRestControllerV1.java
@@ -27,7 +27,6 @@ import javax.ws.rs.client.Invocation;
import org.junit.Test;
import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.pap.main.PapConstants;
-import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
/**