Start the 4.0.2 development series
[odlparent.git] / odlparent / pom.xml
index f33cdf2e9ced9e832cc261dc395122eac9b93358..1061e40ccb8e9dc90c572aa68b5173b0710b8bb8 100644 (file)
@@ -13,7 +13,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>4.0.0-SNAPSHOT</version>
+    <version>4.0.2-SNAPSHOT</version>
     <relativePath>../odlparent-lite</relativePath>
   </parent>
 
@@ -48,9 +48,7 @@
     <java.version.target>${maven.compiler.target}</java.version.target>
 
     <!-- Used in openflowplugin -->
-    <enforcer.version>3.0.0-M1</enforcer.version>
-    <!-- Used in neutron, ovsdb -->
-    <jacoco.version>0.8.2</jacoco.version>
+    <enforcer.version>3.0.0-M2</enforcer.version>
     <!-- Used in controller, genius, infrautils, netconf, netvirt, ovsdb, serviceutils -->
     <karaf.version>4.2.1</karaf.version>
     <!-- Used in bgpcep, lispflowmapping -->
     <!-- Only used internally -->
     <bouncycastle.version>1.60</bouncycastle.version>
 
+    <!-- JaCoCo configuration, by default tied to Sonar configuration, but can be overridden separately
+         to allow projects to report Sonar values from the entire project. -->
+    <jacoco.destFile>${project.build.directory}/code-coverage/jacoco.exec</jacoco.destFile>
+
     <!-- Default Sonar configuration -->
     <sonar-jacoco-listeners.version>3.8</sonar-jacoco-listeners.version>
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
-    <sonar.jacoco.reportPath>${project.build.directory}/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>${jacoco.destFile}</sonar.jacoco.reportPath>
     <sonar.jacoco.itReportPath>${project.build.directory}/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+
     <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
     <sonar.exclusions>**/gen/**,**/generated-sources/**,**/generated-test-sources/**,**/yang-gen/**,**/yang-gen-config/**,**/yang-gen-sal/**,**/yang-gen-code/**,**/pax/**</sonar.exclusions>
 
     <!-- Opt-in code quality checks -->
     <pmd.cpd.fail>false</pmd.cpd.fail>                  <!-- Copy/paste detection -->
     <duplicate-finder.skip>true</duplicate-finder.skip> <!-- Classpath duplicates -->
+
+    <!-- Redirect test output to files (overridable) -->
+    <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
   </properties>
 
   <dependencyManagement>
@@ -79,7 +85,7 @@
       <dependency>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-artifacts</artifactId>
-        <version>4.0.0-SNAPSHOT</version>
+        <version>4.0.2-SNAPSHOT</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
         <version>2.20.1</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-inline</artifactId>
+        <version>2.20.1</version>
+        <scope>test</scope>
+      </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest-core</artifactId>
         <!-- Generates immutable implementations, builders, the works -->
         <groupId>org.immutables</groupId>
         <artifactId>value</artifactId>
-        <version>2.6.3</version>
+        <version>2.7.1</version>
         <!-- Must be provided; scope=test here breaks APT in Eclipse :( -->
         <scope>provided</scope>
       </dependency>
         <artifactId>logback-classic</artifactId>
         <version>1.2.3</version>
       </dependency>
+
+      <!-- log4j2 -->
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-bom</artifactId>
+        <version>2.11.1</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
+
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
       <dependency>
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.antlr</artifactId>
-        <version>2.7.1</version>
+        <version>2.7.3</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.core</artifactId>
-        <version>2.7.1</version>
+        <version>2.7.3</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.moxy</artifactId>
-        <version>2.7.1</version>
+        <version>2.7.3</version>
       </dependency>
       <dependency>
         <groupId>javax.validation</groupId>
         <artifactId>uncommons-maths</artifactId>
         <version>1.2.2a</version>
       </dependency>
-      <dependency>
-        <groupId>com.google.protobuf</groupId>
-        <artifactId>protobuf-java</artifactId>
-        <version>2.5.0</version>
-      </dependency>
 
       <!-- Aeron, required by Akka -->
       <dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-core</artifactId>
-        <version>2.6.1</version>
+        <version>2.6.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-matchers</artifactId>
-        <version>2.6.1</version>
+        <version>2.6.2</version>
         <scope>test</scope>
       </dependency>
       <!-- FIXME: remove this once we have migrated over -->
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-legacy</artifactId>
-        <version>2.6.1</version>
+        <version>2.6.2</version>
         <scope>test</scope>
       </dependency>
 
         <version>1</version>
         <optional>true</optional>
       </dependency>
-      <dependency>
-        <groupId>org.ops4j.pax.cdi</groupId>
-        <artifactId>pax-cdi-api</artifactId>
-        <version>1.0.0</version>
-        <optional>true</optional>
-      </dependency>
 
       <!-- Cassandra -->
       <dependency>
         <artifactId>org.apache.aries.blueprint.core</artifactId>
         <version>1.9.0</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.aries.blueprint</groupId>
+        <artifactId>blueprint-maven-plugin-annotation</artifactId>
+        <version>1.3.0</version>
+        <optional>true</optional>
+      </dependency>
 
       <!-- Apache SSHD with netty -->
       <dependency>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>checkstyle</artifactId>
-              <version>4.0.0-SNAPSHOT</version>
+              <version>4.0.2-SNAPSHOT</version>
             </dependency>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>odl-license</artifactId>
-              <version>4.0.0-SNAPSHOT</version>
+              <version>4.0.2-SNAPSHOT</version>
             </dependency>
             <dependency>
               <groupId>com.github.sevntu-checkstyle</groupId>
         </plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.7.0</version>
+          <version>3.8.0</version>
           <configuration>
             <source>1.8</source>
             <target>1.8</target>
             <compilerArgs>
               <arg>-parameters</arg>
               <arg>-Xlint:deprecation</arg>
+              <arg>-Xlint:unchecked</arg>
             </compilerArgs>
           </configuration>
         </plugin>
         </plugin>
         <plugin>
           <artifactId>maven-failsafe-plugin</artifactId>
-          <version>2.20.1</version>
+          <version>2.22.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-invoker-plugin</artifactId>
-          <version>2.0.0</version>
+          <version>3.1.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>3.0.2</version>
+          <version>3.1.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-dependency-plugin</artifactId>
                   <artifactItem>
                     <groupId>org.opendaylight.odlparent</groupId>
                     <artifactId>odl-license</artifactId>
-                    <version>4.0.0-SNAPSHOT</version>
+                    <version>4.0.2-SNAPSHOT</version>
                   </artifactItem>
                 </artifactItems>
                 <outputDirectory>${project.build.outputDirectory}</outputDirectory>
         </plugin>
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>3.0.1</version>
+          <version>3.1.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-shade-plugin</artifactId>
-          <version>3.1.0</version>
+          <version>3.2.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-source-plugin</artifactId>
         </plugin>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.18.1</version>
+          <version>2.22.0</version>
           <configuration>
-            <redirectTestOutputToFile>true</redirectTestOutputToFile>
+            <redirectTestOutputToFile>${maven.test.redirectTestOutputToFile}</redirectTestOutputToFile>
             <trimStackTrace>false</trimStackTrace>
           </configuration>
         </plugin>
           <groupId>org.apache.aries.blueprint</groupId>
           <artifactId>blueprint-maven-plugin</artifactId>
           <version>1.10.0</version>
+          <!-- TODO remove dependencies when we bump from 1.10.0 to 1.11.0 (or 1.10.1);
+             see https://jira.opendaylight.org/browse/ODLPARENT-167 & https://jira.apache.org/jira/browse/ARIES-1826 -->
+          <dependencies>
+            <dependency>
+              <groupId>org.apache.xbean</groupId>
+              <artifactId>xbean-finder-shaded</artifactId>
+              <version>4.9</version>
+            </dependency>
+          </dependencies>
           <configuration>
             <scanPaths>
               <scanPath>org.opendaylight</scanPath>
             </scanPaths>
-            <generatedDir>org/opendaylight/blueprint/</generatedDir>
           </configuration>
           <executions>
             <execution>
         <plugin>
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.5.0</version>
+          <version>4.0.0</version>
           <extensions>true</extensions>
           <configuration>
             <instructions>
                    so that the build doesn't fail if there is no .../.git/ - so git.properties is effectively optional;
                    and so the '-' there is needed to make the maven-bundle-plugin if that resource is not present.  -->
               <Include-Resource>{maven-resources},${project.build.directory}/classes/LICENSE,META-INF/git.properties=-${project.build.directory}/classes/META-INF/git.properties</Include-Resource>
+
+              <!-- Based on https://dev.eclipse.org/mhonarc/lists/equinox-dev/msg01088.html we do want
+                   to generate Import-Service and Export-Service headers. -->
+              <_removeheaders>Import-Service,Export-Service</_removeheaders>
             </instructions>
           </configuration>
         </plugin>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>findbugs</artifactId>
-              <version>4.0.0-SNAPSHOT</version>
+              <version>4.0.2-SNAPSHOT</version>
             </dependency>
           </dependencies>
           <configuration>
             <dependency>
               <groupId>com.github.spotbugs</groupId>
               <artifactId>spotbugs</artifactId>
-              <version>3.1.6</version>
+              <version>3.1.7</version>
             </dependency>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>spotbugs</artifactId>
-              <version>4.0.0-SNAPSHOT</version>
+              <version>4.0.2-SNAPSHOT</version>
             </dependency>
           </dependencies>
           <configuration>
                     <versionRange>[0.7.0,)</versionRange>
                     <goals>
                       <goal>prepare-agent</goal>
-                      <goal>report</goal>
                     </goals>
                   </pluginExecutionFilter>
                   <action>
         <plugin>
           <groupId>org.jacoco</groupId>
           <artifactId>jacoco-maven-plugin</artifactId>
-          <version>${jacoco.version}</version>
           <configuration>
             <!-- Note: This exclusion list should match <sonar.exclusions>
                        property above -->
               <goal>prepare-agent</goal>
             </goals>
             <configuration>
-              <destFile>${sonar.jacoco.reportPath}</destFile>
-            </configuration>
-          </execution>
-          <execution>
-            <id>post-unit-test</id>
-            <goals>
-              <goal>report</goal>
-            </goals>
-            <configuration>
-              <dataFile>${sonar.jacoco.reportPath}</dataFile>
+              <destFile>${jacoco.destFile}</destFile>
             </configuration>
           </execution>
         </executions>