Bump commons-lang 3.11 → 3.12.0
[odlparent.git] / odlparent / pom.xml
index 2019b93eba460d2578dc52091948545c9319472a..285383bb93421e459770821360aa5656349f5ced 100644 (file)
@@ -13,7 +13,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.2-SNAPSHOT</version>
+    <version>8.1.2-SNAPSHOT</version>
     <relativePath>../odlparent-lite</relativePath>
   </parent>
 
     <maven.compiler.release>11</maven.compiler.release>
 
     <!-- Used in controller, genius, infrautils, netconf, netvirt, ovsdb, serviceutils -->
-    <karaf.version>4.2.8</karaf.version>
+    <karaf.version>4.3.0</karaf.version>
 
     <!-- Supporting Libraries -->
     <!-- Only used internally -->
-    <bouncycastle.version>1.65</bouncycastle.version>
+    <bouncycastle.version>1.68</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. -->
@@ -56,6 +56,7 @@
     <jacoco.dataFile>${jacoco.destFile}</jacoco.dataFile>
 
     <!-- Default Sonar configuration -->
+    <sonar.java.source>${maven.compiler.release}</sonar.java.source>
     <sonar-jacoco-listeners.version>3.8</sonar-jacoco-listeners.version>
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
 
     <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
+         to true. Set to 'false' in pom.xml of project which desires to not enforce
          no reported violations. -->
-    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+    <odlparent.modernizer.enforce>true</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>
+    <!-- Target release for modernizer-maven-plugin. It defaults to '1.11',
+         meaning Java 11, but can be set to any version in pom.xml of project
+         which desires to override it (such as '1.12' for Java 12). -->
+    <odlparent.modernizer.target>1.11</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
@@ -96,7 +97,7 @@
       <dependency>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-artifacts</artifactId>
-        <version>7.0.2-SNAPSHOT</version>
+        <version>8.1.2-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.31</version>
+        <version>8.40</version>
       </dependency>
 
       <!-- Testing Dependencies -->
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>4.13</version>
+        <version>4.13.1</version>
         <scope>test</scope>
       </dependency>
       <dependency>
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>3.3.3</version>
+        <version>3.5.11</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-inline</artifactId>
-        <version>3.3.3</version>
+        <version>3.5.11</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>1.0.1</version>
+        <version>1.1.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.google.truth.extensions</groupId>
         <artifactId>truth-java8-extension</artifactId>
-        <version>1.0.1</version>
+        <version>1.1.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.awaitility</groupId>
         <artifactId>awaitility</artifactId>
-        <version>3.0.0</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.awaitility</groupId>
-        <artifactId>awaitility-proxy</artifactId>
-        <version>3.0.0</version>
+        <version>4.0.3</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-mockito2</artifactId>
-        <version>2.0.6</version>
+        <version>2.0.9</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-support</artifactId>
-        <version>2.0.6</version>
+        <version>2.0.9</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-core</artifactId>
-        <version>2.0.6</version>
+        <version>2.0.9</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-junit4</artifactId>
-        <version>2.0.6</version>
+        <version>2.0.9</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-reflect</artifactId>
-        <version>2.0.6</version>
+        <version>2.0.9</version>
         <scope>test</scope>
       </dependency>
 
         <artifactId>value</artifactId>
         <classifier>annotations</classifier>
         <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
