1 ========================
2 ODL Parent release notes
3 ========================
8 This is a major upgrade from version 3, with breaking changes; projects will
9 need to make changes to upgrade to this version.
11 ODL Parent 4 requires Maven 3.5.3 or later; this is needed in particular to
12 enable SpotBugs support with current versions of the SpotBugs plugin.
17 This release’s SpotBugs support doesn’t handle Guava 25.1 correctly, resulting
18 in false-positives regarding null handling; see
19 `ODLPARENT-161 <https://jira.opendaylight.org/browse/ODLPARENT-161>`_ for
20 details. Until this is fixed, you can either continue using FindBugs (which is
21 configured to ignore a number of null-handling warnings), or switch to
22 SpotBugs and suppress the appropriate warnings.
24 We are planning on upgrading Akka during the 4.x cycle, even if it results in
25 a technically breaking upgrade. This is currently blocked on an OSGi bug in
26 Akka; see `Akka issue 25579 <https://github.com/akka/akka/issues/25579>`_ for
29 Blueprint and OSGi service handling
30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 Previous releases used an OpenDaylight-specific directory for Blueprint XML
33 files, ``org/opendaylight/blueprint``. It turned out this wasn’t useful, so
34 version 4 uses the default directory, ``OSGI-INF/blueprint``.
36 The Maven bundle plugin is now configured to omit the ``Import-Service`` and
37 ``Export-Service`` headers, since they are deprecated, unnecessary in
38 OpenDaylight, and liable to cause issues.
40 With previous releases of OpenDaylight, projects were encouraged to use Pax
41 CDI API annotations to describe their Blueprint beans, services and injections;
42 with version 4, Blueprint annotations should be used instead:
44 * modules should depend on
45 ``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``, with the
46 ``<optional>true</optional>`` flag, instead of
47 ``org.ops4j.pax.cdi:pax-cdi-api``;
49 * ``@OsgiServiceProvider`` and ``@OsgiService`` on bean definitions are
50 replaced by ``@Service``;
52 * ``@OsgiService`` at injection points is replaced by ``@Reference``;
54 * service lists can be injected using ``@ReferenceList``.
56 See `this Gerrit patch <https://git.opendaylight.org/gerrit/75699>`_ for an
62 Builds now warn about unchecked type uses (such as raw types where generics
65 JUnit and Mockito are always available as test dependencies and no longer need
66 to be declared in POMs.
71 An OWASP profile is now available to run OWASP’s dependency checker; this will
72 check all third-party dependencies against the NVD vulnerability database. To
73 enable this, run Maven with ``-Powasp``.
78 ``-Pq`` now skips Modernizer.
83 ``odl-akka-leveldb-0.10`` wraps LevelDB 0.10 for Akka.
85 ``odl-apache-commons-codec`` wraps Apache Commons Codec.
87 ``odl-apache-commons-lang3`` wraps Apache Commons Lang 3.
89 ``odl-apache-commons-net`` wraps Apache Commons Net.
91 ``odl-apache-commons-text`` wraps Apache Commons Text.
93 ``odl-apache-sshd`` wraps Apache SSHD.
95 ``odl-guava`` provides the default ODL version of Guava; it should be used
96 instead of ``odl-guava-23`` or the new ``odl-guava-25``.
98 ``odl-jackson-2.9`` wraps Jackson 2.9.
100 New FindBugs and SpotBugs settings
101 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103 FindBugs and SpotBugs are configured with
104 `the SLF4J extension <http://kengotoda.github.io/findbugs-slf4j/>`_ (version
105 1.4.0 for FindBugs, 1.4.1 for SpotBugs). This will flag misused SLF4J calls, in
106 particular message templates which don’t match the arguments, and invalid
107 placeholders (*e.g.* ``%s`` instead of ``{}``).
112 ``aggregator-parent`` was unusable outside ``odlparent`` and has been removed.
113 Instead, the ``maven.deploy.skip`` and ``maven.install.skip`` properties are
114 available to disable deploying and installing artifacts.
116 Upstream version upgrades
117 ~~~~~~~~~~~~~~~~~~~~~~~~~
119 This version upgrades the following third-party dependencies:
121 * Aeron 1.7.0 → 1.9.3:
123 * `1.8.0 <https://github.com/real-logic/aeron/releases/tag/1.8.0>`_.
124 * `1.8.1 <https://github.com/real-logic/aeron/releases/tag/1.8.1>`_.
125 * `1.8.2 <https://github.com/real-logic/aeron/releases/tag/1.8.2>`_.
126 * `1.9.0 <https://github.com/real-logic/aeron/releases/tag/1.9.0>`_.
127 * `1.9.1 <https://github.com/real-logic/aeron/releases/tag/1.9.1>`_.
128 * `1.9.2 <https://github.com/real-logic/aeron/releases/tag/1.9.2>`_.
129 * `1.9.3 <https://github.com/real-logic/aeron/releases/tag/1.9.3>`_.
131 * Agrona 0.9.12 → 0.9.21:
133 * `0.9.13 <https://github.com/real-logic/agrona/releases/tag/0.9.13>`_.
134 * `0.9.14 <https://github.com/real-logic/agrona/releases/tag/0.9.14>`_.
135 * `0.9.15 <https://github.com/real-logic/agrona/releases/tag/0.9.15>`_.
136 * `0.9.16 <https://github.com/real-logic/agrona/releases/tag/0.9.16>`_.
137 * `0.9.17 <https://github.com/real-logic/agrona/releases/tag/0.9.17>`_.
138 * `0.9.18 <https://github.com/real-logic/agrona/releases/tag/0.9.18>`_.
139 * `0.9.19 <https://github.com/real-logic/agrona/releases/tag/0.9.19>`_.
140 * `0.9.20 <https://github.com/real-logic/agrona/releases/tag/0.9.20>`_.
141 * `0.9.21 <https://github.com/real-logic/agrona/releases/tag/0.9.21>`_.
143 * Akka 2.5.11 → 2.5.14:
145 * `2.5.12 <https://akka.io/blog/news/2018/04/13/akka-2.5.12-released>`_.
146 * `2.5.13 <https://akka.io/blog/news/2018/06/08/akka-2.5.13-released>`_.
147 * `2.5.14 <https://akka.io/blog/news/2018/07/13/akka-2.5.14-released>`_.
149 * ASM 5.1 → 6.2.1 (synchronised with Karaf).
151 * Bouncy Castle `1.59 → 1.60 <https://www.bouncycastle.org/releasenotes.html>`_.
153 * Checkstyle `8.4 → 8.12 <http://checkstyle.sourceforge.net/releasenotes.html#Release_8.12>`_.
155 * Commons Lang `3.7 → 3.8 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_.
157 * Commons Text 1.1 → 1.4:
159 * `1.2 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.2.txt>`_.
160 * `1.3 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.3.txt>`_.
161 * `1.4 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.4.txt>`_.
163 * Eclipse JDT annotations 2.1.150 → 2.2.0.
165 * EclipseLink Moxy JAXB `2.7.1 → 2.7.3 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
167 * Enunciate core annotations
168 `2.10.1 → 2.11.1 <https://github.com/stoicflame/enunciate/releases>`_.
170 * Felix Metatype 1.1.6 → 1.2.0 (synchronised with Karaf).
172 * Google Truth `0.40 → 0.42 <https://github.com/google/truth/releases>`_.
174 * Guava 23.6.1 → 25.1:
176 * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_.
177 * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_.
178 * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_.
179 * `24.0 <https://github.com/google/guava/releases/tag/v24.0>`_.
180 * `24.1 <https://github.com/google/guava/releases/tag/v24.1>`_.
181 * `25.0 <https://github.com/google/guava/releases/tag/v25.0>`_.
182 * `25.1 <https://github.com/google/guava/releases/tag/v25.1>`_.
184 * Immutables `2.5.6 → 2.7.1 <https://github.com/immutables/immutables/blob/master/README.md#changelog>`_.
186 * Jackson 2.8.9 → 2.9.6:
188 * `2.9 feature overview <https://medium.com/@cowtowncoder/jackson-2-9-features-b2a19029e9ff>`_.
189 * `2.9 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9>`_.
190 * `2.9.1 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.1>`_.
191 * `2.9.2 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.2>`_.
192 * `2.9.3 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.3>`_.
193 * `2.9.4 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.4>`_.
194 * `2.9.5 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.5>`_.
195 * `2.9.6 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.6>`_.
197 * JaCoCo `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
199 * Javassist 3.22.0 → 3.23.1. This provides compatibility with Java 9 and later,
200 and `fixes a file handle leak <https://github.com/jboss-javassist/javassist/issues/165>`_.
202 * Jettison 1.3.8 → 1.4.0.
204 * Jetty 9.3.21 → 9.4.11 (synchronised with Karaf):
206 * `9.4.0 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00097.html>`_.
207 * `9.4.1 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00100.html>`_.
208 * `9.4.2 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00101.html>`_.
209 * `9.4.3 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00102.html>`_.
210 * `9.4.4 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00105.html>`_.
211 * `9.4.5 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00107.html>`_.
212 * `9.4.6 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00109.html>`_.
213 * `9.4.7 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00111.html>`_.
214 * `9.4.8 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00114.html>`_.
215 * `9.4.9 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00117.html>`_.
216 * `9.4.10 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00119.html>`_.
217 * `9.4.11 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00122.html>`_.
219 * Jolokia OSGi `1.5.0 → 1.6.0 <https://jolokia.org/changes-report.html#a1.6.0>`_.
221 * Karaf 4.1.5 → 4.2.1:
223 * `4.1.6 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342748>`_.
224 * `4.2.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342945>`_.
226 * LMAX Disruptor 3.3.10 → 3.4.1:
228 * `3.4.0 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.0>`_.
229 * `3.4.1 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.1>`_.
231 * META-INF services 1.7 → 1.8.
233 * Mockito 1.10.19 → 2.20.1; see
234 `What’s new in Mockito 2 <https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2>`_
235 for upgrade instructions and
236 `the list of issues you might run into <https://asolntsev.github.io/en/2016/10/11/mockito-2.1/>`_.
238 * Netty 4.1.22 → 4.1.28:
240 * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_.
241 * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_.
242 * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_.
243 * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_.
244 * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_.
245 * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_.
246 * `4.1.23 <http://netty.io/news/2018/04/04/4-1-23-Final.html>`_.
247 * `4.1.24 <http://netty.io/news/2018/04/19/4-1-24-Final.html>`_.
248 * `4.1.25 <http://netty.io/news/2018/05/14/4-1-25-Final.html>`_.
249 * `4.1.26 <http://netty.io/news/2018/07/10/4-1-26-Final.html>`_.
250 * `4.1.27 <http://netty.io/news/2018/07/11/4-1-27-Final.html>`_.
251 * `4.1.28 <http://netty.io/news/2018/07/27/4-1-28-Final.html>`_.
253 * Pax Exam 4.11.0 → 4.12.0.
255 * Pax URL 2.5.3 → 2.5.4, which only fixes
256 `a potential NullPointerException <https://ops4j1.jira.com/browse/PAXURL-346>`_.
258 * PowerMock 1.6.4 → 1.7.4:
260 * `1.6.5 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.5>`_.
261 * `1.6.6 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.6>`_.
262 * `1.7.0 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.0>`_.
263 * `1.7.1 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.1>`_.
264 * `1.7.2 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.2>`_.
265 * `1.7.3 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.3>`_.
266 * `1.7.4 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.4>`_.
268 * Scala parser combinators 1.0.7 → 1.1.1:
270 * `1.1.0 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.0>`_.
271 * `1.1.1 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.1>`_.
273 * SpotBugs `3.1.0 → 3.1.6 <https://github.com/spotbugs/spotbugs/blob/3.1.6/CHANGELOG.md>`_.
275 * Threeten Extra `1.3.2 → 1.4 <https://github.com/ThreeTen/threeten-extra/releases>`_.
277 * Typesafe SSL config 0.2.2 → 0.2.4:
279 * `0.2.3 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.3>`_.
280 * `0.2.4 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.4>`_.
283 `2.10 → 3.1.0 <https://lists.apache.org/thread.html/96024c54db7680697cb066e22a37b0ed5b4498386714a8a9ae1ec9cd@%3Cannounce.maven.apache.org%3E>`_.
285 * XMLUnit `1.6 → 2.6.2 <https://github.com/xmlunit/xmlunit/blob/master/RELEASE_NOTES.md>`_.
287 Upstream version additions
288 ~~~~~~~~~~~~~~~~~~~~~~~~~~
290 The following upstream dependencies have been added to dependency management:
292 * Apache SSHD 2.0.0, with EdDSA and Netty support (EdDSA is provided by ``net.i2p.crypto:eddsa``).
294 * Blueprint annotations (``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``).
298 * Pax Web 7.2.3 (synchronised with Karaf).
300 Upstream version removals
301 ~~~~~~~~~~~~~~~~~~~~~~~~~
303 The following upstream dependencies have been removed from dependency management:
307 * Our repackaging of Jersey Servlet.
309 * JUnit’s ``junit-dep``, which has long been obsolete.
311 * LevelDB (which is still available as features).
313 * Pax CDI API — Blueprint annotations should be used instead.
315 Plugin version upgrades
316 ~~~~~~~~~~~~~~~~~~~~~~~
318 The following plugins have been upgraded:
320 * Blueprint 1.4.0 → 1.10.0.
322 * Build helper 1.12 → 3.0.0.
324 * Bundle plugin 3.5.0 → 4.0.0.
327 `2.17 → 3.0.0 <https://mail-archives.apache.org/mod_mbox/maven-announce/201801.mbox/%3Cop.zchs68akkdkhrr%40desktop-2khsk44.mshome.net%3E>`_.
330 `1.2.1 → 1.3.0 <https://github.com/basepom/duplicate-finder-maven-plugin/blob/master/CHANGES.md>`_.
332 * Git commit id `2.2.4 → 2.2.5 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.5>`_.
334 * Jacoco Maven plugin `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
336 * Javadoc `3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
340 * `3.10.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12342689&styleName=Text&projectId=12317621>`_.
342 * Sevntu `1.29.0 → 1.32.0 <http://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.32.0>`_.
344 * SpotBugs 3.1.0-RC6 → 3.1.6 (see the SpotBugs changes above).
349 This version fixes the following issues:
351 * `ODLPARENT-156 <https://jira.opendaylight.org/browse/ODLPARENT-156>`_:
352 ``xtend-maven-plugin``’s dependencies end up pulling in conflicting
353 dependencies. ODL Parent now constrains part of its dependency tree to avoid
356 This version adds ``odl-jackson-2.8`` to ``odlparent-artifacts``.
361 This version fixes the following issues:
363 * `INFRAUTILS-41 <https://jira.opendaylight.org/browse/INFRAUTILS-41>`_:
364 ``jre.properties`` includes ``com.sun.management`` so that it can be
365 enabled if necessary. (This doesn’t add a dependency on
366 ``com.sun.management``, it allows bundles to use it if it is present.)
368 * `ODLPARENT-136 <https://jira.opendaylight.org/browse/ODLPARENT-136>`_:
369 ``SingleFeatureTest`` pulls in ``org.osgi.compendium``.
371 * `ODLPARENT-144 <https://jira.opendaylight.org/browse/ODLPARENT-144>`_:
372 ``org.apache.karaf.scr.management`` is whitelisted so that it no longer
373 affects ``SingleFeatureTest``.
375 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
376 null-related FindBugs checks which produce false-positives with Guava 23.6
377 and later are disabled, so that this really is fully backwards-compatible
380 * `ODLPARENT-148 <https://jira.opendaylight.org/browse/ODLPARENT-148>`_:
381 ``SingleFeatureTest`` preserves ``target/SFT/karaf.log``.
383 This version includes the following improvements:
385 * ``custom.properties`` no longer includes OVSDB-specific configuration.
387 * The ``odl-jersey-1`` feature includes the Jersey client.
389 * Redundant bundle dependency declarations in ``SingleFeatureTest`` have been
390 removed (these are declarations which are also present in our base Karaf
393 * Build errors involving invalid feature or bundle URLs now indicate which
396 * Obsolete Log4J overrides have been removed from ``SingleFeatureTest``.
398 When building using JDK 9 or 10, the default settings have been changed as
399 follows to avoid errors or extraneous warnings:
401 * SFT is disabled (it needs Karaf 4.2 or later);
403 * Javadocs are generated as HTML 4;
405 * SpotBugs is disabled on JDK 10 or later;
407 * FindBugs is disabled on JDK 9 or later.
409 The following third-party dependencies have been upgraded:
411 * `EclipseLink Moxy JAXB 2.6.2 → 2.7.1 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
413 * `Google Truth 0.36 → 0.40 <https://github.com/google/truth/releases>`_.
415 * `Gson 2.8.2 → 2.8.5 <https://github.com/google/gson/blob/master/CHANGELOG.md>`_.
417 * `Guava 23.6 → 23.6.1 <https://github.com/google/guava/compare/v23.6...v23.6.1>`_.
418 This addresses CVE-2018-10237 (that’s the only change in this release).
420 * `Jacoco Maven plugin 0.8.0 → 0.8.1 <https://github.com/jacoco/jacoco/releases/tag/v0.8.1>`_.
422 * JDT annotations 2.1.0 → 2.1.150.
424 * `Scala 2.12.5 → 2.12.6 <https://github.com/scala/scala/releases/tag/v2.12.6>`_.
426 * `Scala Parser Combinators 1.0.6 → 1.0.7 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.0.7>`_.
428 * `Sevntu 1.24.2 → 1.29.0 <https://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.29.0>`_.
430 * `Xtext and Xtend 2.13.0 → 2.14.0 <https://github.com/eclipse/xtext/blob/website-master/xtend-website/_posts/releasenotes/2018-05-23-version-2-14-0.md>`_.
432 The following Maven plugin has been upgraded:
434 * `Javadoc 3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
439 This version fixes the following issues:
441 * `ODLPARENT-137 <https://jira.opendaylight.org/browse/ODLPARENT-137>`_:
442 restore the OpenDaylight prompt.
444 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
445 Guava 23.6 switched from @Nullable to @NullableDecl, which causes false
446 positives in FindBugs’ ``NP_NONNULL_PARAM_VIOLATION`` rule; we’re
447 disabling the rule for now.
452 This version fixes the following issues:
454 * Mycila dependencies are now “compile” scoped rather than “test”; this allows
455 child projects to use Guice with Mycila more easily.
457 * The duplicate finder now ignores ``web.xml`` and BluePrint XML files.
459 This version includes the following improvements:
461 * The ``-Pq`` profile skips Maven Modernizer, in preparation for its future
462 integration (and its use in child projects).
464 * An OWASP profile, ``-Powasp`` is available for vulnerability checking.
466 * A new ``odl-jackson-2.8`` feature provides Jackson 2.8 to child projects.
468 The following third-party dependencies have been added to dependency management:
470 * `ThreeTen-Extra <http://www.threeten.org/threeten-extra/>`_
472 The following third-party dependencies have been upgraded:
474 * Aeron 1.2.5 → 1.7.0; release notes:
476 * `1.3.0 <https://github.com/real-logic/aeron/releases/tag/1.3.0>`_
477 * `1.4.0 <https://github.com/real-logic/aeron/releases/tag/1.4.0>`_
478 * `1.5.0 <https://github.com/real-logic/aeron/releases/tag/1.5.0>`_
479 * `1.5.1 <https://github.com/real-logic/aeron/releases/tag/1.5.1>`_
480 * `1.5.2 <https://github.com/real-logic/aeron/releases/tag/1.5.2>`_
481 * `1.6.0 <https://github.com/real-logic/aeron/releases/tag/1.6.0>`_
482 * `1.7.0 <https://github.com/real-logic/aeron/releases/tag/1.7.0>`_
484 * Agrona 0.9.5 → 0.9.12; release notes:
486 * `0.9.6 <https://github.com/real-logic/Agrona/releases/tag/0.9.6>`_
487 * `0.9.7 <https://github.com/real-logic/Agrona/releases/tag/0.9.7>`_
488 * `0.9.8 <https://github.com/real-logic/Agrona/releases/tag/0.9.8>`_
489 * `0.9.9 <https://github.com/real-logic/Agrona/releases/tag/0.9.9>`_
490 * `0.9.10 <https://github.com/real-logic/Agrona/releases/tag/0.9.10>`_
491 * `0.9.11 <https://github.com/real-logic/Agrona/releases/tag/0.9.11>`_
492 * `0.9.12 <https://github.com/real-logic/Agrona/releases/tag/0.9.12>`_
494 * Akka 2.5.5 → 2.5.11; release notes:
496 * `2.5.6 <https://akka.io/blog/news/2017/09/28/akka-2.5.6-released>`_
497 * `2.5.7 <https://akka.io/blog/news/2017/11/17/akka-2.5.7-released>`_
498 * `2.5.8 <https://akka.io/blog/news/2017/12/08/akka-2.5.8-released>`_
499 * `2.5.9 <https://akka.io/blog/news/2018/01/11/akka-2.5.9-released-2.4.x-end-of-life>`_
500 * `2.5.10 <https://akka.io/blog/news/2018/02/23/akka-2.5.10-released>`_
501 * `2.5.11 <https://akka.io/blog/news/2018/02/28/akka-2.5.11-released>`_
503 * Commons Lang 3 `3.6 → 3.7 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_
505 * Guava 23.3 → 23.6; release notes:
507 * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_
508 * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_
509 * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_
511 * H2 database `1.4.193 → 1.4.196 <http://www.h2database.com/html/changelog.html>`_
513 * Jacoco `0.7.9 → 0.8.0 <https://github.com/jacoco/jacoco/releases/tag/v0.8.0>`_
515 * Javassist `3.21.0 → 3.22.0 <https://github.com/jboss-javassist/javassist/compare/rel_3_21_0_ga...rel_3_22_0_ga>`_
517 * lmax-disruptor 3.3.7 → 3.3.10; release notes:
519 * `3.3.8 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.8>`_
520 * `3.3.9 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.9>`_
521 * `3.3.10 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.10>`_
523 * Netty 4.1.16 → 4.1.22; release notes:
525 * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_
526 * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_
527 * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_
528 * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_
529 * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_
530 * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_
532 * Scala `2.12.4 → 2.12.5 <http://www.scala-lang.org/news/2.12.5>`_
534 * Typesafe Config `0.2.1 → 0.2.2 <https://github.com/typesafehub/config/blob/master/NEWS.md>`_
536 The following Maven plugins have been upgraded:
538 * FindBugs 3.0.4 → 3.0.5
540 * Git commit id 2.2.2 → 2.2.4; release notes:
542 * `2.2.3 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.3>`_
543 * `2.2.4 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.4>`_
548 This version fixes the following issues:
550 * `ODLPARENT-136`_: ``features-test`` needs ``org.osgi.compendium``.
552 * Jackson dependencies are declared using ``jackson-bom`` to ensure all they
555 * ``find-duplicate-classpath-entries`` is run in the “verify” phase rather than
556 the “validate” phase, which is too early.
558 * The version of Jetty we pull in is now aligned with that declared in Karaf,
559 resolving a number of restart and dependency issues.
561 * Pulling in the ``wrap`` feature unconditionally is no longer necessary, so
562 ``karaf4-parent`` no longer does so.
564 * ``metainf-services`` are declared with scope “provided” to avoid their being
565 included in downstream features (it’s a build-time dependency only).
567 * ``leveldb-api`` is excluded from ``odl-akka-leveldb-0.7``, and ``jsr250-api``
568 from ``enunciate-core-annotations``, to avoid duplicate having classes on the
571 * Since the ``ssh`` feature is excluded from generated features, our Karaf
572 need to enable it at boot in all cases.
574 * ``bundle-test-lib`` is now a bundle.
576 * Since we use static SLF4J loggers, the ``SLF4J_LOGGER_SHOULD_BE_NON_STATIC``
577 rule needs to be disabled in our FindBugs configuration (this allows
578 downstream projects to enable ``findbugs-slf4j`` without having to deal with
579 all the resulting false-positives).
581 * ``org.apache.karaf.scr.management`` is white-listed in SFT to avoid failures
582 apparently related to that component (which we don’t care about).
584 .. _ODLPARENT-136: https://jira.opendaylight.org/browse/ODLPARENT-136
586 This version upgrades the following third-party dependencies:
588 * `Antlr 4.7 → 4.7.1`_
590 * `BouncyCastle 1.58 → 1.59`_
592 * Jersey 1.17 → 1.19.4 (additionally available as the ``odl-jersey-1`` feature)
594 * Jolokia 1.3.7 → 1.5.0
596 * Karaf 4.1.3 → 4.1.5; release notes:
601 .. _Antlr 4.7 → 4.7.1: https://github.com/antlr/antlr4/releases/tag/4.7.1
602 .. _BouncyCastle 1.58 → 1.59: https://www.bouncycastle.org/releasenotes.html
603 .. _Karaf 4.1.4: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12341702
604 .. _Karaf 4.1.5: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342294
609 This version fixes the following issues:
611 * SingleFeatureTest uses the configured local Maven repository for Pax Exam.
613 * JavaDoc links are disabled for now to `speed up builds`_. A new
614 ``javadoc-links`` profile enables the links.
616 * Conditional feature dependencies are processed, ensuring our
617 `distribution is complete`_.
619 * Startup features are `adjusted for Karaf 4.1`_, avoiding unnecessary
622 * The ``hiddenField`` Checkstyle check is disabled for abstract methods.
624 * The default logging configuration uses Log4J2, which is the new default in
627 .. _speed up builds: https://jira.opendaylight.org/browse/ODLPARENT-121
628 .. _distribution is complete: https://jira.opendaylight.org/browse/ODLPARENT-133
629 .. _adjusted for Karaf 4.1: https://jira.opendaylight.org/browse/ODLPARENT-134
631 This version upgrades the following dependencies or plugins:
633 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
635 * ``maven-javadoc-plugin`` 3.0.0-M1 → 3.0.0
640 This version fixes the following issues:
642 * Karaf pulls in an invalid Hibernate feature repository, breaking downstream
643 dependencies pulling in the “war” feature. ``populate-local-repo`` corrects
644 the repository dependency.
653 Build now show compiler warnings and deprecation warnings. This doesn't affect
654 the result or require any changes currently, it just makes the issues more
660 Checkstyle has been upgraded from 7.6 to 8.4 (see the
661 `Checkstyle release notes`_ for details), and Sevntu from 1.21.0 to 1.24.2
662 (note that the latter's group identifier changed from
663 ``com.github.sevntu.checkstyle`` to ``com.github.sevntu-checkstyle``; you
664 might need to update your IDE's configuration).
666 The following Checkstyle rules are enabled; this might require changes in
667 projects which enforce Checkstyle validation:
669 * `AvoidHidingCauseExceptionCheck`_
670 * `FinalClass`_: utility classes must be declared ``final``
671 * `HiddenField`_: fields must not be shadowed
672 * `HideUtilityClassConstructor`_: utility classes must hide their constructor
674 .. _Checkstyle release notes: http://checkstyle.sourceforge.net/releasenotes.html
676 .. _AvoidHidingCauseExceptionCheck: http://sevntu-checkstyle.github.io/sevntu.checkstyle/apidocs/com/github/sevntu/checkstyle/checks/coding/AvoidHidingCauseExceptionCheck.html
677 .. _FinalClass: http://checkstyle.sourceforge.net/config_design.html#FinalClass
678 .. _HiddenField: http://checkstyle.sourceforge.net/config_coding.html#HiddenField
679 .. _HideUtilityClassConstructor: http://checkstyle.sourceforge.net/config_design.html#HideUtilityClassConstructor
684 Karaf has been upgraded to 4.1.3. This should be transparent for dependent
690 * When building a Karaf distribution using ``karaf4-parent``, projects can
691 specify which archives to build: the ``karaf.archiveZip`` property will
692 enable ZIP files if true, and ``karaf.archiveTarGz`` will enable
693 gzip-compressed tarballs if true. By default both are enabled.
695 * Our Karaf distribution provides Bouncy Castle at startup. Auto-generated
696 feature descriptors take this into account (they won't embed a Bouncy
702 * The ``odl-triemap-0.2`` feature wrapping
703 ``com.github.romix:java-concurrent-hash-trie-map`` was rendered obsolete by
704 YANG Tools' implementation and has been removed.
709 * ``odl-javassist-3`` provides Javassist in a feature.
711 * ``odl-jung-2.1`` provides `JUNG`_ in a feature.
713 .. _JUNG: http://jung.sourceforge.net/
715 Upstream version upgrades
716 ~~~~~~~~~~~~~~~~~~~~~~~~~
718 The following upstream dependencies have been upgraded:
720 * Akka 2.4.18 → 2.5.4; release notes:
728 * `Awaitility 2 → 3`_
730 * `Bouncy Castle 1.57 → 1.58`_
732 * `Commons Codec 1.10 → 1.11`_
734 * `Commons File Upload 1.3.2 → 1.3.3`_
736 * `Commons IO 2.5 → 2.6`_
738 * Eclipse JDT annotations 2.0.0 → 2.1.0
740 * Felix Dependency Manager 4.3.0 → 4.4.1
741 * Felix Dependency Manager Shell 4.0.4 → 4.0.6
742 * Felix Metatype 1.1.2 → 1.1.6
744 * `Google Truth 0.28 → 0.36`_ (with the Java 8 extensions)
746 * `Gson 2.7 → 2.8.2`_
748 * Guava 22 → 23.3 along with the associated feature name change from
749 ``odl-guava-22`` to ``odl-guava-23`` (dependent packages *must* change their
750 dependency); release notes:
757 * Immutables 2.4.2 → 2.5.6
759 * Jackson 2.3.2 → 2.8.9
761 * Jacoco 0.7.7 → 0.7.9; release notes:
766 * Jacoco Listeners 2.4 → 3.8
768 * `Javassist 3.20.0 → 3.21.0`_
770 * `Jettison 1.3.7 → 1.3.8`_
772 * `Jolokia 1.3.6 → 1.3.7`_
774 * `JSONassert 1.3.0 → 1.5.0`_
776 * `logback 1.2.2 → 1.2.3`_
778 * `LMAX Disruptor 3.3.6 → 3.3.7`_
780 * Netty 4.1.8 → 4.1.16; release notes:
791 * `Pax URL 2.5.2 → 2.5.3`_
793 * Scala 2.11.11 → 2.12.4; release notes:
801 * Servlet API 3.0.1 → 3.1.0
803 * `SLF4J 1.7.21 → 1.7.25`_
805 * `webcohesion enunciate 2.6.0 → 2.10.1`_
807 * `Xtend 2.12 → 2.13`_
809 .. _Akka 2.5.0: http://akka.io/blog/news/2017/04/13/akka-2.5.0-released
810 .. _Akka 2.5.1: http://akka.io/blog/news/2017/05/02/akka-2.5.1-released
811 .. _Akka 2.5.2: http://akka.io/blog/news/2017/05/24/akka-2.5.2-released
812 .. _Akka 2.5.3: http://akka.io/blog/news/2017/06/19/akka-2.5.3-released
813 .. _Akka 2.5.4: http://akka.io/blog/news/2017/08/10/akka-2.5.4-released
815 .. _Awaitility 2 → 3: https://github.com/awaitility/awaitility/wiki/ReleaseNotes30
817 .. _Bouncy Castle 1.57 → 1.58: https://www.bouncycastle.org/releasenotes.html
819 .. _Commons Codec 1.10 → 1.11: http://www.apache.org/dist/commons/codec/RELEASE-NOTES.txt
821 .. _Commons File Upload 1.3.2 → 1.3.3: http://www.apache.org/dist/commons/fileupload/RELEASE-NOTES.txt
823 .. _Commons IO 2.5 → 2.6: http://www.apache.org/dist/commons/io/RELEASE-NOTES.txt
825 .. _Google Truth 0.28 → 0.36: https://github.com/google/truth/releases
827 .. _Gson 2.7 → 2.8.2: https://github.com/google/gson/blob/master/CHANGELOG.md
829 .. _Guava 23: https://github.com/google/guava/wiki/Release23
830 .. _Guava 23.1: https://github.com/google/guava/releases/tag/v23.1
831 .. _Guava 23.2: https://github.com/google/guava/releases/tag/v23.2
832 .. _Guava 23.3: https://github.com/google/guava/releases/tag/v23.3
834 .. _Jacoco 0.7.8: https://github.com/jacoco/jacoco/releases/tag/v0.7.8
835 .. _Jacoco 0.7.9: https://github.com/jacoco/jacoco/releases/tag/v0.7.9
837 .. _Javassist 3.20.0 → 3.21.0: https://github.com/jboss-javassist/javassist/compare/rel_3_20_0_ga...rel_3_21_0_ga
839 .. _Jettison 1.3.7 → 1.3.8: https://github.com/jettison-json/jettison/compare/jettison-1.3.7...jettison-1.3.8
841 .. _Jolokia 1.3.6 → 1.3.7: https://github.com/rhuss/jolokia/releases/tag/v1.3.7
843 .. _JSONassert 1.3.0 → 1.5.0: https://github.com/skyscreamer/JSONassert/releases
845 .. _logback 1.2.2 → 1.2.3: https://logback.qos.ch/news.html
847 .. _LMAX Disruptor 3.3.6 → 3.3.7: https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.7
849 .. _Netty 4.1.9: http://netty.io/news/2017/03/10/4-0-45-Final-4-1-9-Final.html
850 .. _Netty 4.1.10: http://netty.io/news/2017/04/30/4-0-46-Final-4-1-10-Final.html
851 .. _Netty 4.1.11: http://netty.io/news/2017/05/12/4-0-47-Final-4-1-11-Final.html
852 .. _Netty 4.1.12: http://netty.io/news/2017/06/09/4-0-48-Final-4-1-12-Final.html
853 .. _Netty 4.1.13: http://netty.io/news/2017/07/06/4-0-49-Final-4-1-13-Final.html
854 .. _Netty 4.1.14: http://netty.io/news/2017/08/03/4-0-50-Final-4-1-14-Final.html
855 .. _Netty 4.1.15: http://netty.io/news/2017/08/25/4-0-51-Final-4-1-15-Final.html
856 .. _Netty 4.1.16: http://netty.io/news/2017/09/25/4-0-52-Final-4-1-16-Final.html
858 .. _Pax URL 2.5.2 → 2.5.3: https://ops4j1.jira.com/browse/PAXURL-345?jql=project%20%3D%20PAXURL%20AND%20fixVersion%20%3D%202.5.3
860 .. _Scala 2.12.0: https://github.com/scala/scala/releases/tag/v2.12.0
861 .. _Scala 2.12.1: https://github.com/scala/scala/releases/tag/v2.12.1
862 .. _Scala 2.12.2: https://github.com/scala/scala/releases/tag/v2.12.2
863 .. _Scala 2.12.3: https://github.com/scala/scala/releases/tag/v2.12.3
864 .. _Scala 2.12.4: https://github.com/scala/scala/releases/tag/v2.12.4
866 .. _SLF4J 1.7.21 → 1.7.25: https://www.slf4j.org/news.html
868 .. _webcohesion enunciate 2.6.0 → 2.10.1: https://github.com/stoicflame/enunciate/releases
870 .. _Xtend 2.12 → 2.13: https://www.eclipse.org/xtend/releasenotes.html
872 Upstream version additions
873 ~~~~~~~~~~~~~~~~~~~~~~~~~~
875 The following upstream dependencies have been added to dependency management:
877 * Commons Text, ``org.apache.commons:commons-text`` (this will allow downstreams
878 to migrate from ``commons-lang3``\’s ``WordUtils``, which is deprecated)
880 Upstream version removals
881 ~~~~~~~~~~~~~~~~~~~~~~~~~
883 The following upstream dependencies have been removed from dependency
884 management (they are obsolete and unused):
888 * Equinox HTTP service bridge
889 * ``equinoxSDK381`` artifacts
890 * Coda Hale Metrics, which are mostly unused and should eventually be wrapped
892 * ``com.google.code.findbugs:jsr305`` (which *must not* be used; this is
893 enforced — ``annotations`` should be used instead)
894 * Felix File Install and Web Console
897 * ``org.mockito:mockito-all`` (which *must not* be used; this is enforced —
898 ``mockito-core`` should be used instead)
904 Plugin version upgrades
905 ~~~~~~~~~~~~~~~~~~~~~~~
907 The following plugins have been upgraded:
909 * ``org.apache.servicemix.tooling:depends-maven-plugin`` 1.3.1 → 1.4.0
910 * ``org.apache.felix:maven-bundle-plugin`` 2.4.0 → 3.3.0
911 * ``maven-compiler-plugin`` 3.6.1 → 3.7.0
912 * ``maven-dependency-plugin`` 3.0.1 → 3.0.2
913 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
914 * ``maven-failsafe-plugin`` 2.18.1 → 2.20.1
915 * ``maven-javadoc-plugin`` 2.10.4 → 3.0.0-M1
916 * ``maven-shade-plugin`` 2.4.3 → 3.1.0
921 * The `Maven Find Duplicates`_ plugin can be enabled by setting the
922 ``duplicate-finder.skip`` property to ``false``.
924 * The SpotBugs_ Maven plugin can now be used instead of the FindBugs plugin
925 (both are available, so no change is required). To use SpotBugs, replace
926 ``org.codehaus.mojo:findbugs-maven-plugin`` with
927 ``com.github.spotbugs:spotbugs-maven-plugin``.
929 .. _Maven Find Duplicates: https://github.com/basepom/duplicate-finder-maven-plugin/
931 .. _SpotBugs: https://spotbugs.github.io/