Move to more current camel version
[aai/data-router.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 99bca06..88db922 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,4 @@
-<!--
+<!--
 ============LICENSE_START=======================================================
 org.onap.aai
 ================================================================================
@@ -25,32 +25,33 @@ limitations under the License.
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
-      <version>1.5.10.RELEASE</version>
+      <version>1.5.19.RELEASE</version>
       <relativePath />
    </parent>
    <groupId>org.onap.aai.data-router</groupId>
    <artifactId>data-router</artifactId>
-   <version>1.2.0-SNAPSHOT</version>
+   <version>1.4.0-SNAPSHOT</version>
    <name>aai-data-router</name>
 
    <properties>
       <java.version>1.8</java.version>
-      <camel-spring-boot.version>2.20.0</camel-spring-boot.version>
+      <camel-spring-boot.version>2.21.5</camel-spring-boot.version>
       <docker.location>${basedir}/target</docker.location>
       <absoluteDistFilesRoot>/appl/${project.artifactId}</absoluteDistFilesRoot>
-      <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot> 
-         property, below. PLEASE, NOTE: If your ${project.version} is a "-SNAPSHOT" 
-         version, THIS will be used as your directory structure. If you do NOT want 
-         this, simply remove the "-SNAPSHOT" from your <version> declaration at the 
+      <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot>
+         property, below. PLEASE, NOTE: If your ${project.version} is a "-SNAPSHOT"
+         version, THIS will be used as your directory structure. If you do NOT want
+         this, simply remove the "-SNAPSHOT" from your <version> declaration at the
          top of pom.xml -->
       <distFilesRoot>/appl/${project.artifactId}/${project.version}</distFilesRoot>
       <!-- For SOA Cloud Installation -->
       <installOwnerUser>aaiadmin</installOwnerUser>
       <installOwnerGroup>aaiadmin</installOwnerGroup>
       <ownerManagementGroup>com.att.csid.lab</ownerManagementGroup>
+      <version.aai-schema>1.0.0</version.aai-schema>
 
-      <!-- Port Selection. A value of 0 will allow for dynamic port selection. 
-         For local testing, you may choose to hardcode this value to something like 
+      <!-- Port Selection. A value of 0 will allow for dynamic port selection.
+         For local testing, you may choose to hardcode this value to something like
          8080 -->
       <serverPort>0</serverPort>
       <sslport>9502</sslport>
@@ -67,6 +68,9 @@ limitations under the License.
       <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero>
       <sonar.projectVersion>${project.version}</sonar.projectVersion>
       <logback.version>1.2.3</logback.version>
+      <version.com.google.guava>16.0.1</version.com.google.guava>
+      <shemaUnpackVersion>onap</shemaUnpackVersion>
+      <jacoco.line.coverage.limit>0.58</jacoco.line.coverage.limit>
    </properties>
 
    <dependencies>
@@ -92,7 +96,7 @@ limitations under the License.
       <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-core</artifactId>
-         <version>2.20.1</version>
+         <version>${camel-spring-boot.version}</version>
       </dependency>
       <dependency>
          <groupId>org.apache.camel</groupId>
@@ -101,14 +105,23 @@ limitations under the License.
       <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-cxf</artifactId>
-         <version>2.20.1</version>
+         <version>${camel-spring-boot.version}</version>
       </dependency>
       <!-- Spring dependencies -->
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
-
+         <exclusions>
+           <exclusion>
+             <groupId>org.springframework.boot</groupId>
+             <artifactId>spring-boot-starter-tomcat</artifactId>
+           </exclusion>
+         </exclusions>
       </dependency>
+        <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-jetty</artifactId>
+               </dependency>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
@@ -120,7 +133,7 @@ limitations under the License.
       <dependency>
          <groupId>javax.ws.rs</groupId>
          <artifactId>javax.ws.rs-api</artifactId>
-         <version>2.0.1</version>
+         <version>2.1</version>
       </dependency>
       <dependency>
          <groupId>org.powermock</groupId>
@@ -129,6 +142,12 @@ limitations under the License.
          <scope>test</scope>
       </dependency>
 
+     <dependency>
+       <groupId>org.assertj</groupId>
+       <artifactId>assertj-core</artifactId>
+       <version>3.10.0</version>
+       <scope>test</scope>
+     </dependency>
       <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-api-mockito</artifactId>
@@ -150,29 +169,26 @@ limitations under the License.
          <scope>test</scope>
       </dependency>
       <dependency>
-         <groupId>dom4j</groupId>
-         <artifactId>dom4j</artifactId>
-         <version>1.6.1</version>
-         <scope>provided</scope>
-      </dependency>
+                 <groupId>org.dom4j</groupId>
+                 <artifactId>dom4j</artifactId>
+                 <scope>provided</scope>
+                 <version>2.1.1</version>
+         </dependency>
 
       <dependency>
          <groupId>com.att.aft</groupId>
          <artifactId>dme2</artifactId>
-         <version>3.1.200</version>
+         <version>3.1.200-oss</version>
          <scope>provided</scope>
       </dependency>
-      <dependency>
-         <groupId>org.onap.aai.aai-common</groupId>
-         <artifactId>aai-schema</artifactId>
-         <version>1.2.2-SNAPSHOT</version>
-      </dependency>
+
       <dependency>
          <groupId>org.onap.aai.router-core</groupId>
          <artifactId>router-core</artifactId>
-         <version>1.2.0-SNAPSHOT</version>
+         <version>1.4.0-SNAPSHOT</version>
       </dependency>
 
+   
       <dependency>
          <groupId>org.json</groupId>
          <artifactId>json</artifactId>
@@ -205,16 +221,86 @@ limitations under the License.
       <dependency>
          <groupId>org.onap.aai</groupId>
          <artifactId>rest-client</artifactId>
-         <version>1.1.0</version>
+         <version>1.2.1</version>
       </dependency>
 
-
+    <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>${version.com.google.guava}</version>
+      </dependency>
 
    </dependencies>
 
    <build>
       <finalName>${project.artifactId}</finalName>
       <plugins>
+        <!-- jacoco-maven-plugin provides the basic report creation during unit testing, such as code-coverage, sonar, etc. -->
+         <plugin>
+            <groupId>org.jacoco</groupId>
+            <artifactId>jacoco-maven-plugin</artifactId>
+            <executions>
+               <!-- Prepares the property pointing to the JaCoCo runtime agent which
+                    is passed as VM argument when Maven the Surefire plugin is executed. -->
+               <execution>
+                  <id>pre-unit-test</id>
+                  <goals>
+                     <goal>prepare-agent</goal>
+                  </goals>
+                  <configuration>
+                     <!-- Sets the path to the file which contains the execution data. -->
+                     <destFile>${sonar.jacoco.reportPath}</destFile>
+                     <propertyName>surefireArgLine</propertyName>
+                  </configuration>
+               </execution>
+               <!-- Ensures that the code coverage report for unit tests is created
+                    after unit tests have been run. -->
+               <execution>
+                  <id>post-unit-test</id>
+                  <phase>test</phase>
+                  <goals>
+                     <goal>report</goal>
+                  </goals>
+                  <configuration>
+                     <!-- Sets the path to the file which contains the execution data. -->
+                     <dataFile>${sonar.jacoco.reportPath}</dataFile>
+                     <!-- Sets the output directory for the code coverage report. -->
+                     <outputDirectory>${jacoco.path}</outputDirectory>
+                  </configuration>
+               </execution>
+               <!-- Prepares the property pointing to the JaCoCo runtime agent which
+                    is passed as VM argument when Maven the Failsafe plugin is executed. -->
+               <execution>
+                  <id>pre-integration-test</id>
+                  <phase>pre-integration-test</phase>
+                  <goals>
+                     <goal>prepare-agent</goal>
+                  </goals>
+                  <configuration>
+                     <!-- Sets the path to the file which contains the execution data. -->
+                     <destFile>${sonar.jacoco.itReportPath}</destFile>
+                     <!-- Sets the name of the property containing the settings for JaCoCo
+                          runtime agent. -->
+                     <propertyName>failsafeArgLine</propertyName>
+                  </configuration>
+               </execution>
+               <!-- Ensures that the code coverage report for integration tests after
+                    integration tests have been run. -->
+               <execution>
+                  <id>post-integration-test</id>
+                  <phase>post-integration-test</phase>
+                  <goals>
+                     <goal>report</goal>
+                  </goals>
+                  <configuration>
+                     <!-- Sets the path to the file which contains the execution data. -->
+                     <dataFile>${sonar.jacoco.itReportPath}/</dataFile>
+                     <!-- Sets the output directory for the code coverage report. -->
+                     <outputDirectory>${jacoco.itPath}</outputDirectory>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
          <!-- Checkstyle plugin - used to report on compliance with -->
          <!-- the Google style guide. -->
          <plugin>
@@ -242,6 +328,18 @@ limitations under the License.
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
+         <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>2.21.0</version>
+            <configuration>
+                <systemPropertyVariables>
+                    <APP_HOME>${project.basedir}</APP_HOME>
+                    <CONFIG_HOME>${project.basedir}/src/test/resources/config</CONFIG_HOME>
+                    <SERVICE_BEANS>${project.basedir}/src/test/resources/spring-beans</SERVICE_BEANS>
+                    <testShemaUnpackVersion>${shemaUnpackVersion}</testShemaUnpackVersion>
+                </systemPropertyVariables>
+            </configuration>
+         </plugin>
          <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-resources-plugin</artifactId>
@@ -278,11 +376,43 @@ limitations under the License.
                               <include>**/*</include>
                            </includes>
                         </resource>
+                        <resource>
+                           <directory>${basedir}/config</directory>
+                           <filtering>true</filtering>
+                           <includes>
+                              <include>schema/**</include>
+                           </includes>
+                        </resource>
                      </resources>
                   </configuration>
                </execution>
             </executions>
          </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>unpack</id>
+                <phase>initialize</phase>
+                <goals>
+                  <goal>unpack</goal>
+                </goals>
+                <configuration>
+                  <artifactItems>
+                    <artifactItem>
+                      <groupId>org.onap.aai.schema-service</groupId>
+                      <artifactId>aai-schema</artifactId>
+                      <version>${version.aai-schema}</version>
+                      <type>jar</type>
+                      <includes>/${shemaUnpackVersion}/oxm/</includes>
+                      <outputDirectory>${project.build.directory}/oxm</outputDirectory>
+                    </artifactItem>
+                  </artifactItems>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
          <plugin>
             <groupId>com.spotify</groupId>
             <artifactId>docker-maven-plugin</artifactId>
@@ -299,12 +429,27 @@ limitations under the License.
             </configuration>
          </plugin>
          <!-- license plugin -->
-         <!-- Uncomment this to add a license header to every source file 
-            <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> 
-            <version>3.0</version> <configuration> <header>License.txt</header> <includes> 
-            <include>src/main/java/**</include> <include>src/test/java/**</include> </includes> 
-            </configuration> <executions> <execution> <goals> <goal>format</goal> </goals> 
-            <phase>process-sources</phase> </execution> </executions> </plugin> -->
+         <!-- Uncomment this to add a license header to every source file
+  <plugin>
+    <groupId>com.mycila</groupId>
+    <artifactId>license-maven-plugin</artifactId>
+    <version>3.0</version>
+    <configuration>
+      <header>License.txt</header>
+      <includes>
+        <include>src/main/java/**</include>
+        <include>src/test/java/**</include>
+      </includes>
+    </configuration>
+    <executions>
+      <execution>
+        <goals>
+          <goal>format</goal>
+        </goals>
+        <phase>process-sources</phase>
+      </execution>
+    </executions>
+  </plugin> -->
          <plugin>
             <groupId>org.sonatype.plugins</groupId>
             <artifactId>nexus-staging-maven-plugin</artifactId>
@@ -346,6 +491,28 @@ limitations under the License.
                      </destFile>
                   </configuration>
                </execution>
+               <execution>
+                      <id>default-check</id>
+                      <goals>
+                          <goal>check</goal>
+                      </goals>
+                      <configuration>
+                         <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile>
+                          <rules>
+                              <!--  implementation is needed only for Maven 2  -->
+                             <rule implementation="org.jacoco.maven.RuleConfiguration">
+                                 <element>BUNDLE</element>
+                                  <limits>
+                                    <limit implementation="org.jacoco.report.check.Limit">
+                                          <counter>LINE</counter>
+                                         <value>COVEREDRATIO</value>
+                                         <minimum>${jacoco.line.coverage.limit}</minimum>
+                                     </limit>
+                                  </limits>
+                              </rule>
+                          </rules>
+                      </configuration>
+                  </execution>
             </executions>
          </plugin>
 
@@ -365,7 +532,7 @@ limitations under the License.
          <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>4.5</version>
+            <version>4.5.5</version>
          </dependency>
          <dependency>
             <groupId>org.apache.httpcomponents</groupId>