-        <version>2.7.5</version>
+        <version>2.8.8</version>
         <!-- Must be provided; scope=test here breaks APT in Eclipse :( -->
         <scope>provided</scope>
       </dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite and docs -->
-        <version>28.2-jre</version>
+        <version>29.0-jre</version>
         <exclusions>
           <exclusion>
             <!-- Do not leak JSR305 onto the classpath by default -->
         <groupId>com.google.guava</groupId>
         <artifactId>guava-testlib</artifactId>
         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite and docs -->
-        <version>28.2-jre</version>
+        <version>29.0-jre</version>
         <scope>test</scope>
         <exclusions>
           <exclusion>
           </exclusion>
         </exclusions>
       </dependency>
+      <dependency>
+        <groupId>org.checkerframework</groupId>
+        <artifactId>checker-qual</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.errorprone</groupId>
+        <artifactId>error_prone_annotations</artifactId>
+        <version>2.3.4</version>
+      </dependency>
 
       <dependency>
         <groupId>commons-beanutils</groupId>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
-        <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite and docs -->
-        <version>3.10</version>
+        <version>3.12.0</version>
       </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-text</artifactId>
-        <version>1.8</version>
+        <version>1.9</version>
       </dependency>
       <dependency>
         <groupId>commons-lang</groupId>
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
-        <version>1.14</version>
+        <version>1.15</version>
       </dependency>
       <!-- Jersey for JAXRS -->
       <dependency>
         <groupId>javax.ws.rs</groupId>
         <artifactId>javax.ws.rs-api</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.1</version>
       </dependency>
       <dependency>
         <groupId>org.glassfish.jersey</groupId>
         <artifactId>jersey-bom</artifactId>
-        <version>2.25.1</version>
+        <version>2.27</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
-      <dependency>
-        <groupId>org.glassfish</groupId>
-        <artifactId>javax.json</artifactId>
-        <version>1.1.2</version>
-      </dependency>
 
       <dependency>
-        <groupId>org.checkerframework</groupId>
-        <artifactId>checker-qual</artifactId>
-        <version>2.5.8</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.errorprone</groupId>
-        <artifactId>error_prone_annotations</artifactId>
-        <version>2.3.3</version>
+        <groupId>jakarta.activation</groupId>
+        <artifactId>jakarta.activation-api</artifactId>
+        <version>1.2.2</version>
       </dependency>
 
-      <dependency>
-        <groupId>javax.activation</groupId>
-        <artifactId>activation</artifactId>
-        <version>1.1.1</version>
-      </dependency>
       <dependency>
         <groupId>javax.annotation</groupId>
         <artifactId>javax.annotation-api</artifactId>
       </dependency>
 
       <!-- These three need to be consistent:
-        jackson-2.10.4 needs woodstox-6.2.x
+        jackson-2.11.4 needs woodstox-6.2.3+
         woodstox-5.3+ needs stax2-api-4.2.x
         -->
       <dependency>
       <dependency>
         <groupId>com.fasterxml.woodstox</groupId>
         <artifactId>woodstox-core</artifactId>
-        <version>6.2.1</version>
+        <version>6.2.4</version>
       </dependency>
       <dependency>
         <groupId>com.fasterxml.jackson</groupId>
         <artifactId>jackson-bom</artifactId>
-        <version>2.10.4</version>
+        <version>2.11.4</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.6</version>
+        <version>2.8.0</version>
       </dependency>
       <dependency>
         <groupId>commons-net</groupId>
         <artifactId>commons-net</artifactId>
-        <version>3.6</version>
+        <version>3.8.0</version>
       </dependency>
 
       <!-- Netty -->
         <artifactId>netty-bom</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.49.Final</version>
+        <version>4.1.59.Final</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.dependencymanager</artifactId>
-        <version>4.4.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
-        <version>4.0.6</version>
-      </dependency>
       <dependency>
         <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.metatype</artifactId>
         <groupId>com.webcohesion.enunciate</groupId>
         <artifactId>enunciate-core-annotations</artifactId>
         <!-- This must be aligned with the version of enunciate-maven-plugin specified below -->
-        <version>2.12.1</version>
+        <version>2.13.2</version>
       </dependency>
 
-      <dependency>
-        <groupId>org.codehaus.jettison</groupId>
-        <artifactId>jettison</artifactId>
-        <version>1.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.antlr</artifactId>
-        <version>2.7.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.core</artifactId>
-        <version>2.7.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.moxy</artifactId>
-        <version>2.7.5</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.validation</groupId>
-        <artifactId>validation-api</artifactId>
-        <version>1.1.0.Final</version>
-      </dependency>
       <dependency>
         <groupId>org.javassist</groupId>
         <artifactId>javassist</artifactId>
         <artifactId>jolokia-osgi</artifactId>
         <version>1.6.2</version>
       </dependency>
+
+      <!--
+        These are usually used through osgi.cmpn, except when you also want
+        to be a JPMS module. In that case you need to depend on these and
+        have a 'require static org.osgi.service.component.annotations;'.
+        This incurs a warning about publishing the module to a public place.
+        We do not heed that warning, as nothing in this package is seen by
+        the runtime - thus the warning can be safely ignored :)
+
+        Keep this in sync with rest of OSGi:
+        - OSGi R7 (now) = 1.4.0
+      -->
       <dependency>
         <groupId>org.osgi</groupId>
