Remove full immutables.org dependency
[odlparent.git] / odlparent / pom.xml
index 88fcb8809639641aeb7bcd3f3413533e4718de9d..cfff7dd9fb35784f7d1ce459ab71be1e2a824838 100644 (file)
@@ -13,7 +13,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>6.0.0-SNAPSHOT</version>
+    <version>7.0.0-SNAPSHOT</version>
     <relativePath>../odlparent-lite</relativePath>
   </parent>
 
     <!-- Used in openflowplugin -->
     <enforcer.version>3.0.0-M2</enforcer.version>
     <!-- Used in controller, genius, infrautils, netconf, netvirt, ovsdb, serviceutils -->
-    <karaf.version>4.2.2</karaf.version>
+    <karaf.version>4.2.6</karaf.version>
     <!-- Used in bgpcep, lispflowmapping -->
     <projectinfo>2.8.1</projectinfo>
 
     <!-- Supporting Libraries -->
     <!-- Only used internally -->
-    <bouncycastle.version>1.62</bouncycastle.version>
+    <bouncycastle.version>1.64</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. -->
 
     <!-- Redirect test output to files (overridable) -->
     <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
+
+    <!-- Opt-out from maven-checkstyle-plugin failing the build on violations. Defaults
+         to true. Set to 'false' in pom.xml of project which desires to not enforce
+         no reported violations. -->
+    <odlparent.checkstyle.enforce>true</odlparent.checkstyle.enforce>
+
+    <!-- Opt-in into modernizer-maven-plugin failing the build on violations. Defaults
+         to false. Set to 'true' in pom.xml of project which desires to enforce
+         no reported violations. -->
+    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+
+    <!-- Target release for modernizer-maven-plugin. It defaults to '1.8',
+         meaning Java 8, but can be set to any version in pom.xml of project
+         which desires to override it (such as '1.11' for Java 11). -->
+    <odlparent.modernizer.target>1.8</odlparent.modernizer.target>
+
+    <!-- Opt-out from spotbugs-maven-plugin failing the build on violations. Defaults
+         to true. Set to 'false' in pom.xml of project which desires to not enforce
+         no reported violations. -->
+    <odlparent.spotbugs.enforce>true</odlparent.spotbugs.enforce>
   </properties>
 
   <dependencyManagement>
       <dependency>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-artifacts</artifactId>
-        <version>6.0.0-SNAPSHOT</version>
+        <version>7.0.0-SNAPSHOT</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
         <groupId>com.puppycrawl.tools</groupId>
         <artifactId>checkstyle</artifactId>
         <!-- This should match the plugin management on maven-checkstyle-plugin below -->
-        <version>8.20</version>
+        <version>8.26</version>
       </dependency>
 
       <!-- Testing Dependencies -->
       <!-- JUnit, Hamcrest, Mockito and PowerMock need to be kept in sync -->
-      <!-- Need to stick to JUnit 4.11 until
-           https://github.com/jayway/powermock/issues/560 is fixed (either in
-           PowerMock or with a new JUnit release) -->
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>4.11</version>
+        <version>4.13</version>
         <scope>test</scope>
       </dependency>
       <dependency>
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>2.25.1</version>
+        <version>2.28.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-inline</artifactId>
-        <version>2.25.1</version>
+        <version>2.28.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>2.1</version>
+        <version>2.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest-core</artifactId>
-        <version>2.1</version>
+        <version>2.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest-library</artifactId>
-        <version>2.1</version>
+        <version>2.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.google.truth</groupId>
         <artifactId>truth</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>0.43</version>
+        <version>1.0.1</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.google.truth.extensions</groupId>
         <artifactId>truth-java8-extension</artifactId>
-        <version>0.43</version>
+        <version>1.0.1</version>
         <scope>test</scope>
       </dependency>
       <dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-mockito2</artifactId>
-        <version>2.0.2</version>
+        <version>2.0.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-support</artifactId>
-        <version>2.0.2</version>
+        <version>2.0.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-core</artifactId>
-        <version>2.0.2</version>
+        <version>2.0.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-junit4</artifactId>
-        <version>2.0.2</version>
+        <version>2.0.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-reflect</artifactId>
-        <version>2.0.2</version>
+        <version>2.0.4</version>
         <scope>test</scope>
       </dependency>
 
         <!-- Generates immutable implementations, builders, the works -->
         <groupId>org.immutables</groupId>
         <artifactId>value</artifactId>
+        <classifier>annotations</classifier>
+        <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
         <version>2.7.5</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>
