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 `This Wiki page <https://wiki.opendaylight.org/view/Neon_platform_upgrade>`_
12 has detailed step-by-step migration instructions.
14 ODL Parent 4 requires Maven 3.5.3 or later; this is needed in particular to
15 enable SpotBugs support with current versions of the SpotBugs plugin.
20 This release’s SpotBugs support doesn’t handle Guava 25.1 correctly, resulting
21 in false-positives regarding null handling; see
22 `ODLPARENT-161 <https://jira.opendaylight.org/browse/ODLPARENT-161>`_ for
23 details. Until this is fixed, the corresponding warnings are disabled, which
24 matches our existing FindBugs configuration (which suffers from the a variant
25 of this, with the same consequences).
27 We are planning on upgrading Akka during the 4.x cycle, even if it results in
28 a technically breaking upgrade. This is currently blocked on an OSGi bug in
29 Akka; see `Akka issue 25579 <https://github.com/akka/akka/issues/25579>`_ for
32 Blueprint and OSGi service handling
33 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35 Previous releases used an OpenDaylight-specific directory for Blueprint XML
36 files, ``org/opendaylight/blueprint``. It turned out this wasn’t useful, so
37 version 4 uses the default directory, ``OSGI-INF/blueprint``.
39 The Maven bundle plugin is now configured to omit the ``Import-Service`` and
40 ``Export-Service`` headers, since they are deprecated, unnecessary in
41 OpenDaylight, and liable to cause issues.
43 With previous releases of OpenDaylight, projects were encouraged to use Pax
44 CDI API annotations to describe their Blueprint beans, services and injections;
45 with version 4, Blueprint annotations should be used instead:
47 * modules should depend on
48 ``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``, with the
49 ``<optional>true</optional>`` flag, instead of
50 ``org.ops4j.pax.cdi:pax-cdi-api``;
52 * ``@OsgiServiceProvider`` on bean definitions is replaced by ``@Service``;
54 * ``@OsgiService`` at injection points is replaced by ``@Reference``;
56 * ``@OsgiService`` on bean definitions, while technically wrong, can be seen in
57 the OpenDaylight codebase; this is replaced by ``@Service``;
59 * service lists can be injected using ``@ReferenceList``.
61 See `this Gerrit patch <https://git.opendaylight.org/gerrit/75699>`_ for an
67 Builds now warn about unchecked type uses (such as raw types where generics
70 JUnit and Mockito are always available as test dependencies and no longer need
71 to be declared in POMs.
76 An OWASP profile is now available to run OWASP’s dependency checker; this will
77 check all third-party dependencies against the NVD vulnerability database. To
78 enable this, run Maven with ``-Powasp``.
83 ``-Pq`` now skips Modernizer.
88 ``odl-akka-leveldb-0.10`` wraps LevelDB 0.10 for Akka.
90 ``odl-apache-commons-codec`` wraps Apache Commons Codec.
92 ``odl-apache-commons-lang3`` wraps Apache Commons Lang 3.
94 ``odl-apache-commons-net`` wraps Apache Commons Net.
96 ``odl-apache-commons-text`` wraps Apache Commons Text.
98 ``odl-apache-sshd`` wraps Apache SSHD.
100 ``odl-guava`` provides the default ODL version of Guava; it should be used
101 instead of ``odl-guava-23`` or the new ``odl-guava-25``.
103 ``odl-jackson-2.9`` wraps Jackson 2.9.
105 New FindBugs and SpotBugs settings
106 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108 FindBugs and SpotBugs are configured with
109 `the SLF4J extension <http://kengotoda.github.io/findbugs-slf4j/>`_ (version
110 1.4.0 for FindBugs, 1.4.1 for SpotBugs). This will flag misused SLF4J calls, in
111 particular message templates which don’t match the arguments, and invalid
112 placeholders (*e.g.* ``%s`` instead of ``{}``).
117 ``aggregator-parent`` was unusable outside ``odlparent`` and has been removed.
118 Instead, the ``maven.deploy.skip`` and ``maven.install.skip`` properties are
119 available to disable deploying and installing artifacts.
121 Upstream version upgrades
122 ~~~~~~~~~~~~~~~~~~~~~~~~~
124 This version upgrades the following third-party dependencies:
126 * Aeron 1.7.0 → 1.9.3:
128 * `1.8.0 <https://github.com/real-logic/aeron/releases/tag/1.8.0>`_.
129 * `1.8.1 <https://github.com/real-logic/aeron/releases/tag/1.8.1>`_.
130 * `1.8.2 <https://github.com/real-logic/aeron/releases/tag/1.8.2>`_.
131 * `1.9.0 <https://github.com/real-logic/aeron/releases/tag/1.9.0>`_.
132 * `1.9.1 <https://github.com/real-logic/aeron/releases/tag/1.9.1>`_.
133 * `1.9.2 <https://github.com/real-logic/aeron/releases/tag/1.9.2>`_.
134 * `1.9.3 <https://github.com/real-logic/aeron/releases/tag/1.9.3>`_.
136 * Agrona 0.9.12 → 0.9.21:
138 * `0.9.13 <https://github.com/real-logic/agrona/releases/tag/0.9.13>`_.
139 * `0.9.14 <https://github.com/real-logic/agrona/releases/tag/0.9.14>`_.
140 * `0.9.15 <https://github.com/real-logic/agrona/releases/tag/0.9.15>`_.
141 * `0.9.16 <https://github.com/real-logic/agrona/releases/tag/0.9.16>`_.
142 * `0.9.17 <https://github.com/real-logic/agrona/releases/tag/0.9.17>`_.
143 * `0.9.18 <https://github.com/real-logic/agrona/releases/tag/0.9.18>`_.
144 * `0.9.19 <https://github.com/real-logic/agrona/releases/tag/0.9.19>`_.
145 * `0.9.20 <https://github.com/real-logic/agrona/releases/tag/0.9.20>`_.
146 * `0.9.21 <https://github.com/real-logic/agrona/releases/tag/0.9.21>`_.
148 * Akka 2.5.11 → 2.5.14:
150 * `2.5.12 <https://akka.io/blog/news/2018/04/13/akka-2.5.12-released>`_.
151 * `2.5.13 <https://akka.io/blog/news/2018/06/08/akka-2.5.13-released>`_.
152 * `2.5.14 <https://akka.io/blog/news/2018/07/13/akka-2.5.14-released>`_.
154 * ASM 5.1 → 6.2.1 (synchronised with Karaf).
156 * Bouncy Castle `1.59 → 1.60 <https://www.bouncycastle.org/releasenotes.html>`_.
158 * Checkstyle `8.4 → 8.12 <http://checkstyle.sourceforge.net/releasenotes.html#Release_8.12>`_.
160 * Commons Lang `3.7 → 3.8 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_.
162 * Commons Text 1.1 → 1.4:
164 * `1.2 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.2.txt>`_.
165 * `1.3 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.3.txt>`_.
166 * `1.4 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.4.txt>`_.
168 * Eclipse JDT annotations 2.1.150 → 2.2.0.
170 * EclipseLink Moxy JAXB `2.7.1 → 2.7.3 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
172 * Enunciate core annotations
173 `2.10.1 → 2.11.1 <https://github.com/stoicflame/enunciate/releases>`_.
175 * Felix Metatype 1.1.6 → 1.2.0 (synchronised with Karaf).
177 * Google Truth `0.40 → 0.42 <https://github.com/google/truth/releases>`_.
179 * Guava 23.6.1 → 25.1:
181 * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_.
182 * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_.
183 * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_.
184 * `24.0 <https://github.com/google/guava/releases/tag/v24.0>`_.
185 * `24.1 <https://github.com/google/guava/releases/tag/v24.1>`_.
186 * `25.0 <https://github.com/google/guava/releases/tag/v25.0>`_.
187 * `25.1 <https://github.com/google/guava/releases/tag/v25.1>`_.
189 * Immutables `2.5.6 → 2.7.1 <https://github.com/immutables/immutables/blob/master/README.md#changelog>`_.
191 * Jackson 2.8.9 → 2.9.6:
193 * `2.9 feature overview <https://medium.com/@cowtowncoder/jackson-2-9-features-b2a19029e9ff>`_.
194 * `2.9 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9>`_.
195 * `2.9.1 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.1>`_.
196 * `2.9.2 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.2>`_.
197 * `2.9.3 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.3>`_.
198 * `2.9.4 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.4>`_.
199 * `2.9.5 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.5>`_.
200 * `2.9.6 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.6>`_.
202 * JaCoCo `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
204 * Javassist 3.22.0 → 3.23.1. This provides compatibility with Java 9 and later,
205 and `fixes a file handle leak <https://github.com/jboss-javassist/javassist/issues/165>`_.
207 * Jettison 1.3.8 → 1.4.0.
209 * Jetty 9.3.21 → 9.4.11 (synchronised with Karaf):
211 * `9.4.0 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00097.html>`_.
212 * `9.4.1 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00100.html>`_.
213 * `9.4.2 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00101.html>`_.
214 * `9.4.3 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00102.html>`_.
215 * `9.4.4 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00105.html>`_.
216 * `9.4.5 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00107.html>`_.
217 * `9.4.6 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00109.html>`_.
218 * `9.4.7 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00111.html>`_.
219 * `9.4.8 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00114.html>`_.
220 * `9.4.9 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00117.html>`_.
221 * `9.4.10 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00119.html>`_.
222 * `9.4.11 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00122.html>`_.
224 * Jolokia OSGi `1.5.0 → 1.6.0 <https://jolokia.org/changes-report.html#a1.6.0>`_.
226 * Karaf 4.1.5 → 4.2.1:
228 * `4.1.6 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342748>`_.
229 * `4.2.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342945>`_.
231 * LMAX Disruptor 3.3.10 → 3.4.1:
233 * `3.4.0 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.0>`_.
234 * `3.4.1 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.1>`_.
236 * META-INF services 1.7 → 1.8.
238 * Mockito 1.10.19 → 2.20.1; see
239 `What’s new in Mockito 2 <https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2>`_
240 for upgrade instructions and
241 `the list of issues you might run into <https://asolntsev.github.io/en/2016/10/11/mockito-2.1/>`_.
243 * Netty 4.1.22 → 4.1.28:
245 * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_.
246 * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_.
247 * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_.
248 * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_.
249 * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_.
250 * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_.
251 * `4.1.23 <http://netty.io/news/2018/04/04/4-1-23-Final.html>`_.
252 * `4.1.24 <http://netty.io/news/2018/04/19/4-1-24-Final.html>`_.
253 * `4.1.25 <http://netty.io/news/2018/05/14/4-1-25-Final.html>`_.
254 * `4.1.26 <http://netty.io/news/2018/07/10/4-1-26-Final.html>`_.
255 * `4.1.27 <http://netty.io/news/2018/07/11/4-1-27-Final.html>`_.
256 * `4.1.28 <http://netty.io/news/2018/07/27/4-1-28-Final.html>`_.
258 * Pax Exam 4.11.0 → 4.12.0.
260 * Pax URL 2.5.3 → 2.5.4, which only fixes
261 `a potential NullPointerException <https://ops4j1.jira.com/browse/PAXURL-346>`_.
263 * PowerMock 1.6.4 → 1.7.4:
265 * `1.6.5 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.5>`_.
266 * `1.6.6 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.6>`_.
267 * `1.7.0 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.0>`_.
268 * `1.7.1 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.1>`_.
269 * `1.7.2 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.2>`_.
270 * `1.7.3 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.3>`_.
271 * `1.7.4 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.4>`_.
273 * Scala parser combinators 1.0.7 → 1.1.1:
275 * `1.1.0 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.0>`_.
276 * `1.1.1 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.1>`_.
278 * SpotBugs `3.1.0 → 3.1.6 <https://github.com/spotbugs/spotbugs/blob/3.1.6/CHANGELOG.md>`_.
280 * Threeten Extra `1.3.2 → 1.4 <https://github.com/ThreeTen/threeten-extra/releases>`_.
282 * Typesafe SSL config 0.2.2 → 0.2.4:
284 * `0.2.3 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.3>`_.
285 * `0.2.4 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.4>`_.
288 `2.10 → 3.1.0 <https://lists.apache.org/thread.html/96024c54db7680697cb066e22a37b0ed5b4498386714a8a9ae1ec9cd@%3Cannounce.maven.apache.org%3E>`_.
290 * XMLUnit `1.6 → 2.6.2 <https://github.com/xmlunit/xmlunit/blob/master/RELEASE_NOTES.md>`_.
292 Upstream version additions
293 ~~~~~~~~~~~~~~~~~~~~~~~~~~
295 The following upstream dependencies have been added to dependency management:
297 * Apache SSHD 2.0.0, with EdDSA and Netty support (EdDSA is provided by ``net.i2p.crypto:eddsa``).
299 * Blueprint annotations (``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``).
303 * Pax Web 7.2.3 (synchronised with Karaf).
305 Upstream version removals
306 ~~~~~~~~~~~~~~~~~~~~~~~~~
308 The following upstream dependencies have been removed from dependency management:
312 * Our repackaging of Jersey Servlet.
314 * JUnit’s ``junit-dep``, which has long been obsolete.
316 * LevelDB (which is still available as features).
318 * Pax CDI API — Blueprint annotations should be used instead.
320 Plugin version upgrades
321 ~~~~~~~~~~~~~~~~~~~~~~~
323 The following plugins have been upgraded:
325 * Blueprint 1.4.0 → 1.10.0.
327 * Build helper 1.12 → 3.0.0.
329 * Bundle plugin 3.5.0 → 4.0.0.
332 `2.17 → 3.0.0 <https://mail-archives.apache.org/mod_mbox/maven-announce/201801.mbox/%3Cop.zchs68akkdkhrr%40desktop-2khsk44.mshome.net%3E>`_.
335 `1.2.1 → 1.3.0 <https://github.com/basepom/duplicate-finder-maven-plugin/blob/master/CHANGES.md>`_.
337 * Git commit id `2.2.4 → 2.2.5 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.5>`_.
339 * Jacoco Maven plugin `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
341 * Javadoc `3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
345 * `3.10.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12342689&styleName=Text&projectId=12317621>`_.
347 * Sevntu `1.29.0 → 1.32.0 <http://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.32.0>`_.
349 * SpotBugs 3.1.0-RC6 → 3.1.6 (see the SpotBugs changes above).
354 This version fixes the following issues:
356 * `ODLPARENT-156 <https://jira.opendaylight.org/browse/ODLPARENT-156>`_:
357 ``xtend-maven-plugin``’s dependencies end up pulling in conflicting
358 dependencies. ODL Parent now constrains part of its dependency tree to avoid
361 This version adds ``odl-jackson-2.8`` to ``odlparent-artifacts``.
366 This version fixes the following issues:
368 * `INFRAUTILS-41 <https://jira.opendaylight.org/browse/INFRAUTILS-41>`_:
369 ``jre.properties`` includes ``com.sun.management`` so that it can be
370 enabled if necessary. (This doesn’t add a dependency on
371 ``com.sun.management``, it allows bundles to use it if it is present.)
373 * `ODLPARENT-136 <https://jira.opendaylight.org/browse/ODLPARENT-136>`_:
374 ``SingleFeatureTest`` pulls in ``org.osgi.compendium``.
376 * `ODLPARENT-144 <https://jira.opendaylight.org/browse/ODLPARENT-144>`_:
377 ``org.apache.karaf.scr.management`` is whitelisted so that it no longer
378 affects ``SingleFeatureTest``.
380 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
381 null-related FindBugs checks which produce false-positives with Guava 23.6
382 and later are disabled, so that this really is fully backwards-compatible
385 * `ODLPARENT-148 <https://jira.opendaylight.org/browse/ODLPARENT-148>`_:
386 ``SingleFeatureTest`` preserves ``target/SFT/karaf.log``.
388 This version includes the following improvements:
390 * ``custom.properties`` no longer includes OVSDB-specific configuration.
392 * The ``odl-jersey-1`` feature includes the Jersey client.
394 * Redundant bundle dependency declarations in ``SingleFeatureTest`` have been
395 removed (these are declarations which are also present in our base Karaf
398 * Build errors involving invalid feature or bundle URLs now indicate which
401 * Obsolete Log4J overrides have been removed from ``SingleFeatureTest``.
403 When building using JDK 9 or 10, the default settings have been changed as
404 follows to avoid errors or extraneous warnings:
406 * SFT is disabled (it needs Karaf 4.2 or later);
408 * Javadocs are generated as HTML 4;
410 * SpotBugs is disabled on JDK 10 or later;
412 * FindBugs is disabled on JDK 9 or later.
414 The following third-party dependencies have been upgraded:
416 * `EclipseLink Moxy JAXB 2.6.2 → 2.7.1 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
418 * `Google Truth 0.36 → 0.40 <https://github.com/google/truth/releases>`_.
420 * `Gson 2.8.2 → 2.8.5 <https://github.com/google/gson/blob/master/CHANGELOG.md>`_.
422 * `Guava 23.6 → 23.6.1 <https://github.com/google/guava/compare/v23.6...v23.6.1>`_.
423 This addresses CVE-2018-10237 (that’s the only change in this release).
425 * `Jacoco Maven plugin 0.8.0 → 0.8.1 <https://github.com/jacoco/jacoco/releases/tag/v0.8.1>`_.
427 * JDT annotations 2.1.0 → 2.1.150.
429 * `Scala 2.12.5 → 2.12.6 <https://github.com/scala/scala/releases/tag/v2.12.6>`_.
431 * `Scala Parser Combinators 1.0.6 → 1.0.7 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.0.7>`_.
433 * `Sevntu 1.24.2 → 1.29.0 <https://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.29.0>`_.
435 * `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>`_.
437 The following Maven plugin has been upgraded:
439 * `Javadoc 3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
444 This version fixes the following issues:
446 * `ODLPARENT-137 <https://jira.opendaylight.org/browse/ODLPARENT-137>`_:
447 restore the OpenDaylight prompt.
449 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
450 Guava 23.6 switched from @Nullable to @NullableDecl, which causes false
451 positives in FindBugs’ ``NP_NONNULL_PARAM_VIOLATION`` rule; we’re
452 disabling the rule for now.
457 This version fixes the following issues:
459 * Mycila dependencies are now “compile” scoped rather than “test”; this allows
460 child projects to use Guice with Mycila more easily.
462 * The duplicate finder now ignores ``web.xml`` and BluePrint XML files.
464 This version includes the following improvements:
466 * The ``-Pq`` profile skips Maven Modernizer, in preparation for its future
467 integration (and its use in child projects).
469 * An OWASP profile, ``-Powasp`` is available for vulnerability checking.
471 * A new ``odl-jackson-2.8`` feature provides Jackson 2.8 to child projects.
473 The following third-party dependencies have been added to dependency management:
475 * `ThreeTen-Extra <http://www.threeten.org/threeten-extra/>`_
477 The following third-party dependencies have been upgraded:
479 * Aeron 1.2.5 → 1.7.0; release notes:
481 * `1.3.0 <https://github.com/real-logic/aeron/releases/tag/1.3.0>`_
482 * `1.4.0 <https://github.com/real-logic/aeron/releases/tag/1.4.0>`_
483 * `1.5.0 <https://github.com/real-logic/aeron/releases/tag/1.5.0>`_
484 * `1.5.1 <https://github.com/real-logic/aeron/releases/tag/1.5.1>`_
485 * `1.5.2 <https://github.com/real-logic/aeron/releases/tag/1.5.2>`_
486 * `1.6.0 <https://github.com/real-logic/aeron/releases/tag/1.6.0>`_
487 * `1.7.0 <https://github.com/real-logic/aeron/releases/tag/1.7.0>`_
489 * Agrona 0.9.5 → 0.9.12; release notes:
491 * `0.9.6 <https://github.com/real-logic/Agrona/releases/tag/0.9.6>`_
492 * `0.9.7 <https://github.com/real-logic/Agrona/releases/tag/0.9.7>`_
493 * `0.9.8 <https://github.com/real-logic/Agrona/releases/tag/0.9.8>`_
494 * `0.9.9 <https://github.com/real-logic/Agrona/releases/tag/0.9.9>`_
495 * `0.9.10 <https://github.com/real-logic/Agrona/releases/tag/0.9.10>`_
496 * `0.9.11 <https://github.com/real-logic/Agrona/releases/tag/0.9.11>`_
497 * `0.9.12 <https://github.com/real-logic/Agrona/releases/tag/0.9.12>`_
499 * Akka 2.5.5 → 2.5.11; release notes:
501 * `2.5.6 <https://akka.io/blog/news/2017/09/28/akka-2.5.6-released>`_
502 * `2.5.7 <https://akka.io/blog/news/2017/11/17/akka-2.5.7-released>`_
503 * `2.5.8 <https://akka.io/blog/news/2017/12/08/akka-2.5.8-released>`_
504 * `2.5.9 <https://akka.io/blog/news/2018/01/11/akka-2.5.9-released-2.4.x-end-of-life>`_
505 * `2.5.10 <https://akka.io/blog/news/2018/02/23/akka-2.5.10-released>`_
506 * `2.5.11 <https://akka.io/blog/news/2018/02/28/akka-2.5.11-released>`_
508 * Commons Lang 3 `3.6 → 3.7 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_
510 * Guava 23.3 → 23.6; release notes:
512 * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_
513 * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_
514 * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_
516 * H2 database `1.4.193 → 1.4.196 <http://www.h2database.com/html/changelog.html>`_
518 * Jacoco `0.7.9 → 0.8.0 <https://github.com/jacoco/jacoco/releases/tag/v0.8.0>`_
520 * Javassist `3.21.0 → 3.22.0 <https://github.com/jboss-javassist/javassist/compare/rel_3_21_0_ga...rel_3_22_0_ga>`_
522 * lmax-disruptor 3.3.7 → 3.3.10; release notes:
524 * `3.3.8 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.8>`_
525 * `3.3.9 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.9>`_
526 * `3.3.10 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.10>`_
528 * Netty 4.1.16 → 4.1.22; release notes:
530 * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_
531 * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_
532 * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_
533 * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_
534 * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_
535 * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_
537 * Scala `2.12.4 → 2.12.5 <http://www.scala-lang.org/news/2.12.5>`_
539 * Typesafe Config `0.2.1 → 0.2.2 <https://github.com/typesafehub/config/blob/master/NEWS.md>`_
541 The following Maven plugins have been upgraded:
543 * FindBugs 3.0.4 → 3.0.5
545 * Git commit id 2.2.2 → 2.2.4; release notes:
547 * `2.2.3 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.3>`_
548 * `2.2.4 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.4>`_
553 This version fixes the following issues:
555 * `ODLPARENT-136`_: ``features-test`` needs ``org.osgi.compendium``.
557 * Jackson dependencies are declared using ``jackson-bom`` to ensure all they
560 * ``find-duplicate-classpath-entries`` is run in the “verify” phase rather than
561 the “validate” phase, which is too early.
563 * The version of Jetty we pull in is now aligned with that declared in Karaf,
564 resolving a number of restart and dependency issues.
566 * Pulling in the ``wrap`` feature unconditionally is no longer necessary, so
567 ``karaf4-parent`` no longer does so.
569 * ``metainf-services`` are declared with scope “provided” to avoid their being
570 included in downstream features (it’s a build-time dependency only).
572 * ``leveldb-api`` is excluded from ``odl-akka-leveldb-0.7``, and ``jsr250-api``
573 from ``enunciate-core-annotations``, to avoid duplicate having classes on the
576 * Since the ``ssh`` feature is excluded from generated features, our Karaf
577 need to enable it at boot in all cases.
579 * ``bundle-test-lib`` is now a bundle.
581 * Since we use static SLF4J loggers, the ``SLF4J_LOGGER_SHOULD_BE_NON_STATIC``
582 rule needs to be disabled in our FindBugs configuration (this allows
583 downstream projects to enable ``findbugs-slf4j`` without having to deal with
584 all the resulting false-positives).
586 * ``org.apache.karaf.scr.management`` is white-listed in SFT to avoid failures
587 apparently related to that component (which we don’t care about).
589 .. _ODLPARENT-136: https://jira.opendaylight.org/browse/ODLPARENT-136
591 This version upgrades the following third-party dependencies:
593 * `Antlr 4.7 → 4.7.1`_
595 * `BouncyCastle 1.58 → 1.59`_
597 * Jersey 1.17 → 1.19.4 (additionally available as the ``odl-jersey-1`` feature)
599 * Jolokia 1.3.7 → 1.5.0
601 * Karaf 4.1.3 → 4.1.5; release notes:
606 .. _Antlr 4.7 → 4.7.1: https://github.com/antlr/antlr4/releases/tag/4.7.1
607 .. _BouncyCastle 1.58 → 1.59: https://www.bouncycastle.org/releasenotes.html
608 .. _Karaf 4.1.4: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12341702
609 .. _Karaf 4.1.5: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342294
614 This version fixes the following issues:
616 * SingleFeatureTest uses the configured local Maven repository for Pax Exam.
618 * JavaDoc links are disabled for now to `speed up builds`_. A new
619 ``javadoc-links`` profile enables the links.
621 * Conditional feature dependencies are processed, ensuring our
622 `distribution is complete`_.
624 * Startup features are `adjusted for Karaf 4.1`_, avoiding unnecessary
627 * The ``hiddenField`` Checkstyle check is disabled for abstract methods.
629 * The default logging configuration uses Log4J2, which is the new default in
632 .. _speed up builds: https://jira.opendaylight.org/browse/ODLPARENT-121
633 .. _distribution is complete: https://jira.opendaylight.org/browse/ODLPARENT-133
634 .. _adjusted for Karaf 4.1: https://jira.opendaylight.org/browse/ODLPARENT-134
636 This version upgrades the following dependencies or plugins:
638 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
640 * ``maven-javadoc-plugin`` 3.0.0-M1 → 3.0.0
645 This version fixes the following issues:
647 * Karaf pulls in an invalid Hibernate feature repository, breaking downstream
648 dependencies pulling in the “war” feature. ``populate-local-repo`` corrects
649 the repository dependency.
658 Build now show compiler warnings and deprecation warnings. This doesn't affect
659 the result or require any changes currently, it just makes the issues more
665 Checkstyle has been upgraded from 7.6 to 8.4 (see the
666 `Checkstyle release notes`_ for details), and Sevntu from 1.21.0 to 1.24.2
667 (note that the latter's group identifier changed from
668 ``com.github.sevntu.checkstyle`` to ``com.github.sevntu-checkstyle``; you
669 might need to update your IDE's configuration).
671 The following Checkstyle rules are enabled; this might require changes in
672 projects which enforce Checkstyle validation:
674 * `AvoidHidingCauseExceptionCheck`_
675 * `FinalClass`_: utility classes must be declared ``final``
676 * `HiddenField`_: fields must not be shadowed
677 * `HideUtilityClassConstructor`_: utility classes must hide their constructor
679 .. _Checkstyle release notes: http://checkstyle.sourceforge.net/releasenotes.html
681 .. _AvoidHidingCauseExceptionCheck: http://sevntu-checkstyle.github.io/sevntu.checkstyle/apidocs/com/github/sevntu/checkstyle/checks/coding/AvoidHidingCauseExceptionCheck.html
682 .. _FinalClass: http://checkstyle.sourceforge.net/config_design.html#FinalClass
683 .. _HiddenField: http://checkstyle.sourceforge.net/config_coding.html#HiddenField
684 .. _HideUtilityClassConstructor: http://checkstyle.sourceforge.net/config_design.html#HideUtilityClassConstructor
689 Karaf has been upgraded to 4.1.3. This should be transparent for dependent
695 * When building a Karaf distribution using ``karaf4-parent``, projects can
696 specify which archives to build: the ``karaf.archiveZip`` property will
697 enable ZIP files if true, and ``karaf.archiveTarGz`` will enable
698 gzip-compressed tarballs if true. By default both are enabled.
700 * Our Karaf distribution provides Bouncy Castle at startup. Auto-generated
701 feature descriptors take this into account (they won't embed a Bouncy
707 * The ``odl-triemap-0.2`` feature wrapping
708 ``com.github.romix:java-concurrent-hash-trie-map`` was rendered obsolete by
709 YANG Tools' implementation and has been removed.
714 * ``odl-javassist-3`` provides Javassist in a feature.
716 * ``odl-jung-2.1`` provides `JUNG`_ in a feature.
718 .. _JUNG: http://jung.sourceforge.net/
720 Upstream version upgrades
721 ~~~~~~~~~~~~~~~~~~~~~~~~~
723 The following upstream dependencies have been upgraded:
725 * Akka 2.4.18 → 2.5.4; release notes:
733 * `Awaitility 2 → 3`_
735 * `Bouncy Castle 1.57 → 1.58`_
737 * `Commons Codec 1.10 → 1.11`_
739 * `Commons File Upload 1.3.2 → 1.3.3`_
741 * `Commons IO 2.5 → 2.6`_
743 * Eclipse JDT annotations 2.0.0 → 2.1.0
745 * Felix Dependency Manager 4.3.0 → 4.4.1
746 * Felix Dependency Manager Shell 4.0.4 → 4.0.6
747 * Felix Metatype 1.1.2 → 1.1.6
749 * `Google Truth 0.28 → 0.36`_ (with the Java 8 extensions)
751 * `Gson 2.7 → 2.8.2`_
753 * Guava 22 → 23.3 along with the associated feature name change from
754 ``odl-guava-22`` to ``odl-guava-23`` (dependent packages *must* change their
755 dependency); release notes:
762 * Immutables 2.4.2 → 2.5.6
764 * Jackson 2.3.2 → 2.8.9
766 * Jacoco 0.7.7 → 0.7.9; release notes:
771 * Jacoco Listeners 2.4 → 3.8
773 * `Javassist 3.20.0 → 3.21.0`_
775 * `Jettison 1.3.7 → 1.3.8`_
777 * `Jolokia 1.3.6 → 1.3.7`_
779 * `JSONassert 1.3.0 → 1.5.0`_
781 * `logback 1.2.2 → 1.2.3`_
783 * `LMAX Disruptor 3.3.6 → 3.3.7`_
785 * Netty 4.1.8 → 4.1.16; release notes:
796 * `Pax URL 2.5.2 → 2.5.3`_
798 * Scala 2.11.11 → 2.12.4; release notes:
806 * Servlet API 3.0.1 → 3.1.0
808 * `SLF4J 1.7.21 → 1.7.25`_
810 * `webcohesion enunciate 2.6.0 → 2.10.1`_
812 * `Xtend 2.12 → 2.13`_
814 .. _Akka 2.5.0: http://akka.io/blog/news/2017/04/13/akka-2.5.0-released
815 .. _Akka 2.5.1: http://akka.io/blog/news/2017/05/02/akka-2.5.1-released
816 .. _Akka 2.5.2: http://akka.io/blog/news/2017/05/24/akka-2.5.2-released
817 .. _Akka 2.5.3: http://akka.io/blog/news/2017/06/19/akka-2.5.3-released
818 .. _Akka 2.5.4: http://akka.io/blog/news/2017/08/10/akka-2.5.4-released
820 .. _Awaitility 2 → 3: https://github.com/awaitility/awaitility/wiki/ReleaseNotes30
822 .. _Bouncy Castle 1.57 → 1.58: https://www.bouncycastle.org/releasenotes.html
824 .. _Commons Codec 1.10 → 1.11: http://www.apache.org/dist/commons/codec/RELEASE-NOTES.txt
826 .. _Commons File Upload 1.3.2 → 1.3.3: http://www.apache.org/dist/commons/fileupload/RELEASE-NOTES.txt
828 .. _Commons IO 2.5 → 2.6: http://www.apache.org/dist/commons/io/RELEASE-NOTES.txt
830 .. _Google Truth 0.28 → 0.36: https://github.com/google/truth/releases
832 .. _Gson 2.7 → 2.8.2: https://github.com/google/gson/blob/master/CHANGELOG.md
834 .. _Guava 23: https://github.com/google/guava/wiki/Release23
835 .. _Guava 23.1: https://github.com/google/guava/releases/tag/v23.1
836 .. _Guava 23.2: https://github.com/google/guava/releases/tag/v23.2
837 .. _Guava 23.3: https://github.com/google/guava/releases/tag/v23.3
839 .. _Jacoco 0.7.8: https://github.com/jacoco/jacoco/releases/tag/v0.7.8
840 .. _Jacoco 0.7.9: https://github.com/jacoco/jacoco/releases/tag/v0.7.9
842 .. _Javassist 3.20.0 → 3.21.0: https://github.com/jboss-javassist/javassist/compare/rel_3_20_0_ga...rel_3_21_0_ga
844 .. _Jettison 1.3.7 → 1.3.8: https://github.com/jettison-json/jettison/compare/jettison-1.3.7...jettison-1.3.8
846 .. _Jolokia 1.3.6 → 1.3.7: https://github.com/rhuss/jolokia/releases/tag/v1.3.7
848 .. _JSONassert 1.3.0 → 1.5.0: https://github.com/skyscreamer/JSONassert/releases
850 .. _logback 1.2.2 → 1.2.3: https://logback.qos.ch/news.html
852 .. _LMAX Disruptor 3.3.6 → 3.3.7: https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.7
854 .. _Netty 4.1.9: http://netty.io/news/2017/03/10/4-0-45-Final-4-1-9-Final.html
855 .. _Netty 4.1.10: http://netty.io/news/2017/04/30/4-0-46-Final-4-1-10-Final.html
856 .. _Netty 4.1.11: http://netty.io/news/2017/05/12/4-0-47-Final-4-1-11-Final.html
857 .. _Netty 4.1.12: http://netty.io/news/2017/06/09/4-0-48-Final-4-1-12-Final.html
858 .. _Netty 4.1.13: http://netty.io/news/2017/07/06/4-0-49-Final-4-1-13-Final.html
859 .. _Netty 4.1.14: http://netty.io/news/2017/08/03/4-0-50-Final-4-1-14-Final.html
860 .. _Netty 4.1.15: http://netty.io/news/2017/08/25/4-0-51-Final-4-1-15-Final.html
861 .. _Netty 4.1.16: http://netty.io/news/2017/09/25/4-0-52-Final-4-1-16-Final.html
863 .. _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
865 .. _Scala 2.12.0: https://github.com/scala/scala/releases/tag/v2.12.0
866 .. _Scala 2.12.1: https://github.com/scala/scala/releases/tag/v2.12.1
867 .. _Scala 2.12.2: https://github.com/scala/scala/releases/tag/v2.12.2
868 .. _Scala 2.12.3: https://github.com/scala/scala/releases/tag/v2.12.3
869 .. _Scala 2.12.4: https://github.com/scala/scala/releases/tag/v2.12.4
871 .. _SLF4J 1.7.21 → 1.7.25: https://www.slf4j.org/news.html
873 .. _webcohesion enunciate 2.6.0 → 2.10.1: https://github.com/stoicflame/enunciate/releases
875 .. _Xtend 2.12 → 2.13: https://www.eclipse.org/xtend/releasenotes.html
877 Upstream version additions
878 ~~~~~~~~~~~~~~~~~~~~~~~~~~
880 The following upstream dependencies have been added to dependency management:
882 * Commons Text, ``org.apache.commons:commons-text`` (this will allow downstreams
883 to migrate from ``commons-lang3``\’s ``WordUtils``, which is deprecated)
885 Upstream version removals
886 ~~~~~~~~~~~~~~~~~~~~~~~~~
888 The following upstream dependencies have been removed from dependency
889 management (they are obsolete and unused):
893 * Equinox HTTP service bridge
894 * ``equinoxSDK381`` artifacts
895 * Coda Hale Metrics, which are mostly unused and should eventually be wrapped
897 * ``com.google.code.findbugs:jsr305`` (which *must not* be used; this is
898 enforced — ``annotations`` should be used instead)
899 * Felix File Install and Web Console
902 * ``org.mockito:mockito-all`` (which *must not* be used; this is enforced —
903 ``mockito-core`` should be used instead)
909 Plugin version upgrades
910 ~~~~~~~~~~~~~~~~~~~~~~~
912 The following plugins have been upgraded:
914 * ``org.apache.servicemix.tooling:depends-maven-plugin`` 1.3.1 → 1.4.0
915 * ``org.apache.felix:maven-bundle-plugin`` 2.4.0 → 3.3.0
916 * ``maven-compiler-plugin`` 3.6.1 → 3.7.0
917 * ``maven-dependency-plugin`` 3.0.1 → 3.0.2
918 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
919 * ``maven-failsafe-plugin`` 2.18.1 → 2.20.1
920 * ``maven-javadoc-plugin`` 2.10.4 → 3.0.0-M1
921 * ``maven-shade-plugin`` 2.4.3 → 3.1.0
926 * The `Maven Find Duplicates`_ plugin can be enabled by setting the
927 ``duplicate-finder.skip`` property to ``false``.
929 * The SpotBugs_ Maven plugin can now be used instead of the FindBugs plugin
930 (both are available, so no change is required). To use SpotBugs, replace
931 ``org.codehaus.mojo:findbugs-maven-plugin`` with
932 ``com.github.spotbugs:spotbugs-maven-plugin``.
934 .. _Maven Find Duplicates: https://github.com/basepom/duplicate-finder-maven-plugin/
936 .. _SpotBugs: https://spotbugs.github.io/