-        <artifactId>osgi.cmpn</artifactId>
-        <version>6.0.0</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>6.0.0</version>
+        <artifactId>org.osgi.service.component.annotations</artifactId>
+        <version>1.4.0</version>
         <scope>provided</scope>
       </dependency>
       <dependency>
         <groupId>org.osgi</groupId>
-        <!-- for https://bugs.opendaylight.org/show_bug.cgi?id=4290 -->
-        <artifactId>org.osgi.service.event</artifactId>
-        <version>1.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.aries.quiesce</groupId>
-        <artifactId>org.apache.aries.quiesce.api</artifactId>
-        <version>1.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.ow2.asm</groupId>
-        <artifactId>asm</artifactId>
-        <version>7.0</version>
-      </dependency>
-
-      <!-- Configuration library -->
-      <!-- This needs to be kept in sync with the version used by akka -->
-      <dependency>
-        <groupId>com.typesafe</groupId>
-        <artifactId>config</artifactId>
-        <version>1.3.3</version>
-      </dependency>
-
-      <!-- Reactive Streams, used by Akka -->
-      <dependency>
-        <groupId>org.reactivestreams</groupId>
-        <artifactId>reactive-streams</artifactId>
-        <version>1.0.3</version>
+        <artifactId>org.osgi.service.metatype.annotations</artifactId>
+        <version>1.4.0</version>
       </dependency>
 
-      <!-- Akka -->
       <dependency>
-        <groupId>com.typesafe</groupId>
-        <artifactId>ssl-config-core_2.13</artifactId>
-        <version>0.3.8</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-actor_2.13</artifactId>
-        <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-cluster_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-osgi_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-persistence_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-persistence-tck_2.13</artifactId>
-        <version>2.5.31</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-protobuf_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-remote_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-slf4j_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-stream_2.13</artifactId>
-        <version>2.5.31</version>
-      </dependency>
-      <dependency>
-        <groupId>com.typesafe.akka</groupId>
-        <artifactId>akka-testkit_2.13</artifactId>
-        <version>2.5.31</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.scala-lang.modules</groupId>
-        <artifactId>scala-java8-compat_2.13</artifactId>
-        <version>0.9.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.scala-lang.modules</groupId>
-        <artifactId>scala-parser-combinators_2.13</artifactId>
-        <version>1.1.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.uncommons.maths</groupId>
-        <artifactId>uncommons-maths</artifactId>
-        <version>1.2.2a</version>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.annotation</artifactId>
+        <version>7.0.0</version>
+        <scope>provided</scope>
       </dependency>
-
-      <!-- Aeron, required by Akka -->
       <dependency>
-        <groupId>org.agrona</groupId>
-        <artifactId>agrona</artifactId>
-        <version>0.9.33</version>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.cmpn</artifactId>
+        <version>7.0.0</version>
+        <scope>provided</scope>
       </dependency>
       <dependency>
-        <groupId>io.aeron</groupId>
-        <artifactId>aeron-client</artifactId>
-        <version>1.15.3</version>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.core</artifactId>
+        <version>7.0.0</version>
+        <scope>provided</scope>
       </dependency>
+      <!-- For backwards compatibility -->
+      <!-- FIXME: 9.0.0: remove this declaration -->
       <dependency>
-        <groupId>io.aeron</groupId>
-        <artifactId>aeron-driver</artifactId>
-        <version>1.15.3</version>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>6.0.0</version>
+        <scope>provided</scope>
       </dependency>
 
-      <!-- Scala -->
       <dependency>
-        <groupId>org.scala-lang</groupId>
-        <artifactId>scala-library</artifactId>
-        <version>2.13.2</version>
+        <groupId>org.osgi</groupId>
+        <!-- for https://bugs.opendaylight.org/show_bug.cgi?id=4290 -->
+        <artifactId>org.osgi.service.event</artifactId>
+        <version>1.4.0</version>
       </dependency>
       <dependency>