+        <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
         <version>1.8</version>
         <optional>true</optional>
         <scope>provided</scope>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>jcl-over-slf4j</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.28</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.28</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.28</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>log4j-over-slf4j</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.28</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-simple</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.28</version>
         <scope>test</scope>
       </dependency>
       <dependency>
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-bom</artifactId>
-        <version>2.11.2</version>
+        <version>2.13.0</version>
         <scope>import</scope>
         <type>pom</type>
       </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>
+             by checking it here: https://github.com/mycila/guice/blob/master/pom.xml#L103.
+
+             Well, mycila is dead as a dodo and we need to support Java 11. This is the best
+             we can do in the interim. -->
+        <version>4.2.2</version>
       </dependency>
       <dependency>
         <groupId>commons-beanutils</groupId>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-text</artifactId>
-        <version>1.7</version>
+        <version>1.8</version>
       </dependency>
       <dependency>
         <groupId>commons-lang</groupId>
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
-        <version>1.13</version>
+        <version>1.14</version>
       </dependency>
       <!-- Jersey for JAXRS -->
       <dependency>
       <dependency>
         <groupId>javax.annotation</groupId>
         <artifactId>javax.annotation-api</artifactId>
-        <version>1.2</version>
+        <version>1.3</version>
         <optional>true</optional>
       </dependency>
       <dependency>
       </dependency>
 
       <!-- These three need to be consistent:
-        jackson-2.9 needs woodstox-5.0.x
-        woodstox-5.0 needs stax2-api-3.1.x
+        jackson-2.9.10 needs woodstox-5.3.x
+        woodstox-5.3 needs stax2-api-4.2.x
         -->
       <dependency>
         <groupId>org.codehaus.woodstox</groupId>
         <artifactId>stax2-api</artifactId>
-        <version>3.1.4</version>
+        <version>4.2</version>
       </dependency>
       <dependency>
         <groupId>com.fasterxml.woodstox</groupId>
         <artifactId>woodstox-core</artifactId>
-        <version>5.0.3</version>
+        <version>5.3.0</version>
       </dependency>
       <dependency>
         <groupId>com.fasterxml.jackson</groupId>
         <artifactId>jackson-bom</artifactId>
-        <version>2.9.9.20190807</version>
+        <version>2.9.10.20200103</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
         <artifactId>netty-all</artifactId>
         <!-- If these are updated, the version in features.xml needs to be changed too -->
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-buffer</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-http</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-common</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-handler</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport</artifactId>
-        <version>4.1.39.Final</version>
+        <version>4.1.45.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.1.39.Final</version>
+        <version>4.1.45.Final</version>
       </dependency>
       <dependency>
         <groupId>javax.ws.rs</groupId>
       <dependency>
         <groupId>org.javassist</groupId>
         <artifactId>javassist</artifactId>
-        <version>3.24.1-GA</version>
+        <version>3.26.0-GA</version>
       </dependency>
       <dependency>
         <groupId>org.jboss.spec.javax.transaction</groupId>
       <dependency>
         <groupId>org.reactivestreams</groupId>
         <artifactId>reactive-streams</artifactId>
-        <version>1.0.2</version>
+        <version>1.0.3</version>
       </dependency>
 
       <!-- Akka -->
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-actor_2.12</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-cluster_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-osgi_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-persistence_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-persistence-tck_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-protobuf_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-remote_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-slf4j_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-stream_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
       </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-testkit_2.12</artifactId>
-        <version>2.5.24</version>
+        <version>2.5.29</version>
         <scope>test</scope>
       </dependency>
       <dependency>
       <dependency>
         <groupId>org.scala-lang</groupId>
         <artifactId>scala-library</artifactId>
-        <version>2.12.9</version>
+        <version>2.12.10</version>
       </dependency>
       <dependency>
         <groupId>org.scala-lang</groupId>
         <artifactId>scala-reflect</artifactId>
-        <version>2.12.9</version>
+        <version>2.12.10</version>
       </dependency>
 
       <!-- LMAX Disruptor -->
         <groupId>org.ops4j.pax.web</groupId>
         <artifactId>pax-web-api</artifactId>
         <!-- Note: keep this version synchronized with karaf -->
-        <version>7.2.5</version>
+        <version>7.2.10</version>
       </dependency>
 
       <dependency>
         <groupId>org.gaul</groupId>
         <artifactId>modernizer-maven-annotations</artifactId>
         <!-- This should match the plugin version below -->
-        <version>1.8.0</version>
+        <version>2.0.0</version>
         <scope>provided</scope>
       </dependency>
 
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-bom</artifactId>
-        <version>9.4.12.v20180830</version>
+        <version>9.4.18.v20190429</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
         <groupId>com.h2database</groupId>
         <artifactId>h2</artifactId>
