<artifactId>spring-boot-starter-jetty</artifactId>\r
</dependency>\r
\r
+ <dependency>\r
+ <groupId>io.swagger.core.v3</groupId>\r
+ <artifactId>swagger-annotations</artifactId>\r
+ <version>${swagger.version}</version>\r
+ </dependency>\r
+\r
+ <dependency>\r
+ <groupId>io.swagger.core.v3</groupId>\r
+ <artifactId>swagger-jaxrs2</artifactId>\r
+ <version>${swagger.version}</version>\r
+ </dependency>\r
\r
<dependency>\r
<groupId>org.springframework.boot</groupId>\r
\r
package org.onap.cps.rest.config;\r
\r
+import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder;\r
+import io.swagger.v3.jaxrs2.integration.resources.AcceptHeaderOpenApiResource;\r
+import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;\r
+import io.swagger.v3.oas.integration.OpenApiConfigurationException;\r
import javax.annotation.PostConstruct;\r
import javax.ws.rs.ApplicationPath;\r
import org.glassfish.jersey.media.multipart.MultiPartFeature;\r
import org.glassfish.jersey.server.ResourceConfig;\r
-import org.onap.cps.rest.controller.RestController;\r
import org.springframework.context.annotation.Configuration;\r
\r
@Configuration\r
@ApplicationPath("/api/v1")\r
public class JerseyConfig extends ResourceConfig {\r
\r
+ /**\r
+ * This method is used to setup Jersey related configuration.\r
+ */\r
@PostConstruct\r
public void init() {\r
- register(RestController.class);\r
register(MultiPartFeature.class);\r
+ register(OpenApiResource.class);\r
+ register(AcceptHeaderOpenApiResource.class);\r
+\r
+ packages("org.onap.cps.rest.controller");\r
+ configureSwagger();\r
+ }\r
+\r
+ private void configureSwagger() {\r
+ try {\r
+ new JaxrsOpenApiContextBuilder<>().buildContext(true).read();\r
+ } catch (final OpenApiConfigurationException e) {\r
+ throw new RuntimeException(e.getMessage(), e);\r
+ }\r
}\r
-}
\ No newline at end of file
+}\r
--- /dev/null
+{\r
+ "resourcePackages": [\r
+ "org.onap.cps.rest.controller"\r
+ ],\r
+ "prettyPrint": true,\r
+ "cacheTTL": 0,\r
+ "openAPI": {\r
+ "info": {\r
+ "title": "ONAP Open API v3 CPS Spec",\r
+ "description": "The API Description may be multiline, and GitHub Flavored Markdown, GFM syntax, can be used for rich text representation.",\r
+ "x-logo": {\r
+ "url": "logo.png"\r
+ },\r
+ "contact": {\r
+ "name": "ONAP",\r
+ "url": "https://onap.readthedocs.io",\r
+ "email": "onap-discuss@lists.onap.org"\r
+ },\r
+ "license": {\r
+ "name": "Apache 2.0",\r
+ "url": "http://www.apache.org/licenses/LICENSE-2.0"\r
+ },\r
+ "version": "1.2.34",\r
+ "x-planned-retirement-date": "202207",\r
+ "x-component": "Modeling"\r
+ }\r
+ }\r
+}\r
<dependency>\r
<groupId>org.opendaylight.yangtools</groupId>\r
<artifactId>yang-parser-api</artifactId>\r
- <version>${org.opendaylight.yangtools.version}</version>\r
+ <version>${yangtools.version}</version>\r
</dependency>\r
\r
<dependency>\r
<groupId>org.opendaylight.yangtools</groupId>\r
<artifactId>yang-parser-impl</artifactId>\r
- <version>${org.opendaylight.yangtools.version}</version>\r
+ <version>${yangtools.version}</version>\r
</dependency>\r
\r
<dependency>\r
<groupId>org.opendaylight.yangtools</groupId>\r
<artifactId>yang-model-util</artifactId>\r
- <version>${org.opendaylight.yangtools.version}</version>\r
+ <version>${yangtools.version}</version>\r
</dependency>\r
\r
<dependency>\r
<!-- required for processing yang data in json format -->\r
<groupId>org.opendaylight.yangtools</groupId>\r
<artifactId>yang-data-codec-gson</artifactId>\r
- <version>${org.opendaylight.yangtools.version}</version>\r
+ <version>${yangtools.version}</version>\r
</dependency>\r
\r
<dependency>\r
<dependency>\r
<groupId>org.codehaus.groovy</groupId>\r
<artifactId>groovy</artifactId>\r
- <version>${version.groovy}</version>\r
+ <version>${groovy.version}</version>\r
<scope>test</scope>\r
</dependency>\r
<dependency>\r
<groupId>org.spockframework</groupId>\r
<artifactId>spock-core</artifactId>\r
- <version>${version.spock-core}</version>\r
+ <version>${spock-core.version}</version>\r
<scope>test</scope>\r
</dependency>\r
<dependency>\r
</organization>\r
\r
<properties>\r
- <version.java.compiler>11</version.java.compiler>\r
+ <java.version>11</java.version>\r
<springboot.version>2.3.3.RELEASE</springboot.version>\r
<oparent.version>3.1.0</oparent.version>\r
- <org.opendaylight.yangtools.version>5.0.5</org.opendaylight.yangtools.version>\r
- <version.groovy>3.0.6</version.groovy>\r
- <version.spock-core>2.0-M2-groovy-3.0</version.spock-core>\r
+ <yangtools.version>5.0.6</yangtools.version>\r
+ <swagger.version>2.1.4</swagger.version>\r
+ <groovy.version>3.0.6</groovy.version>\r
+ <spock-core.version>2.0-M2-groovy-3.0</spock-core.version>\r
</properties>\r
\r
<dependencyManagement>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-compiler-plugin</artifactId>\r
<configuration>\r
- <source>${version.java.compiler}</source>\r
- <target>${version.java.compiler}</target>\r
+ <source>${java.version}</source>\r
+ <target>${java.version}</target>\r
</configuration>\r
</plugin>\r
\r