-        <groupId>org.scala-lang</groupId>
-        <artifactId>scala-reflect</artifactId>
-        <version>2.13.2</version>
+        <groupId>org.apache.aries.quiesce</groupId>
+        <artifactId>org.apache.aries.quiesce.api</artifactId>
+        <version>1.0.0</version>
       </dependency>
 
       <!-- LMAX Disruptor -->
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-container-forked</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-container-karaf</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-container-native</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-extender-service</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-inject</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-invoker-junit</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-features</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <type>xml</type>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-junit4</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-link-mvn</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.ops4j.pax.exam</groupId>
         <artifactId>pax-exam-link-assembly</artifactId>
-        <version>4.13.3</version>
+        <version>4.13.4</version>
         <scope>test</scope>
       </dependency>
 
         <groupId>org.ops4j.pax.web</groupId>
         <artifactId>pax-web-api</artifactId>
         <!-- Note: keep this version synchronized with karaf -->
-        <version>7.2.14</version>
+        <version>7.3.9</version>
       </dependency>
 
       <dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-core</artifactId>
-        <version>2.6.3</version>
+        <version>2.8.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-assertj</artifactId>
-        <version>2.6.3</version>
+        <version>2.8.2</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-assertj3</artifactId>
+        <version>2.8.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.xmlunit</groupId>
         <artifactId>xmlunit-matchers</artifactId>
-        <version>2.6.3</version>
+        <version>2.8.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.3</version>
+        <version>2.8.2</version>
         <scope>test</scope>
       </dependency>
 
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-bom</artifactId>
-        <version>9.4.22.v20191022</version>
+        <version>9.4.31.v20200723</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib</artifactId>
-          <version>2.21.0</version>
+          <version>2.24.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtend</groupId>
           <artifactId>org.eclipse.xtend.lib.macro</artifactId>
-          <version>2.21.0</version>
+          <version>2.24.0</version>
       </dependency>
       <dependency>
           <groupId>org.eclipse.xtext</groupId>
           <artifactId>org.eclipse.xtext.xbase.lib</artifactId>
-          <version>2.21.0</version>
+          <version>2.24.0</version>
       </dependency>
 
       <!-- Annotations -->
+      <!-- FIXME: ODLPARENT-246: remove this declaration -->
       <dependency>
         <groupId>javax.inject</groupId>
         <artifactId>javax.inject</artifactId>
         <version>1</version>
         <optional>true</optional>
       </dependency>
+      <!-- A better alternative for javax.inject, from https://guicedee.com/ -->
+      <dependency>
+        <groupId>com.guicedee.services</groupId>
+        <artifactId>javax.inject</artifactId>
+        <version>1.0.20.0</version>
+        <scope>provided</scope>
+        <optional>true</optional>
+      </dependency>
 
       <!-- jung, a graph library -->
       <dependency>
         <optional>true</optional>
       </dependency>
 
-      <!-- Apache SSHD with netty -->
-      <dependency>
-        <groupId>org.apache.sshd</groupId>
-        <artifactId>sshd-netty</artifactId>
-        <version>2.3.0</version>
-        <exclusions>
-          <exclusion>
-            <!-- We provide sshd-osgi instead -->
-            <groupId>org.apache.sshd</groupId>
-            <artifactId>sshd-core</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.sshd</groupId>
-        <artifactId>sshd-osgi</artifactId>
-        <version>2.3.0</version>
-      </dependency>
-      <dependency>
-        <groupId>net.i2p.crypto</groupId>
-        <artifactId>eddsa</artifactId>
-        <version>0.3.0</version>
-      </dependency>
-
       <!-- TrieMap library -->
       <dependency>
         <groupId>tech.pantheon.triemap</groupId>
         <artifactId>bom</artifactId>
-        <version>1.1.0</version>
+        <version>1.2.0</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
         <groupId>io.dropwizard.metrics</groupId>
         <artifactId>metrics-bom</artifactId>
-        <version>4.1.5</version>
+        <version>4.1.12.1</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
              We do not need to specify the groupId. -->
         <plugin>
           <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>3.1.1</version>
+          <version>3.1.2</version>
           <dependencies>
             <dependency>
               <groupId>com.puppycrawl.tools</groupId>
               <artifactId>checkstyle</artifactId>
               <!-- This should match the dependency management on com.puppycrawl.tools:checkstyle above -->
-              <version>8.31</version>
+              <version>8.40</version>
             </dependency>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>checkstyle</artifactId>