-        <version>1.4.199</version>
+        <version>1.4.200</version>
       </dependency>
 
       <!-- Xtend http://xtend-lang.org
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib</artifactId>
-          <version>2.17.1</version>
+          <version>2.19.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib.macro</artifactId>
-          <version>2.17.1</version>
+          <version>2.19.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtext</groupId>
           <artifactId>org.eclipse.xtext.xbase.lib</artifactId>
-          <version>2.17.1</version>
+          <version>2.19.0</version>
       </dependency>
 
       <!-- Annotations -->
         <groupId>org.apache.karaf.shell</groupId>
         <artifactId>org.apache.karaf.shell.core</artifactId>
         <version>${karaf.version}</version>
+        <scope>provided</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.karaf.shell</groupId>
         <artifactId>org.apache.karaf.shell.console</artifactId>
         <version>${karaf.version}</version>
+        <scope>provided</scope>
       </dependency>
 
       <!-- ThreeTen-Extra, date/time complements -->
       <dependency>
         <groupId>org.apache.aries.blueprint</groupId>
         <artifactId>org.apache.aries.blueprint.core</artifactId>
-        <version>1.10.1</version>
+        <version>1.10.2</version>
       </dependency>
       <dependency>
         <groupId>org.apache.aries.blueprint</groupId>
       <dependency>
         <groupId>org.apache.sshd</groupId>
         <artifactId>sshd-netty</artifactId>
-        <version>2.2.0</version>
+        <version>2.3.0</version>
         <exclusions>
           <exclusion>
             <!-- We provide sshd-osgi instead -->
       <dependency>
         <groupId>org.apache.sshd</groupId>
         <artifactId>sshd-osgi</artifactId>
-        <version>2.2.0</version>
+        <version>2.3.0</version>
       </dependency>
       <dependency>
         <groupId>net.i2p.crypto</groupId>
       <dependency>
         <groupId>tech.pantheon.triemap</groupId>
         <artifactId>bom</artifactId>
-        <version>1.0.6</version>
+        <version>1.1.0</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
         <type>pom</type>
       </dependency>
 
-      <!-- JAXB for Java 11+ -->
-      <!--
-           FIXME: bump this to 2.3.0 once we require Java 9+
-           FIXME: bump this to whatever karaf provides once we require Java 11+
-      -->
+      <!-- JAXB for Java 11+, match this with Karaf -->
       <dependency>
         <groupId>javax.xml.bind</groupId>
         <artifactId>jaxb-api</artifactId>
-        <version>2.2.8</version>
-        <exclusions>
-          <exclusion>
-            <!-- Provided by JRE -->
-            <groupId>javax.xml.stream</groupId>
-            <artifactId>stax-api</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>com.sun.xml.bind</groupId>
-        <artifactId>jaxb-core</artifactId>
-        <version>2.2.11</version>
+        <version>2.3.0</version>
       </dependency>
       <dependency>
-        <groupId>com.sun.xml.bind</groupId>
-        <artifactId>jaxb-impl</artifactId>
-        <version>2.2.11</version>
+        <groupId>org.glassfish.jaxb</groupId>
+        <artifactId>jaxb-runtime</artifactId>
+        <version>2.3.1</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
       <plugins>
         <!-- Official maven plugins, alpha-sorted by artifactId.
              We do not need to specify the groupId. -->
-        <plugin>
-          <artifactId>maven-antrun-plugin</artifactId>
-          <version>1.8</version>
-        </plugin>
         <plugin>
           <artifactId>maven-checkstyle-plugin</artifactId>
           <version>3.1.0</version>
               <groupId>com.puppycrawl.tools</groupId>
               <artifactId>checkstyle</artifactId>
               <!-- This should match the dependency management on com.puppycrawl.tools:checkstyle above -->
-              <version>8.20</version>
+              <version>8.26</version>
             </dependency>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>checkstyle</artifactId>
-              <version>6.0.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-              <groupId>org.opendaylight.odlparent</groupId>
-              <artifactId>odl-license</artifactId>
-              <version>6.0.0-SNAPSHOT</version>
+              <version>7.0.0-SNAPSHOT</version>
             </dependency>
             <dependency>
               <groupId>com.github.sevntu-checkstyle</groupId>
-              <artifactId>sevntu-checkstyle-maven-plugin</artifactId>
-              <version>1.35.0</version>
+              <artifactId>sevntu-checks</artifactId>
+              <version>1.36.0</version>
             </dependency>
           </dependencies>
           <configuration>
                 <goal>check</goal>
               </goals>
               <phase>process-sources</phase>
