Merge "Generate API documents"
[clamp.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 007b660..4beb6d6 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,6 @@
   limitations under the License.
   ============LICENSE_END============================================
   ===================================================================
-  ECOMP is a trademark and service mark of AT&T Intellectual Property.
 -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -27,7 +26,7 @@
                <modelVersion>4.0.0</modelVersion>
                <groupId>org.onap.clamp</groupId>
                <artifactId>clds</artifactId>
-               <version>2.0.0-SNAPSHOT</version>
+               <version>2.0.1-SNAPSHOT</version>
                <name>clamp</name>
 
                <parent>
            "mvn clean install -Dspring.config.location=classpath:application-test.properties"
 
            The application.properties contains the location of the CLAMP parameters files:
-                               - org.onap.clamp.config.files.cldsReference=classpath:/clds/clds-reference.properties
-                               - org.onap.clamp.config.files.cldsPolicyConfig=classpath:/clds/clds-policy-config.properties
                                - org.onap.clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
                                - org.onap.clamp.config.files.globalClds=classpath:/clds/globalClds.properties
 
                </description>
 
                <properties>
-                               <maven.build.timestamp.format>yyyy.MM.dd'T'hh.mm.ss'Z'</maven.build.timestamp.format>
+                               <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
                                <clamp.project.version>${project.version}</clamp.project.version>
                                <clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
                                <maven.compiler.source>1.8</maven.compiler.source>
@@ -74,7 +71,7 @@
                                <guava.version>20.0</guava.version>
                                <eelf.core.version>1.0.0</eelf.core.version>
                                <camel.version>2.20.1</camel.version>
-                               <springboot.version>1.5.10.RELEASE</springboot.version>
+                               <springboot.version>1.5.12.RELEASE</springboot.version>
 
                                <sonar.language>java</sonar.language>
                                <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@ -88,7 +85,7 @@
                                <skip.docker.build>true</skip.docker.build>
                                <skip.docker.push>true</skip.docker.push>
                                <skip.staging.artifacts>false</skip.staging.artifacts>
-                               <http.proxy></http.proxy>
+                               <python.http.proxy.param></python.http.proxy.param>
                </properties>
 
                <distributionManagement>
                                                <name>JBoss.org Maven repository</name>
                                                <url>https://repository.jboss.org/nexus/content/groups/public</url>
                                </repository>
+                               <repository>
+                                       <id>jcentral</id>
+                                       <name>bintray</name>
+                                       <url>http://jcenter.bintray.com</url>
+                                       <snapshots>
+                                       <enabled>false</enabled>
+                                       </snapshots>
+                               </repository>
                </repositories>
 
                <dependencyManagement>
                </dependencyManagement>
 
                <dependencies>
-                               <!-- Swagger requires at least v20 and policy is bringing version 14 -->
-                               <dependency>
-                                       <groupId>com.google.guava</groupId>
-                                       <artifactId>guava</artifactId>
-                                       <version>${guava.version}</version>
-                               </dependency>
-                               <dependency>
-                                       <groupId>io.swagger.core.v3</groupId>
-                                       <artifactId>swagger-jaxrs2</artifactId>
-                                       <version>${swagger.jaxrs2.version}</version>
-                               </dependency>
                                <dependency>
                                                <groupId>com.att.eelf</groupId>
                                                <artifactId>eelf-core</artifactId>
                                                <groupId>org.apache.camel</groupId>
                                                <artifactId>camel-servlet-starter</artifactId>
                                </dependency>
+                               <dependency>
+                                               <groupId>javax.xml.bind</groupId>
+                                               <artifactId>jaxb-api</artifactId>
+                                               <version>2.3.0</version>
+                               </dependency> 
                                <!-- Spring famework -->
                                <dependency>
                                                <groupId>org.springframework.boot</groupId>
                                <dependency>
                                                <groupId>org.onap.policy.engine</groupId>
                                                <artifactId>PolicyEngineAPI</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.2.0</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <groupId>com.google.guava</groupId>
                                                                                <groupId>commons-io</groupId>
                                                                                <artifactId>commons-io</artifactId>
                                                                </exclusion>
+                                                               <exclusion>
+                                                                               <artifactId>grizzly-http</artifactId>
+                                                                               <groupId>org.glassfish.grizzly</groupId>
+                                                               </exclusion>
                                                </exclusions>
                                </dependency>
                                <dependency>
                                                <groupId>org.onap.policy.common</groupId>
                                                <artifactId>ONAP-Logging</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.1.3</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <artifactId>log4j</artifactId>
                                <dependency>
                                                <groupId>org.onap.policy.engine</groupId>
                                                <artifactId>PolicyEngineUtils</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.1.3</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <artifactId>log4j</artifactId>
                                <dependency>
                                                <groupId>org.onap.policy.drools-applications</groupId>
                                                <artifactId>policy-yaml</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.1.3</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <artifactId>log4j</artifactId>
                                <dependency>
                                                <groupId>org.onap.policy.drools-applications</groupId>
                                                <artifactId>sdc</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.1.3</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <artifactId>log4j</artifactId>
                                <dependency>
                                                <groupId>org.onap.policy.drools-applications</groupId>
                                                <artifactId>aai</artifactId>
-                                               <version>1.1.0</version>
+                                               <version>1.1.3</version>
                                                <exclusions>
                                                                <exclusion>
                                                                                <artifactId>log4j</artifactId>
                                </dependency>
                                <!-- For SDC Controller -->
                                <dependency>
-                                               <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>
+                                               <groupId>org.onap.sdc.sdc-distribution-client</groupId>
                                                <artifactId>sdc-distribution-client</artifactId>
-                                               <version>1.2.2</version>
+                                               <version>1.3.0</version>
                                </dependency>
                                <dependency>
-                                       <groupId>org.openecomp.sdc.sdc-tosca</groupId>
+                                       <groupId>org.onap.sdc.sdc-tosca</groupId>
                                        <artifactId>sdc-tosca</artifactId>
-                                       <version>1.2.2</version>
+                                       <version>1.3.0</version>
                                </dependency>
-               </dependencies>
-
+                               <!-- To generate Swagger.json, swagger.html and swagger.pdf -->
+                               <dependency>
+                                       <groupId>io.springfox</groupId>
+                                       <artifactId>springfox-swagger2</artifactId>
+                                       <version>2.4.0</version>
+                                       <scope>test</scope>
+                               </dependency>
+                               <dependency>
+                                       <groupId>io.github.robwin</groupId>
+                                       <artifactId>assertj-swagger</artifactId>
+                                       <version>0.2.0</version>
+                                       <scope>test</scope>
+                               </dependency> 
+                               <dependency>
+                                       <groupId>io.github.swagger2markup</groupId>
+                                       <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
+                                       <version>1.2.0</version>
+                                       <scope>test</scope>
+                               </dependency>
+                       </dependencies>
+                       <pluginRepositories>
+                               <pluginRepository>
+                                       <snapshots>
+                                               <enabled>false</enabled>
+                                       </snapshots>
+                                       <id>jcenter-releases</id>
+                                       <name>jcenter</name>
+                                       <url>http://jcenter.bintray.com</url>
+                               </pluginRepository>
+                       </pluginRepositories>
                <build>
                                <finalName>clamp</finalName>
 
                                </resources>
 
                                <plugins>
+                                       <!-- Scan Clamp code and generate the swagger.json file with all the APIs -->
+                                       <plugin>
+                                               <groupId>com.sebastian-daschner</groupId>
+                                               <artifactId>jaxrs-analyzer-maven-plugin</artifactId>
+                                               <version>0.14</version>
+                                               <executions>
+                                                       <execution>
+                                                               <phase>test</phase>
+                                                               <goals>
+                                                                       <goal>analyze-jaxrs</goal>
+                                                               </goals>
+                                                               <configuration>
+                                                                       <backend>swagger</backend>
+                                                                       <resourcesDir>../docs/swagger/</resourcesDir>
+                                                               </configuration>
+                                                       </execution>
+                                               </executions>
+                                       </plugin>
+
+                                       <!-- Read the swagger.json file and the definition from SwaggerConfig.java;
+                                               generate a list of .adoc files containing the APIs info in more structured way  -->
+                                       <plugin>
+                                               <groupId>io.github.swagger2markup</groupId>
+                                               <artifactId>swagger2markup-maven-plugin</artifactId>
+                                               <version>1.3.1</version>
+                                               <dependencies>
+                                                       <dependency>
+                                                               <groupId>io.github.swagger2markup</groupId>
+                                                               <artifactId>swagger2markup-import-files-ext</artifactId>
+                                                               <version>1.3.1</version>
+                                                       </dependency>
+                                                       <dependency>
+                                                               <groupId>io.github.swagger2markup</groupId>
+                                                               <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
+                                                               <version>1.3.1</version>
+                                                       </dependency>
+                                               </dependencies>
+                                               <configuration>
+                                                       <swaggerInput>${project.basedir}/docs/swagger/swagger.json</swaggerInput>
+                                                       <outputDir>${project.build.directory}/asciidoc/generated</outputDir>
+                                                       <config>
+                                                               <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
+                                                       </config>
+                                               </configuration>
+                                               <executions>
+                                                       <execution>
+                                                               <phase>test</phase>
+                                                               <goals>
+                                                                       <goal>convertSwagger2markup</goal>
+                                                               </goals>
+                                                       </execution>
+                                               </executions>
+                                       </plugin>
+
+                                       <!-- Run the generated asciidoc through Asciidoctor to generate
+                                       other documentation types, such as PDFs or HTML5 -->
+                                       <plugin>
+                                               <groupId>org.asciidoctor</groupId>
+                                               <artifactId>asciidoctor-maven-plugin</artifactId>
+                                               <version>1.5.3</version>
+                                               <dependencies>
+                                                       <dependency>
+                                                               <groupId>org.asciidoctor</groupId>
+                                                               <artifactId>asciidoctorj-pdf</artifactId>
+                                                               <version>1.5.0-alpha.10.1</version>
+                                                       </dependency>
+                                                       <dependency>
+                                                               <groupId>org.jruby</groupId>
+                                                               <artifactId>jruby-complete</artifactId>
+                                                               <version>1.7.21</version>
+                                                       </dependency>
+                                               </dependencies>
+                                               <configuration>
+                                                       <sourceDirectory>${project.basedir}/src/main/resources/asciidoc</sourceDirectory>
+                                                       <sourceDocumentName>swagger.adoc</sourceDocumentName>
+                                                       <attributes>
+                                                               <doctype>book</doctype>
+                                                               <toc>left</toc>
+                                                               <toclevels>3</toclevels>
+                                                               <numbered></numbered>
+                                                               <hardbreaks></hardbreaks>
+                                                               <sectlinks></sectlinks>
+                                                               <sectanchors></sectanchors>
+                                                               <generated>${project.build.directory}/asciidoc/generated</generated>
+                                                       </attributes>
+                                               </configuration>
+
+                                               <executions>
+                                                       <execution>
+                                                               <id>output-html</id>
+                                                               <phase>test</phase>
+                                                               <goals>
+                                                                       <goal>process-asciidoc</goal>
+                                                               </goals>
+                                                               <configuration>
+                                                                       <backend>html5</backend>
+                                                                       <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+                                                                       <outputDirectory>${project.basedir}/src/main/resources/META-INF/resources/</outputDirectory>
+                                                               </configuration>
+                                                       </execution>
+                                                       <execution>
+                                                               <id>output-pdf</id>
+                                                               <phase>test</phase>
+                                                               <goals>
+                                                                       <goal>process-asciidoc</goal>
+                                                               </goals>
+                                                               <configuration>
+                                                                       <backend>pdf</backend>
+                                                                       <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+                                                               </configuration>
+                                                       </execution>
+                                               </executions>
+                                       </plugin>
                                                <plugin>
                                                                <groupId>org.codehaus.groovy.maven</groupId>
                                                                <artifactId>gmaven-plugin</artifactId>
                                                                                                                                </ports>
                                                                                                                                <workingDir>/usr/src/http-cache-app</workingDir>
                                                                                                                                <cmd>
-                                                                                                                                               <shell>./start_http_cache.sh ${http.proxy} --python_proxyaddress localhost:${docker.http-cache.port.host}</shell>
+                                                                                                                                               <shell>./start_http_cache.sh ${python.http.proxy.param} --python_proxyaddress=localhost:${docker.http-cache.port.host}</shell>
                                                                                                                                </cmd>
                                                                                                                </run>
                                                                                                </image>