Update Architecture
[clamp.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 0ea91c1..449b71a 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.2-SNAPSHOT</version>
                <name>clamp</name>
 
                <parent>
@@ -49,8 +48,6 @@
            "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
 
@@ -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>
                                <sonar.projectVersion>${project.version}</sonar.projectVersion>
 
                                <docker.push.registry>localhost:5000</docker.push.registry>
-                               <skip.docker.build>true</skip.docker.build>
-                               <skip.docker.push>true</skip.docker.push>
+                               <docker.skip.build>true</docker.skip.build>
+                               <docker.skip.push>true</docker.skip.push>
+                               <docker.skip.tag>true</docker.skip.tag>
                                <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>
                                <!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
                                <dependency>
-                                       <groupId>org.codehaus.plexus</groupId>
-                                       <artifactId>plexus-utils</artifactId>
-                                       <version>3.0.24</version>
+                                               <groupId>org.codehaus.plexus</groupId>
+                                               <artifactId>plexus-utils</artifactId>
+                                               <version>3.0.24</version>
                                </dependency>
                                <dependency>
-                                       <groupId>commons-fileupload</groupId>
-                                       <artifactId>commons-fileupload</artifactId>
-                                       <version>1.3.3</version>
+                                               <groupId>commons-fileupload</groupId>
+                                               <artifactId>commons-fileupload</artifactId>
+                                               <version>1.3.3</version>
                                </dependency>
                                <dependency>
-                                       <groupId>org.jboss.spec.javax.ws.rs</groupId>
-                                       <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
-                                       <version>1.0.1.Final</version>
+                                               <groupId>org.jboss.spec.javax.ws.rs</groupId>
+                                               <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
+                                               <version>1.0.1.Final</version>
                                </dependency>
                                <!-- Remove the MYSQL connector and replace it by Mariadb -->
                                <dependency>
                                                <version>1.3.0</version>
                                </dependency>
                                <dependency>
-                                       <groupId>org.onap.sdc.sdc-tosca</groupId>
-                                       <artifactId>sdc-tosca</artifactId>
-                                       <version>1.3.3</version>
+                                               <groupId>org.onap.sdc.sdc-tosca</groupId>
+                                               <artifactId>sdc-tosca</artifactId>
+                                               <version>1.3.0</version>
+                               </dependency>
+                               <!-- 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>
 
                                                                <filtering>false</filtering>
                                                                <targetPath>https</targetPath>
                                                </testResource>
-                                         <testResource>
+                                               <testResource>
                                                                <directory>src/test/resources/example/sdc</directory>
                                                                <includes>
                                                                                <include>**.csar</include>
                                </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>
                                                                                <skipNexusStagingDeployMojo>${skip.staging.artifacts}</skipNexusStagingDeployMojo>
                                                                </configuration>
                                                </plugin>
-                                               <plugin>
-                                                               <groupId>com.spotify</groupId>
-                                                               <artifactId>docker-maven-plugin</artifactId>
-                                                               <version>1.0.0</version>
-                                                               <configuration>
-                                                                               <imageName>onap/clamp</imageName>
-                                                                               <dockerDirectory>src/main/docker</dockerDirectory>
-                                                                               <serverId>docker-hub</serverId>
-                                                                               <imageTags>
-                                                                                               <imageTag>latest</imageTag>
-                                                                                               <imageTag>${project.docker.latesttagtimestamp.version}</imageTag>
-                                                                                               <imageTag>${project.docker.latesttag.version}</imageTag>
-                                                                               </imageTags>
-                                                                               <forceTags>true</forceTags>
-                                                                               <resources>
-                                                                                               <resource>
-                                                                                                               <targetPath>/</targetPath>
-                                                                                                               <directory>${project.build.directory}</directory>
-                                                                                                               <include>${project.build.finalName}.jar</include>
-                                                                                               </resource>
-                                                                                               <resource>
-                                                                                                               <targetPath>/</targetPath>
-                                                                                                               <directory>${project.build.directory}</directory>
-                                                                                                               <include>etc/config/**</include>
-                                                                                               </resource>
-                                                                                               <resource>
-                                                                                                               <targetPath>/</targetPath>
-                                                                                                               <directory>${project.build.directory}</directory>
-                                                                                                               <include>etc/keystore/**</include>
-                                                                                               </resource>
-                                                                               </resources>
-                                                               </configuration>
-                                                               <executions>
-                                                                               <execution>
-                                                                                               <id>build-image</id>
-                                                                                               <phase>package</phase>
-                                                                                               <goals>
-                                                                                                               <goal>build</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <skipDockerBuild>${skip.docker.build}</skipDockerBuild>
-                                                                                                               <buildArgs>
-                                                                                                                               <http_proxy>${env.HTTP_PROXY}</http_proxy>
-                                                                                                                               <https_proxy>${env.HTTPS_PROXY}</https_proxy>
-                                                                                                               </buildArgs>
-                                                                                               </configuration>
-                                                                               </execution>
 
-                                                                               <execution>
-                                                                                               <id>tag-image-latest-timestamp</id>
-                                                                                               <phase>package</phase>
-                                                                                               <goals>
-                                                                                                               <goal>tag</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <image>onap/clamp</image>
-                                                                                                               <newName>${docker.push.registry}/onap/clamp:${project.docker.latesttagtimestamp.version}</newName>
-                                                                                                               <skipDockerTag>${skip.docker.push}</skipDockerTag>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                                               <execution>
-                                                                                               <id>push-image-latest-timestamp</id>
-                                                                                               <phase>deploy</phase>
-                                                                                               <goals>
-                                                                                                               <goal>push</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <imageName>${docker.push.registry}/onap/clamp:${project.docker.latesttagtimestamp.version}</imageName>
-                                                                                                               <skipDockerPush>${skip.docker.push}</skipDockerPush>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                                               <execution>
-                                                                                               <id>tag-image-latest</id>
-                                                                                               <phase>package</phase>
-                                                                                               <goals>
-                                                                                                               <goal>tag</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <image>onap/clamp</image>
-                                                                                                               <newName>${docker.push.registry}/onap/clamp:${project.docker.latesttag.version}</newName>
-                                                                                                               <skipDockerTag>${skip.docker.push}</skipDockerTag>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                                               <execution>
-                                                                                               <id>push-image-latest</id>
-                                                                                               <phase>deploy</phase>
-                                                                                               <goals>
-                                                                                                               <goal>push</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <imageName>${docker.push.registry}/onap/clamp:${project.docker.latesttag.version}</imageName>
-                                                                                                               <skipDockerPush>${skip.docker.push}</skipDockerPush>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                                               <execution>
-                                                                                               <id>tag-image</id>
-                                                                                               <phase>package</phase>
-                                                                                               <goals>
-                                                                                                               <goal>tag</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <image>onap/clamp</image>
-                                                                                                               <newName>${docker.push.registry}/onap/clamp:latest</newName>
-                                                                                                               <skipDockerTag>${skip.docker.push}</skipDockerTag>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                                               <execution>
-                                                                                               <id>push-image</id>
-                                                                                               <phase>deploy</phase>
-                                                                                               <goals>
-                                                                                                               <goal>push</goal>
-                                                                                               </goals>
-                                                                                               <configuration>
-                                                                                                               <imageName>${docker.push.registry}/onap/clamp:latest</imageName>
-                                                                                                               <skipDockerPush>${skip.docker.push}</skipDockerPush>
-                                                                                               </configuration>
-                                                                               </execution>
-                                                               </executions>
-                                               </plugin>
                                                <plugin>
                                                                <groupId>org.apache.maven.plugins</groupId>
                                                                <artifactId>maven-surefire-plugin</artifactId>
                                                                                                </configuration>
                                                                                </execution>
                                                                </executions>
-
                                                </plugin>
                                                <plugin>
                                                                <groupId>io.fabric8</groupId>
                                                                <artifactId>docker-maven-plugin</artifactId>
-                                                               <version>0.16.5</version>
+                                                               <version>0.26.0</version>
                                                                <configuration>
                                                                                <verbose>true</verbose>
                                                                                <apiVersion>1.23</apiVersion>
                                                                                                                                </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>
+                                                                                               <image>
+                                                                                                               <name>onap/clamp</name>
+                                                                                                               <alias>onap-clamp</alias>
+                                                                                                               <build>
+                                                                                                                               <cleanup>true</cleanup>
+                                                                                                                               <tags>
+                                                                                                                                               <tag>latest</tag>
+                                                                                                                                               <tag>${project.docker.latesttagtimestamp.version}</tag>
+                                                                                                                                               <tag>${project.docker.latesttag.version}</tag>
+                                                                                                                               </tags>
+                                                                                                                               <!-- A relative path is looked up in ${project.basedir}/src/main/docker by default -->
+                                                                                                                               <dockerFile>Dockerfile</dockerFile>
+                                                                                                                               <assembly>
+                                                                                                                                               <descriptor>assembly/clamp-files.xml</descriptor>
+                                                                                                                                               <name>onap-clamp</name>
+                                                                                                                               </assembly>
+                                                                                                               </build>
+                                                                                               </image>
                                                                                </images>
                                                                                <skip>${skipITs}</skip>
                                                                </configuration>
-
                                                                <executions>
+                                                                               <execution>
+                                                                                               <id>generate-images</id>
+                                                                                               <phase>install</phase>
+                                                                                               <goals>
+                                                                                                               <goal>build</goal>
+                                                                                               </goals>
+                                                                                               <configuration>
+                                                                                                               <image>onap/clamp</image>
+                                                                                               </configuration>
+                                                                               </execution>
+                                                                               <execution>
+                                                                                               <id>push-images</id>
+                                                                                               <phase>deploy</phase>
+                                                                                               <goals>
+                                                                                                               <goal>push</goal>
+                                                                                               </goals>
+                                                                                               <configuration>
+                                                                                                               <image>onap/clamp</image>
+                                                                                               </configuration>
+                                                                               </execution>
                                                                                <execution>
                                                                                                <id>docker-start-for-it</id>
                                                                                                <phase>pre-integration-test</phase>
                                                <id>docker</id>
                                                <properties>
                                                                <skip.staging.artifacts>true</skip.staging.artifacts>
-                                                               <skip.docker.build>false</skip.docker.build>
-                                                               <skip.docker.tag>false</skip.docker.tag>
-                                                               <skip.docker.push>false</skip.docker.push>
+                                                               <docker.skip.build>false</docker.skip.build>
+                                                               <docker.skip.tag>false</docker.skip.tag>
+                                                               <docker.skip.push>false</docker.skip.push>
                                                </properties>
                                </profile>
                </profiles>