<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>8.0.0-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.9</karaf.version>
+ <karaf.version>4.3.0</karaf.version>
<!-- Supporting Libraries -->
<!-- Only used internally -->
- <bouncycastle.version>1.66</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. -->
<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
<dependency>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-artifacts</artifactId>
- <version>8.0.0-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.36.1</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>
<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>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
- <version>2.0.7</version>
+ <version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-support</artifactId>
- <version>2.0.7</version>
+ <version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
- <version>2.0.7</version>
+ <version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
- <version>2.0.7</version>
+ <version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
- <version>2.0.7</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>
</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.11</version>
+ <version>3.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
</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-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.52.Final</version>
+ <version>4.1.59.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<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.13.1</version>
+ <version>2.13.2</version>
</dependency>
<dependency>
<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>org.osgi.service.component.annotations</artifactId>
+ <version>1.4.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.metatype.annotations</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.annotation</artifactId>
+ <version>7.0.0</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.cmpn</artifactId>
- <version>6.0.0</version>
+ <version>7.0.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <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>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>6.0.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>
+ <version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.aries.quiesce</groupId>
<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.16</version>
+ <version>7.3.9</version>
</dependency>
<dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
- <version>2.7.0</version>
+ <version>2.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-assertj</artifactId>
- <version>2.7.0</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.7.0</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.7.0</version>
+ <version>2.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-bom</artifactId>
- <version>9.4.28.v20200408</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.23.0</version>
+ <version>2.24.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.xtend</groupId>
<artifactId>org.eclipse.xtend.lib.macro</artifactId>
- <version>2.23.0</version>
+ <version>2.24.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.xtext</groupId>
<artifactId>org.eclipse.xtext.xbase.lib</artifactId>
- <version>2.23.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>
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.36.1</version>
+ <version>8.40</version>
</dependency>
<dependency>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>checkstyle</artifactId>
- <version>8.0.0-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>8.0.0-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.4</version>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-finder-shaded</artifactId>
- <version>4.17</version>
+ <version>4.18</version>
</dependency>
</dependencies>
<configuration>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>5.1.1</version>
+ <version>4.2.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<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.13.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>8.0.0-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.23.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>