Bump bouncycastle dependencies from 1.55 to 1.56
[odlparent.git] / odlparent / pom.xml
index 6020290180adee165f4ef6019de71cd2dc26de8b..86e6b7b31f3d8ad6d116bd2514250af958ce47c7 100644 (file)
     <java.version.target>${maven.compiler.target}</java.version.target>
 
     <!-- Maven plugin versions, in the 'canonical' format -->
-    <!-- Used in controller -->
-    <maven.antrun.plugin.version>1.8</maven.antrun.plugin.version>
     <!-- Used in controller, didm, neutron, openflowplugin, persistence; see also affinity -->
     <maven.bundle.version>3.0.1</maven.bundle.version>
     <!-- Used in sxp -->
     <maven.clean.plugin.version>2.6.1</maven.clean.plugin.version>
     <!-- Used in controller, didm, l2switch, lacp, persistence; see also toolkit, tsdr, ttp -->
-    <maven.compile.plugin.version>3.5.1</maven.compile.plugin.version>
-    <!-- Used in mdsal, yangtools -->
-    <maven.jar.version>3.0.0</maven.jar.version>
+    <maven.compile.plugin.version>3.6.1</maven.compile.plugin.version>
     <!-- Used in controller, coretutorials, mdsal, snbi, yangtools -->
-    <maven.javadoc.version>2.10.3</maven.javadoc.version>
+    <maven.javadoc.version>2.10.4</maven.javadoc.version>
     <!-- Used in snmp -->
-    <maven.plugin.version>3.4</maven.plugin.version>
+    <maven.plugin.version>3.5</maven.plugin.version>
     <!-- Used in neutron, of-config, tsdr, yangtools -->
     <!-- Later versions break tests in downstream projects -->
     <maven.surefire.version>2.18.1</maven.surefire.version>
     <!-- Used in affinity, controller, nemo, opendove, snmp4sdn -->
     <enunciate.version>1.31</enunciate.version>
     <!-- Used in affinity, coretutorials, netide -->
-    <exam.version>4.4.0</exam.version>
+    <exam.version>4.10.0</exam.version>
     <!-- Used in affinity, controller, neutron, of-config; see also snmp4sdn -->
     <!-- Later versions break tests in downstream projects -->
     <failsafe.version>2.18.1</failsafe.version>
-    <!--
-        Regression in jacoco-plugin 0.7.5 prevents us from upgrading to it
-        http://jira.xwiki.org/browse/XCOMMONS-821
-
-        Additionally we need to stay on jacoco 0.7.2.201409121644. Future
-        versions appear to have issues picking up code coverage for projects
-        that use PowerMock.
-        https://github.com/jayway/powermock/issues/564
-    -->
     <!-- Used in controller, netvirt, neutron, of-config, ovsdb, persistence, snmp4sdn, vtn; see also usc -->
-    <jacoco.version>0.7.2.201409121644</jacoco.version>
+    <jacoco.version>0.7.7.201606060606</jacoco.version>
     <!-- Used in aaa, controller, coretutorials, integration/distribution, l2switch, lacp, lispflowmapping, netide,
          nic, openflowplugin, ovsdb, persistence, sfc, snbi, snmp4sdn?, sxp, topoprocessing, unimgr, vtn -->
     <karaf.version>3.0.8</karaf.version>
+    <karaf4.version>4.0.7</karaf4.version>
+    <karaf4.plugin.version>4.0.8-odl</karaf4.plugin.version>
     <!-- Used in lispflowmapping, snmp4sdn, vtn -->
     <projectinfo>2.8.1</projectinfo>
     <!-- Used in of-config; see also snmp4sdn -->
 
     <!-- Supporting Libraries -->
     <!-- Used by controller -->
-    <bouncycastle.version>1.54</bouncycastle.version>
+    <bouncycastle.version>1.56</bouncycastle.version>
 
     <!-- Used by controller, snbi; see also centinel, dlux, toolkit -->
     <osgi.core.version>5.0.0</osgi.core.version>
 