-              <version>7.0.2-SNAPSHOT</version>
+              <version>8.1.2-SNAPSHOT</version>
             </dependency>
             <dependency>
               <groupId>com.github.sevntu-checkstyle</groupId>
               <artifactId>sevntu-checks</artifactId>
-              <version>1.37.1</version>
+              <version>1.38.0</version>
             </dependency>
           </dependencies>
           <configuration>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-pmd-plugin</artifactId>
-          <version>3.13.0</version>
+          <version>3.14.0</version>
           <executions>
             <execution>
               <id>cpd</id>
                 <groupId>org.immutables</groupId>
                 <artifactId>value</artifactId>
                 <!-- Keep this version in sync with dependency declaration above -->
-                <version>2.7.5</version>
+                <version>2.8.8</version>
               </dependency>
               <dependency>
                 <groupId>org.kohsuke.metainf-services</groupId>
         </plugin>
         <plugin>
           <artifactId>maven-invoker-plugin</artifactId>
-          <version>3.2.1</version>
+          <version>3.2.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-dependency-plugin</artifactId>
                   <artifactItem>
                     <groupId>org.opendaylight.odlparent</groupId>
                     <artifactId>odl-license</artifactId>
-                    <version>7.0.2-SNAPSHOT</version>
+                    <version>8.1.2-SNAPSHOT</version>
                     <type>license</type>
                     <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                     <destFileName>LICENSE</destFileName>
           <artifactId>maven-remote-resources-plugin</artifactId>
           <version>1.7.0</version>
         </plugin>
-        <plugin>
-          <artifactId>maven-resources-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
         <plugin>
           <artifactId>maven-shade-plugin</artifactId>
-          <version>3.2.3</version>
+          <version>3.2.4</version>
         </plugin>
         <plugin>
           <artifactId>maven-source-plugin</artifactId>
             <dependency>
               <groupId>org.apache.xbean</groupId>
               <artifactId>xbean-finder-shaded</artifactId>
-              <version>4.14</version>
+              <version>4.18</version>
             </dependency>
           </dependencies>
           <configuration>
           <groupId>org.apache.karaf.tooling</groupId>
           <artifactId>karaf-maven-plugin</artifactId>
           <version>${karaf.version}</version>
+          <extensions>true</extensions>
         </plugin>
 
         <plugin>
           <groupId>com.webcohesion.enunciate</groupId>
           <artifactId>enunciate-maven-plugin</artifactId>
           <!-- This must be aligned with the version of enunciate-core-annotations specified above -->
-          <version>2.12.1</version>
+          <version>2.13.2</version>
         </plugin>
 
         <plugin>
             <javaVersion>${odlparent.modernizer.target}</javaVersion>
             <failOnViolations>${odlparent.modernizer.enforce}</failOnViolations>
             <skip>${odlparent.modernizer.skip}</skip>
+
+            <exclusionPatterns>
+              <!-- We are using Guava as per normal and we have grown a large body of code
+                   around the patterns there. Furthermore the suggested replacements have
+                   different behavior, hence we do NOT want to blindly migrate. Examples
+                   include:
+
+                   - ImmutableCollection et al. are not just implementation details, they
+                     form an API contract.
+                   - ImmutableMap/ImmutableSet retain iteration order, whereas their
+                     Map.of()/Set.of() counterparts have unstable iteration order (by design)
+              -->
+              <exclusionPattern>com/google/common/collect/Immutable.*</exclusionPattern>
+            </exclusionPatterns>
           </configuration>
 
           <executions>
             <dependency>
               <groupId>org.opendaylight.odlparent</groupId>
               <artifactId>spotbugs</artifactId>
-              <version>7.0.2-SNAPSHOT</version>
+              <version>8.1.2-SNAPSHOT</version>
             </dependency>
             <dependency>
               <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 -->
           <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.21.0</version>
+          <version>2.24.0</version>
           <executions>
             <execution>
               <goals>
       <plugin>
         <groupId>org.basepom.maven</groupId>
         <artifactId>duplicate-finder-maven-plugin</artifactId>
-        <version>1.4.0</version>
+        <version>1.5.0</version>
         <executions>
           <execution>
             <id>find-duplicate-classpath-entries</id>