+              <configuration>
+                <failOnViolation>${odlparent.checkstyle.enforce}</failOnViolation>
+                <skip>${odlparent.checkstyle.skip}</skip>
+                <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
+              </configuration>
             </execution>
           </executions>
         </plugin>
               <arg>-Xlint:deprecation</arg>
               <arg>-Xlint:unchecked</arg>
             </compilerArgs>
+            <annotationProcessorPaths>
+              <dependency>
+                <groupId>org.immutables</groupId>
+                <artifactId>value</artifactId>
+                <!-- Keep this version in sync with dependency declaration above -->
+                <version>2.7.5</version>
+              </dependency>
+              <dependency>
+                <groupId>org.kohsuke.metainf-services</groupId>
+                <artifactId>metainf-services</artifactId>
+                <!-- Keep this version in sync with dependency declaration above -->
+                <version>1.8</version>
+              </dependency>
+            </annotationProcessorPaths>
           </configuration>
         </plugin>
         <plugin>
           <artifactId>maven-invoker-plugin</artifactId>
           <version>3.2.0</version>
         </plugin>
-        <plugin>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.1.2</version>
-        </plugin>
         <plugin>
           <artifactId>maven-dependency-plugin</artifactId>
           <executions>
             <execution>
               <id>unpack-license</id>
               <phase>generate-resources</phase>
-              <goals><goal>unpack</goal></goals>
+              <goals>
+                <goal>copy</goal>
+              </goals>
               <configuration>
                 <artifactItems>
                   <artifactItem>
                     <groupId>org.opendaylight.odlparent</groupId>
                     <artifactId>odl-license</artifactId>
-                    <version>6.0.0-SNAPSHOT</version>
+                    <version>7.0.0-SNAPSHOT</version>
+                    <type>license</type>
+                    <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+                    <destFileName>LICENSE</destFileName>
+                    <overWrite>false</overWrite>
                   </artifactItem>
                 </artifactItems>
-                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
-                <excludes>META-INF/**</excludes>
                 <silent>true</silent>
               </configuration>
             </execution>
         </plugin>
         <plugin>
           <artifactId>maven-source-plugin</artifactId>
-          <version>3.1.0</version>
+          <version>3.2.1</version>
           <executions>
             <execution>
               <id>attach-sources</id>
         <plugin>
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
-          <version>4.2.0</version>
+          <version>4.2.1</version>
           <extensions>true</extensions>
           <configuration>
             <instructions>
         <plugin>
           <groupId>org.gaul</groupId>
           <artifactId>modernizer-maven-plugin</artifactId>
-          <version>1.8.0</version>
+          <version>2.0.0</version>
           <configuration>
-            <javaVersion>1.8</javaVersion>
+            <javaVersion>${odlparent.modernizer.target}</javaVersion>
+            <failOnViolations>${odlparent.modernizer.enforce}</failOnViolations>
+            <skip>${odlparent.modernizer.skip}</skip>
           </configuration>
 
           <executions>
           </executions>
         </plugin>
 
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
         <plugin>
           <groupId>com.github.spotbugs</groupId>
           <artifactId>spotbugs-maven-plugin</artifactId>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>spotbugs</artifactId>
-              <version>6.0.0-SNAPSHOT</version>
+              <version>7.0.0-SNAPSHOT</version>
             </dependency>
             <dependency>
               <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 -->
             <!-- Reports all bugs (other values are medium and max) -->
             <threshold>Low</threshold>
             <!-- Build doesn't fail if problems are found -->
-            <failOnError>false</failOnError>
+            <failOnError>${odlparent.spotbugs.enforce}</failOnError>
+            <skip>${odlparent.spotbugs.skip}</skip>
             <!-- References the excluded rules -->
             <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
             <!-- Produces XML report -->
           <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.17.1</version>
+          <version>2.19.0</version>
           <executions>
             <execution>
               <goals>
                     <artifactId>maven-dependency-plugin</artifactId>
                     <versionRange>[2.10,)</versionRange>
                     <goals>
-                      <goal>unpack</goal>
+                      <goal>copy</goal>
                     </goals>
                   </pluginExecutionFilter>
                   <action>
           <version>1.2.4</version>
         </plugin>
 
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>jdepend-maven-plugin</artifactId>
-          <version>2.0</version>
-          <executions>
-            <execution>
-              <phase>site</phase>
-              <goals>
-                <goal>generate-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
         <!-- When updating this version, consider antl4-runtime above -->
         <plugin>
           <groupId>org.antlr</groupId>
         <groupId>org.gaul</groupId>
         <artifactId>modernizer-maven-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
+      </plugin>
 
       <!-- Jacoco / Sonar -->
       <plugin>