-    <akka.version>2.4.7</akka.version>
+    <akka.version>2.4.17</akka.version>
     <scala.version>2.11</scala.version>
     <scala.micro.version>8</scala.micro.version>
     <leveldb.version>0.7</leveldb.version>
     <!-- Default Sonar configuration -->
     <sonar-jacoco-listeners.version>2.4</sonar-jacoco-listeners.version>
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
-    <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.reportPath>${project.build.directory}/code-coverage/jacoco.exec</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/**,**/yang-gen**,**/pax/**</sonar.exclusions>
+    <sonar.exclusions>**/gen/**,**/generated-sources/**,**/generated-test-sources/**,**/yang-gen/**,**/yang-gen-config/**,**/yang-gen-sal/**,**/yang-gen-code/**,**/pax/**</sonar.exclusions>
 
     <pmd.cpd.fail>false</pmd.cpd.fail>
   </properties>
          <version>1.3.0</version>
          <scope>test</scope>
       </dependency>
+      <!-- Bug 7662: TODO eventually remove mockito-all, because its use is now forbidden via a new rule of maven-enforcer-plugin below
+                     It wasn't immediately removed together with the introduction of the maven-enforcer-plugin, because while we transition
+                     to replace all uses of mockito-all by mockito-core in all of ODL downstream projects, its much clearer to get a
+                     maven-enforcer-plugin violation message than suddenly a confusing 'dependencies.dependency.version' for org.mockito:mockito-all:jar is missing  -->
       <dependency>
         <groupId>org.mockito</groupId>
+        <!-- Bug 7662: @deprecated Do *NOT* use mockito-all, but *ALWAYS* only mockito-core; this should be removed, and non-usage enforced! -->
         <artifactId>mockito-all</artifactId>
         <version>1.10.19</version>
         <scope>test</scope>
         <version>0.28</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>org.awaitility</groupId>
+        <artifactId>awaitility</artifactId>
+        <version>2.0.0</version>
+        <scope>test</scope>
+      </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-mockito</artifactId>
         <version>1.6.4</version>
         <scope>test</scope>
       </dependency>
-      <!-- Supporting Libraries -->
+
+      <!--
+           Annotation Processors
+       -->
+      <dependency>
+        <!-- Generates immutable implementations, builders, the works -->
+        <groupId>org.immutables</groupId>
+        <artifactId>value</artifactId>
+        <version>2.4.2</version>
+        <!-- Must be provided; <scope>test here breaks APT in Eclipse :( -->
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <!-- Generates META-INF/services entries for ServiceLoader -->
+        <groupId>org.kohsuke.metainf-services</groupId>
+        <artifactId>metainf-services</artifactId>
+        <version>1.7</version>
+        <optional>true</optional>
+      </dependency>
+
+      <!--
+           Supporting Libraries
+       -->
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>jcl-over-slf4j</artifactId>
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-core</artifactId>
-        <version>1.1.7</version>
+        <version>1.1.9</version>
       </dependency>
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-classic</artifactId>
-        <version>1.1.7</version>
+        <version>1.1.9</version>
       </dependency>
       <dependency>
         <groupId>com.google.guava</groupId>
       </dependency>
       <dependency>
         <groupId>com.mycila.guice.extensions</groupId>
-        <!-- This transitively pulls com.google.inject:guice along -->
         <artifactId>mycila-guice-jsr250</artifactId>
+        <!-- Make sure this version is in sync with the guice one below -->
         <version>4.0.rc1</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <!-- Make sure this version is in sync with the one used by mycila-guice-jsr250 above
+             by checking it here: https://github.com/mycila/guice/blob/master/pom.xml#L103 -->
+        <version>4.1.0</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
-        <version>3.4</version>
+        <version>3.5</version>
       </dependency>
       <dependency>
         <groupId>commons-lang</groupId>
       <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-core</artifactId>
-        <version>1.3.1</version>
+        <version>1.3.2</version>
       </dependency>
       <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-web</artifactId>
-        <version>1.3.1</version>
+        <version>1.3.2</version>
       </dependency>
 
       <!-- Plugin integration -->
       <dependency>
         <groupId>com.github.romix</groupId>
         <artifactId>java-concurrent-hash-trie-map</artifactId>
-        <version>0.2.23</version>
+        <version>0.2.23-ODL</version>
       </dependency>
       <dependency>
         <groupId>com.google.code.findbugs</groupId>
         <artifactId>jsr305</artifactId>
         <version>3.0.0</version>
       </dependency>
+      <dependency>
+        <groupId>com.google.code.findbugs</groupId>
+        <artifactId>annotations</artifactId>
+        <version>3.0.0</version>
+        <exclusions>
+          <!-- We'd like (have) to eventually exclude :jsr305 here as well, because
+               the types of this artifact are already shaded inside the :annotations artifact.
+               This state is a temporary solution to allow all projects to gradually switch over
+               switch their <dependency><groupId>com.google.code.findbugs from
+               <artifactId>jsr305 to <artifactId>annotations in all pom.xml.
+               The target solution is https://git.opendaylight.org/gerrit/#/c/47337/
+            -->
+          <exclusion>
+            <groupId>net.jcip</groupId>
+            <!-- The types of this artifact are already shaded inside the :annotations artifact -->
+            <artifactId>jcip-annotations</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jdt</groupId>
+        <artifactId>org.eclipse.jdt.annotation</artifactId>
+        <version>2.0.0</version>
+        <scope>provided</scope>
+      </dependency>
       <dependency>
         <groupId>com.google.code.gson</groupId>
         <artifactId>gson</artifactId>
       <dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
-        <version>1.3.1</version>
+        <version>1.3.2</version>
       </dependency>
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.4</version>
+        <version>2.5</version>
       </dependency>
       <dependency>
         <groupId>commons-net</groupId>
         <groupId>io.netty</groupId>
         <artifactId>netty-all</artifactId>
         <!-- If these are updated, the version in features.xml needs to be changed too -->
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-buffer</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-http</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-common</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-handler</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport</artifactId>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <!-- Here we need to define all available native epoll implementations; we can't limit ourselves to the build
       platform and we can't require the build platform to have an implementation (e.g. OS X) -->
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-native-epoll</artifactId>
         <classifier>linux-x86_64</classifier>
-        <version>4.0.37.Final</version>
+        <version>4.1.8.Final</version>
       </dependency>
       <dependency>
         <groupId>javax.ws.rs</groupId>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-aop</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-expression</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-tx</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-webmvc</artifactId>
-        <version>3.2.14.RELEASE</version>
+        <version>3.2.17.RELEASE</version>
       </dependency>
       <!-- Spring security -->
       <dependency>
         <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-config</artifactId>
-        <version>3.2.8.RELEASE</version>
+        <version>3.2.9.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-core</artifactId>
-        <version>3.2.8.RELEASE</version>
+        <version>3.2.9.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-taglibs</artifactId>
-        <version>3.2.8.RELEASE</version>
+        <version>3.2.9.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-web</artifactId>
-        <version>3.2.8.RELEASE</version>
+        <version>3.2.9.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>virgomirror</groupId>
         <version>1.3.0</version>
       </dependency>
 
+      <!-- Reactive Streams, used by Akka -->
+      <dependency>
+        <groupId>org.reactivestreams</groupId>
+        <artifactId>reactive-streams</artifactId>
+        <version>1.0.0</version>
+      </dependency>
+
       <!-- Akka -->
+      <dependency>
+        <groupId>com.typesafe</groupId>
+        <artifactId>ssl-config-akka_${scala.version}</artifactId>
+        <version>0.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.typesafe</groupId>
+        <artifactId>ssl-config-core_${scala.version}</artifactId>
+        <version>0.2.1</version>
+      </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-actor_${scala.version}</artifactId>
         <artifactId>akka-cluster_${scala.version}</artifactId>
         <version>${akka.version}</version>
       </dependency>
+      <dependency>
+        <groupId>com.typesafe.akka</groupId>
+        <artifactId>akka-distributed-data-experimental_${scala.version}</artifactId>
+        <version>${akka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.typesafe.akka</groupId>
+        <artifactId>akka-osgi_${scala.version}</artifactId>
+        <version>${akka.version}</version>
+      </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-persistence_${scala.version}</artifactId>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-testkit_${scala.version}</artifactId>
+        <artifactId>akka-slf4j_${scala.version}</artifactId>
         <version>${akka.version}</version>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-osgi_${scala.version}</artifactId>
+        <artifactId>akka-stream_${scala.version}</artifactId>
         <version>${akka.version}</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-slf4j_${scala.version}</artifactId>
+        <artifactId>akka-testkit_${scala.version}</artifactId>
         <version>${akka.version}</version>
+        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.scala-lang.modules</groupId>
         <artifactId>scala-java8-compat_${scala.version}</artifactId>
-        <version>0.7.0</version>
+        <version>0.8.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.scala-lang.modules</groupId>
+        <artifactId>scala-parser-combinators_${scala.version}</artifactId>
+        <version>1.0.4</version>
       </dependency>
       <dependency>
         <groupId>org.iq80.leveldb</groupId>
         <version>2.5.0</version>
       </dependency>
 
+      <!-- Aeron, required by Akka -->
+      <dependency>
+        <groupId>org.agrona</groupId>
+        <artifactId>agrona</artifactId>
+        <version>0.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>io.aeron</groupId>
+        <artifactId>aeron-client</artifactId>
+        <version>1.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>io.aeron</groupId>
+        <artifactId>aeron-driver</artifactId>
+        <version>1.1.0</version>
+      </dependency>
+
       <!-- Scala -->
       <dependency>
         <groupId>org.scala-lang</groupId>
         <groupId>com.lmax</groupId>
         <artifactId>disruptor</artifactId>
         <!-- If this is updated, the version in features.xml needs to be changed too -->
-        <version>3.3.4</version>
+        <version>3.3.6</version>
       </dependency>
 
       <!-- Add Pax Exam -->
       <dependency>
         <groupId>org.ops4j.pax.url</groupId>
         <artifactId>pax-url-aether</artifactId>
-        <version>2.4.7</version>
+        <version>2.5.1</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.url</groupId>
         <artifactId>pax-url-wrap</artifactId>
-        <version>2.4.7</version>
+        <version>2.5.1</version>
       </dependency>
       <dependency>
         <groupId>org.springframework.osgi</groupId>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-client</artifactId>
-        <version>8.1.19.v20160209</version>
+        <version>9.2.19.v20160908</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-server</artifactId>
-        <version>8.1.19.v20160209</version>
+        <version>9.2.19.v20160908</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-servlet-tester</artifactId>
-        <version>8.1.19.v20160209</version>
+        <version>9.2.19.v20160908</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-servlets</artifactId>
-        <version>8.1.19.v20160209</version>
+        <version>9.2.19.v20160908</version>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-webapp</artifactId>
-        <version>8.1.19.v20160209</version>
+        <version>9.2.19.v20160908</version>
       </dependency>
       <dependency>
         <groupId>org.apache.aries.blueprint</groupId>
         <version>1.4.2</version>
       </dependency>
 
+      <dependency>
+        <groupId>com.h2database</groupId>
+        <artifactId>h2</artifactId>
+        <version>1.4.191</version>
+      </dependency>
+
       <!-- Xtend http://xtend-lang.org
            NOTE: When you increase the version here,
            then remember to also increase it for the
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib</artifactId>
-          <version>2.9.2</version>
+          <version>2.11.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib.macro</artifactId>
-          <version>2.9.2</version>
+          <version>2.11.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtext</groupId>
           <artifactId>org.eclipse.xtext.xbase.lib</artifactId>
-          <version>2.9.2</version>
+          <version>2.11.0</version>
       </dependency>
 
       <!-- Annotations -->
       <scope>provided</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+
     <!-- Enable JSR-305 annotations everywhere -->
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>annotations</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <!-- See note above; having both :jsr305 and :annotations here is an intermediate step -->
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
       <artifactId>jsr305</artifactId>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+      <groupId>org.eclipse.jdt</groupId>
+      <artifactId>org.eclipse.jdt.annotation</artifactId>
+      <scope>provided</scope>
+    </dependency>
   </dependencies>
 
   <build>
              We do not need to specify the groupId. -->
         <plugin>
           <artifactId>maven-antrun-plugin</artifactId>
-          <version>${maven.antrun.plugin.version}</version>
+          <version>1.8</version>
         </plugin>
         <plugin>
           <artifactId>maven-checkstyle-plugin</artifactId>
           </dependencies>
           <configuration>
             <configLocation>odl_checks.xml</configLocation>
+            <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
             <!-- <sourceDirectory> is needed so that checkstyle ignores the
                  generated sources directory -->
             <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
             <includeResources>true</includeResources>
             <includeTestSourceDirectory>true</includeTestSourceDirectory>
             <includeTestResources>true</includeTestResources>
+            <includes>**\/*.java, **\/*.xtend</includes>
             <excludes>
               org/opendaylight/yang/gen/**,
               **/protobuff/messages/**,
                               Hence people introducing new generated sources have to include
                               PMD config too.
                    -->
-                  <excludeRoot>${basedir}/target/generated-sources</excludeRoot>
+                  <excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
+                  <excludeRoot>${project.build.directory}/generated-test-sources</excludeRoot>
                 </excludeRoots>
                 <linkXRef>false</linkXRef>
               </configuration>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>${maven.jar.version}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-dependency-plugin</artifactId>
           <version>${maven.plugin.version}</version>
         </plugin>
 
+        <plugin>
+          <artifactId>maven-remote-resources-plugin</artifactId>
+          <version>1.5</version>
+        </plugin>
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
           <version>3.0.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-source-plugin</artifactId>
-          <version>3.0.0</version>
+          <version>3.0.1</version>
           <executions>
             <execution>
               <id>attach-sources</id>
           <version>${maven.surefire.version}</version>
           <configuration>
             <redirectTestOutputToFile>true</redirectTestOutputToFile>
+            <trimStackTrace>false</trimStackTrace>
           </configuration>
         </plugin>
 
           <artifactId>maven-bundle-plugin</artifactId>
           <version>${maven.bundle.version}</version>
           <extensions>true</extensions>
+          <configuration>
+            <instructions>
+              <!-- Note the '-' for git.properties.. this is required because git-commit-id-plugin has <failOnNoGitDirectory>false,
+                   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},target/classes/LICENSE,META-INF/git.properties=-target/classes/META-INF/git.properties</Include-Resource>
+            </instructions>
+          </configuration>
         </plugin>
 
         <plugin>
           <artifactId>maven-enunciate-plugin</artifactId>
           <version>${enunciate.version}</version>
         </plugin>
-        <plugin>
-          <groupId>com.webcohesion.enunciate</groupId>
-          <artifactId>enunciate-maven-plugin</artifactId>
-          <version>2.1.1</version>
-        </plugin>
         <plugin>
           <groupId>org.codehaus.groovy.maven</groupId>
           <artifactId>gmaven-plugin</artifactId>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>build-helper-maven-plugin</artifactId>
-          <version>1.10</version>
+          <version>1.12</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>findbugs-maven-plugin</artifactId>
-          <version>3.0.3</version>
+          <version>3.0.4</version>
+          <dependencies>
+            <dependency>
+              <groupId>org.opendaylight.odlparent</groupId>
+              <artifactId>findbugs</artifactId>
+              <version>1.8.0-SNAPSHOT</version>
+            </dependency>
+          </dependencies>
+          <configuration>
+            <!--
+              Enables analysis which takes more memory but finds more bugs.
+              If you run out of memory, changes the value of the effort element
+              to 'Low'.
+            -->
+            <effort>Max</effort>
+            <!-- Reports all bugs (other values are medium and max) -->
+            <threshold>Low</threshold>
+            <!-- Build doesn't fail if problems are found -->
+            <failOnError>false</failOnError>
+            <!-- References the excluded rules -->
+            <excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
+            <!-- Produces XML report -->
+            <xmlOutput>true</xmlOutput>
+            <!-- Configures the directory in which the XML report is created -->
+            <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
+            </configuration>
+            <executions>
+              <!--
+                Ensures that FindBugs inspects source code when project is compiled.
+              -->
+              <execution>
+                <id>analyze-compile</id>
+                <phase>compile</phase>
+                <goals>
+                  <goal>check</goal>
+                </goals>
+              </execution>
+            </executions>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>xtend-maven-plugin</artifactId>
           <!-- NOTE: This version MUST be kept in sync with the Xtend version in <dependencyManagement> -->
-          <version>2.9.2</version>
+          <version>2.11.0</version>
           <executions>
             <execution>
               <goals>
                 <goal>testCompile</goal>
               </goals>
               <configuration>
-                <outputDirectory>${project.build.directory}/generated-sources/xtend/main</outputDirectory>
-                <testOutputDirectory>${project.build.directory}/generated-sources/xtend/test</testOutputDirectory>
+                <outputDirectory>${project.build.directory}/generated-sources/xtend</outputDirectory>
+                <testOutputDirectory>${project.build.directory}/generated-test-sources/xtend</testOutputDirectory>
               </configuration>
             </execution>
           </executions>
                     <ignore/>
                   </action>
                 </pluginExecution>
+                <!-- The plugin will eventually be removed, remove this too at that point -->
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-antrun-plugin</artifactId>
+                    <versionRange>[1.8,)</versionRange>
+                    <goals>
+                      <goal>run</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore/>
+                  </action>
+                </pluginExecution>
                 <pluginExecution>
                   <pluginExecutionFilter>
                     <groupId>org.apache.servicemix.tooling</groupId>
                     <ignore/>
                   </action>
                 </pluginExecution>
+
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.ops4j.pax.exam</groupId>
+                    <artifactId>maven-paxexam-plugin</artifactId>
+                    <versionRange>[1.2.4,)</versionRange>
+                    <goals>
+                      <goal>generate-depends-file</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore/>
+                  </action>
+                </pluginExecution>
+
               </pluginExecutions>
             </lifecycleMappingMetadata>
           </configuration>
             <excludes>
               <exclude>**/gen/**</exclude>
               <exclude>**/generated-sources/**</exclude>
+              <exclude>**/generated-test-sources/**</exclude>
               <exclude>**/yang-gen/**</exclude>
+              <exclude>**/yang-gen-config/**</exclude>
+              <exclude>**/yang-gen-sal/**</exclude>
+              <exclude>**/yang-gen-code/**</exclude>
               <exclude>**/pax/**</exclude>
             </excludes>
           </configuration>
         <artifactId>maven-enforcer-plugin</artifactId>
         <executions>
           <execution>
-            <id>enforce-maven</id>
+            <id>enforce-banned-dependencies</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
             <configuration>
               <rules>
-                <requireJavaVersion>
-                  <version>1.8.0</version>
-                </requireJavaVersion>
-                <requireMavenVersion>
-                  <version>[3.3.9,)</version>
-                </requireMavenVersion>
+                <bannedDependencies>
+                  <message>Please always use mockito-core instead of mockito-all (https://bugs.opendaylight.org/show_bug.cgi?id=7662)</message>
+                  <excludes>
+                    <exclude>org.mockito:mockito-all</exclude>
+                  </excludes>
+                </bannedDependencies>
               </rules>
+              <fail>true</fail>
             </configuration>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
           </execution>
         </executions>
       </plugin>
               <goal>run</goal>
             </goals>
             <configuration>
-              <tasks>
+              <target>
                 <echo>Moving autowire.xml to org/opendaylight/blueprint</echo>
-                <move file="${basedir}/target/generated-resources/OSGI-INF/blueprint/autowire.xml"
-                      todir="${basedir}/target/generated-resources/org/opendaylight/blueprint"
+                <move file="${project.build.directory}/generated-resources/OSGI-INF/blueprint/autowire.xml"
+                      todir="${project.build.directory}/generated-resources/org/opendaylight/blueprint"
                       failonerror="false" quiet="true" />
-              </tasks>
+              </target>
             </configuration>
           </execution>
           <execution>
               <goal>run</goal>
             </goals>
             <configuration>
-              <tasks>
+              <target>
                 <echo>Moving autowire.xml to org/opendaylight/blueprint</echo>
-                <move file="${basedir}/target/generated-resources/OSGI-INF/blueprint/autowire.xml"
-                      todir="${basedir}/target/generated-resources/org/opendaylight/blueprint"
+                <move file="${project.build.directory}/generated-resources/OSGI-INF/blueprint/autowire.xml"
+                      todir="${project.build.directory}/generated-resources/org/opendaylight/blueprint"
                       failonerror="false" quiet="true" />
-              </tasks>
+              </target>
             </configuration>
           </execution>
         </executions>
         <artifactId>maven-project-info-reports-plugin</artifactId>
         <version>${projectinfo}</version>
       </plugin-->
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <configuration>
-          <effort>Max</effort>
-          <threshold>Low</threshold>
-          <goal>site</goal>
-        </configuration>
-      </plugin>
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>jdepend-maven-plugin</artifactId>
             <link>http://doc.akka.io/japi/akka/${akka.version}/</link>
             <link>https://google.github.io/guava/releases/18.0/api/docs/</link>
             <link>https://google.github.io/guava/releases/19.0/api/docs/</link>
-            <link>http://netty.io/4.0/api/</link>
+            <link>http://netty.io/4.1/api/</link>
           </links>
         </configuration>
       </plugin>