1 ========================
2 ODL Parent release notes
3 ========================
8 This version fixes the following issues:
10 * `ODLPARENT-137 <https://jira.opendaylight.org/browse/ODLPARENT-137>`_:
11 restore the OpenDaylight prompt.
13 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
14 Guava 23.6 switched from @Nullable to @NullableDecl, which causes false
15 positives in FindBugs’ ``NP_NONNULL_PARAM_VIOLATION`` rule; we’re
16 disabling the rule for now.
21 This version fixes the following issues:
23 * Mycila dependencies are now “compile” scoped rather than “test”; this allows
24 child projects to use Guice with Mycila more easily.
26 * The duplicate finder now ignores ``web.xml`` and BluePrint XML files.
28 This version includes the following improvements:
30 * The ``-Pq`` profile skips Maven Modernizer, in preparation for its future
31 integration (and its use in child projects).
33 * An OWASP profile, ``-Powasp`` is available for vulnerability checking.
35 * A new ``odl-jackson-2.8`` feature provides Jackson 2.8 to child projects.
37 The following third-party dependencies have been added to dependency management:
39 * `ThreeTen-Extra <http://www.threeten.org/threeten-extra/>`_
41 The following third-party dependencies have been upgraded:
43 * Aeron 1.2.5 → 1.7.0; release notes:
45 * `1.3.0 <https://github.com/real-logic/aeron/releases/tag/1.3.0>`_
46 * `1.4.0 <https://github.com/real-logic/aeron/releases/tag/1.4.0>`_
47 * `1.5.0 <https://github.com/real-logic/aeron/releases/tag/1.5.0>`_
48 * `1.5.1 <https://github.com/real-logic/aeron/releases/tag/1.5.1>`_
49 * `1.5.2 <https://github.com/real-logic/aeron/releases/tag/1.5.2>`_
50 * `1.6.0 <https://github.com/real-logic/aeron/releases/tag/1.6.0>`_
51 * `1.7.0 <https://github.com/real-logic/aeron/releases/tag/1.7.0>`_
53 * Agrona 0.9.5 → 0.9.12; release notes:
55 * `0.9.6 <https://github.com/real-logic/Agrona/releases/tag/0.9.6>`_
56 * `0.9.7 <https://github.com/real-logic/Agrona/releases/tag/0.9.7>`_
57 * `0.9.8 <https://github.com/real-logic/Agrona/releases/tag/0.9.8>`_
58 * `0.9.9 <https://github.com/real-logic/Agrona/releases/tag/0.9.9>`_
59 * `0.9.10 <https://github.com/real-logic/Agrona/releases/tag/0.9.10>`_
60 * `0.9.11 <https://github.com/real-logic/Agrona/releases/tag/0.9.11>`_
61 * `0.9.12 <https://github.com/real-logic/Agrona/releases/tag/0.9.12>`_
63 * Akka 2.5.5 → 2.5.11; release notes:
65 * `2.5.6 <https://akka.io/blog/news/2017/09/28/akka-2.5.6-released>`_
66 * `2.5.7 <https://akka.io/blog/news/2017/11/17/akka-2.5.7-released>`_
67 * `2.5.8 <https://akka.io/blog/news/2017/12/08/akka-2.5.8-released>`_
68 * `2.5.9 <https://akka.io/blog/news/2018/01/11/akka-2.5.9-released-2.4.x-end-of-life>`_
69 * `2.5.10 <https://akka.io/blog/news/2018/02/23/akka-2.5.10-released>`_
70 * `2.5.11 <https://akka.io/blog/news/2018/02/28/akka-2.5.11-released>`_
72 * Commons Lang 3 `3.6 → 3.7 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_
74 * Guava 23.3 → 23.6; release notes:
76 * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_
77 * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_
78 * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_
80 * H2 database `1.4.193 → 1.4.196 <http://www.h2database.com/html/changelog.html>`_
82 * Jacoco `0.7.9 → 0.8.0 <https://github.com/jacoco/jacoco/releases/tag/v0.8.0>`_
84 * Javassist `3.21.0 → 3.22.0 <https://github.com/jboss-javassist/javassist/compare/rel_3_21_0_ga...rel_3_22_0_ga>`_
86 * lmax-disruptor 3.3.7 → 3.3.10; release notes:
88 * `3.3.8 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.8>`_
89 * `3.3.9 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.9>`_
90 * `3.3.10 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.10>`_
92 * Netty 4.1.16 → 4.1.22; release notes:
94 * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_
95 * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_
96 * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_
97 * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_
98 * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_
99 * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_
101 * Scala `2.12.4 → 2.12.5 <http://www.scala-lang.org/news/2.12.5>`_
103 * Typesafe Config `0.2.1 → 0.2.2 <https://github.com/typesafehub/config/blob/master/NEWS.md>`_
105 The following Maven plugins have been upgraded:
107 * FindBugs 3.0.4 → 3.0.5
109 * Git commit id 2.2.2 → 2.2.4; release notes:
111 * `2.2.3 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.3>`_
112 * `2.2.4 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.4>`_
117 This version fixes the following issues:
119 * `ODLPARENT-136`_: ``features-test`` needs ``org.osgi.compendium``.
121 * Jackson dependencies are declared using ``jackson-bom`` to ensure all they
124 * ``find-duplicate-classpath-entries`` is run in the “verify” phase rather than
125 the “validate” phase, which is too early.
127 * The version of Jetty we pull in is now aligned with that declared in Karaf,
128 resolving a number of restart and dependency issues.
130 * Pulling in the ``wrap`` feature unconditionally is no longer necessary, so
131 ``karaf4-parent`` no longer does so.
133 * ``metainf-services`` are declared with scope “provided” to avoid their being
134 included in downstream features (it’s a build-time dependency only).
136 * ``leveldb-api`` is excluded from ``odl-akka-leveldb-0.7``, and ``jsr250-api``
137 from ``enunciate-core-annotations``, to avoid duplicate having classes on the
140 * Since the ``ssh`` feature is excluded from generated features, our Karaf
141 need to enable it at boot in all cases.
143 * ``bundle-test-lib`` is now a bundle.
145 * Since we use static SLF4J loggers, the ``SLF4J_LOGGER_SHOULD_BE_NON_STATIC``
146 rule needs to be disabled in our FindBugs configuration (this allows
147 downstream projects to enable ``findbugs-slf4j`` without having to deal with
148 all the resulting false-positives).
150 * ``org.apache.karaf.scr.management`` is white-listed in SFT to avoid failures
151 apparently related to that component (which we don’t care about).
153 .. _ODLPARENT-136: https://jira.opendaylight.org/browse/ODLPARENT-136
155 This version upgrades the following third-party dependencies:
157 * `Antlr 4.7 → 4.7.1`_
159 * `BouncyCastle 1.58 → 1.59`_
161 * Jersey 1.17 → 1.19.4 (additionally available as the ``odl-jersey-1`` feature)
163 * Jolokia 1.3.7 → 1.5.0
165 * Karaf 4.1.3 → 4.1.5; release notes:
170 .. _Antlr 4.7 → 4.7.1: https://github.com/antlr/antlr4/releases/tag/4.7.1
171 .. _BouncyCastle 1.58 → 1.59: https://www.bouncycastle.org/releasenotes.html
172 .. _Karaf 4.1.4: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12341702
173 .. _Karaf 4.1.5: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342294
178 This version fixes the following issues:
180 * SingleFeatureTest uses the configured local Maven repository for Pax Exam.
182 * JavaDoc links are disabled for now to `speed up builds`_. A new
183 ``javadoc-links`` profile enables the links.
185 * Conditional feature dependencies are processed, ensuring our
186 `distribution is complete`_.
188 * Startup features are `adjusted for Karaf 4.1`_, avoiding unnecessary
191 * The ``hiddenField`` Checkstyle check is disabled for abstract methods.
193 * The default logging configuration uses Log4J2, which is the new default in
196 .. _speed up builds: https://jira.opendaylight.org/browse/ODLPARENT-121
197 .. _distribution is complete: https://jira.opendaylight.org/browse/ODLPARENT-133
198 .. _adjusted for Karaf 4.1: https://jira.opendaylight.org/browse/ODLPARENT-134
200 This version upgrades the following dependencies or plugins:
202 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
204 * ``maven-javadoc-plugin`` 3.0.0-M1 → 3.0.0
209 This version fixes the following issues:
211 * Karaf pulls in an invalid Hibernate feature repository, breaking downstream
212 dependencies pulling in the “war” feature. ``populate-local-repo`` corrects
213 the repository dependency.
222 Build now show compiler warnings and deprecation warnings. This doesn't affect
223 the result or require any changes currently, it just makes the issues more
229 Checkstyle has been upgraded from 7.6 to 8.4 (see the
230 `Checkstyle release notes`_ for details), and Sevntu from 1.21.0 to 1.24.2
231 (note that the latter's group identifier changed from
232 ``com.github.sevntu.checkstyle`` to ``com.github.sevntu-checkstyle``; you
233 might need to update your IDE's configuration).
235 The following Checkstyle rules are enabled; this might require changes in
236 projects which enforce Checkstyle validation:
238 * `AvoidHidingCauseExceptionCheck`_
239 * `FinalClass`_: utility classes must be declared ``final``
240 * `HiddenField`_: fields must not be shadowed
241 * `HideUtilityClassConstructor`_: utility classes must hide their constructor
243 .. _Checkstyle release notes: http://checkstyle.sourceforge.net/releasenotes.html
245 .. _AvoidHidingCauseExceptionCheck: http://sevntu-checkstyle.github.io/sevntu.checkstyle/apidocs/com/github/sevntu/checkstyle/checks/coding/AvoidHidingCauseExceptionCheck.html
246 .. _FinalClass: http://checkstyle.sourceforge.net/config_design.html#FinalClass
247 .. _HiddenField: http://checkstyle.sourceforge.net/config_coding.html#HiddenField
248 .. _HideUtilityClassConstructor: http://checkstyle.sourceforge.net/config_design.html#HideUtilityClassConstructor
253 Karaf has been upgraded to 4.1.3. This should be transparent for dependent
259 * When building a Karaf distribution using ``karaf4-parent``, projects can
260 specify which archives to build: the ``karaf.archiveZip`` property will
261 enable ZIP files if true, and ``karaf.archiveTarGz`` will enable
262 gzip-compressed tarballs if true. By default both are enabled.
264 * Our Karaf distribution provides Bouncy Castle at startup. Auto-generated
265 feature descriptors take this into account (they won't embed a Bouncy
271 * The ``odl-triemap-0.2`` feature wrapping
272 ``com.github.romix:java-concurrent-hash-trie-map`` was rendered obsolete by
273 YANG Tools' implementation and has been removed.
278 * ``odl-javassist-3`` provides Javassist in a feature.
280 * ``odl-jung-2.1`` provides `JUNG`_ in a feature.
282 .. _JUNG: http://jung.sourceforge.net/
284 Upstream version upgrades
285 ~~~~~~~~~~~~~~~~~~~~~~~~~
287 The following upstream dependencies have been upgraded:
289 * Akka 2.4.18 → 2.5.4; release notes:
297 * `Awaitility 2 → 3`_
299 * `Bouncy Castle 1.57 → 1.58`_
301 * `Commons Codec 1.10 → 1.11`_
303 * `Commons File Upload 1.3.2 → 1.3.3`_
305 * `Commons IO 2.5 → 2.6`_
307 * Eclipse JDT annotations 2.0.0 → 2.1.0
309 * Felix Dependency Manager 4.3.0 → 4.4.1
310 * Felix Dependency Manager Shell 4.0.4 → 4.0.6
311 * Felix Metatype 1.1.2 → 1.1.6
313 * `Google Truth 0.28 → 0.36`_ (with the Java 8 extensions)
315 * `Gson 2.7 → 2.8.2`_
317 * Guava 22 → 23.3 along with the associated feature name change from
318 ``odl-guava-22`` to ``odl-guava-23`` (dependent packages *must* change their
319 dependency); release notes:
326 * Immutables 2.4.2 → 2.5.6
328 * Jackson 2.3.2 → 2.8.9
330 * Jacoco 0.7.7 → 0.7.9; release notes:
335 * Jacoco Listeners 2.4 → 3.8
337 * `Javassist 3.20.0 → 3.21.0`_
339 * `Jettison 1.3.7 → 1.3.8`_
341 * `Jolokia 1.3.6 → 1.3.7`_
343 * `JSONassert 1.3.0 → 1.5.0`_
345 * `logback 1.2.2 → 1.2.3`_
347 * `LMAX Disruptor 3.3.6 → 3.3.7`_
349 * Netty 4.1.8 → 4.1.16; release notes:
360 * `Pax URL 2.5.2 → 2.5.3`_
362 * Scala 2.11.11 → 2.12.4; release notes:
370 * Servlet API 3.0.1 → 3.1.0
372 * `SLF4J 1.7.21 → 1.7.25`_
374 * `webcohesion enunciate 2.6.0 → 2.10.1`_
376 * `Xtend 2.12 → 2.13`_
378 .. _Akka 2.5.0: http://akka.io/blog/news/2017/04/13/akka-2.5.0-released
379 .. _Akka 2.5.1: http://akka.io/blog/news/2017/05/02/akka-2.5.1-released
380 .. _Akka 2.5.2: http://akka.io/blog/news/2017/05/24/akka-2.5.2-released
381 .. _Akka 2.5.3: http://akka.io/blog/news/2017/06/19/akka-2.5.3-released
382 .. _Akka 2.5.4: http://akka.io/blog/news/2017/08/10/akka-2.5.4-released
384 .. _Awaitility 2 → 3: https://github.com/awaitility/awaitility/wiki/ReleaseNotes30
386 .. _Bouncy Castle 1.57 → 1.58: https://www.bouncycastle.org/releasenotes.html
388 .. _Commons Codec 1.10 → 1.11: http://www.apache.org/dist/commons/codec/RELEASE-NOTES.txt
390 .. _Commons File Upload 1.3.2 → 1.3.3: http://www.apache.org/dist/commons/fileupload/RELEASE-NOTES.txt
392 .. _Commons IO 2.5 → 2.6: http://www.apache.org/dist/commons/io/RELEASE-NOTES.txt
394 .. _Google Truth 0.28 → 0.36: https://github.com/google/truth/releases
396 .. _Gson 2.7 → 2.8.2: https://github.com/google/gson/blob/master/CHANGELOG.md
398 .. _Guava 23: https://github.com/google/guava/wiki/Release23
399 .. _Guava 23.1: https://github.com/google/guava/releases/tag/v23.1
400 .. _Guava 23.2: https://github.com/google/guava/releases/tag/v23.2
401 .. _Guava 23.3: https://github.com/google/guava/releases/tag/v23.3
403 .. _Jacoco 0.7.8: https://github.com/jacoco/jacoco/releases/tag/v0.7.8
404 .. _Jacoco 0.7.9: https://github.com/jacoco/jacoco/releases/tag/v0.7.9
406 .. _Javassist 3.20.0 → 3.21.0: https://github.com/jboss-javassist/javassist/compare/rel_3_20_0_ga...rel_3_21_0_ga
408 .. _Jettison 1.3.7 → 1.3.8: https://github.com/jettison-json/jettison/compare/jettison-1.3.7...jettison-1.3.8
410 .. _Jolokia 1.3.6 → 1.3.7: https://github.com/rhuss/jolokia/releases/tag/v1.3.7
412 .. _JSONassert 1.3.0 → 1.5.0: https://github.com/skyscreamer/JSONassert/releases
414 .. _logback 1.2.2 → 1.2.3: https://logback.qos.ch/news.html
416 .. _LMAX Disruptor 3.3.6 → 3.3.7: https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.7
418 .. _Netty 4.1.9: http://netty.io/news/2017/03/10/4-0-45-Final-4-1-9-Final.html
419 .. _Netty 4.1.10: http://netty.io/news/2017/04/30/4-0-46-Final-4-1-10-Final.html
420 .. _Netty 4.1.11: http://netty.io/news/2017/05/12/4-0-47-Final-4-1-11-Final.html
421 .. _Netty 4.1.12: http://netty.io/news/2017/06/09/4-0-48-Final-4-1-12-Final.html
422 .. _Netty 4.1.13: http://netty.io/news/2017/07/06/4-0-49-Final-4-1-13-Final.html
423 .. _Netty 4.1.14: http://netty.io/news/2017/08/03/4-0-50-Final-4-1-14-Final.html
424 .. _Netty 4.1.15: http://netty.io/news/2017/08/25/4-0-51-Final-4-1-15-Final.html
425 .. _Netty 4.1.16: http://netty.io/news/2017/09/25/4-0-52-Final-4-1-16-Final.html
427 .. _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
429 .. _Scala 2.12.0: https://github.com/scala/scala/releases/tag/v2.12.0
430 .. _Scala 2.12.1: https://github.com/scala/scala/releases/tag/v2.12.1
431 .. _Scala 2.12.2: https://github.com/scala/scala/releases/tag/v2.12.2
432 .. _Scala 2.12.3: https://github.com/scala/scala/releases/tag/v2.12.3
433 .. _Scala 2.12.4: https://github.com/scala/scala/releases/tag/v2.12.4
435 .. _SLF4J 1.7.21 → 1.7.25: https://www.slf4j.org/news.html
437 .. _webcohesion enunciate 2.6.0 → 2.10.1: https://github.com/stoicflame/enunciate/releases
439 .. _Xtend 2.12 → 2.13: https://www.eclipse.org/xtend/releasenotes.html
441 Upstream version additions
442 ~~~~~~~~~~~~~~~~~~~~~~~~~~
444 The following upstream dependencies have been added to dependency management:
446 * Commons Text, ``org.apache.commons:commons-text`` (this will allow downstreams
447 to migrate from ``commons-lang3``\’s ``WordUtils``, which is deprecated)
449 Upstream version removals
450 ~~~~~~~~~~~~~~~~~~~~~~~~~
452 The following upstream dependencies have been removed from dependency
453 management (they are obsolete and unused):
457 * Equinox HTTP service bridge
458 * ``equinoxSDK381`` artifacts
459 * Coda Hale Metrics, which are mostly unused and should eventually be wrapped
461 * ``com.google.code.findbugs:jsr305`` (which *must not* be used; this is
462 enforced — ``annotations`` should be used instead)
463 * Felix File Install and Web Console
466 * ``org.mockito:mockito-all`` (which *must not* be used; this is enforced —
467 ``mockito-core`` should be used instead)
473 Plugin version upgrades
474 ~~~~~~~~~~~~~~~~~~~~~~~
476 The following plugins have been upgraded:
478 * ``org.apache.servicemix.tooling:depends-maven-plugin`` 1.3.1 → 1.4.0
479 * ``org.apache.felix:maven-bundle-plugin`` 2.4.0 → 3.3.0
480 * ``maven-compiler-plugin`` 3.6.1 → 3.7.0
481 * ``maven-dependency-plugin`` 3.0.1 → 3.0.2
482 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
483 * ``maven-failsafe-plugin`` 2.18.1 → 2.20.1
484 * ``maven-javadoc-plugin`` 2.10.4 → 3.0.0-M1
485 * ``maven-shade-plugin`` 2.4.3 → 3.1.0
490 * The `Maven Find Duplicates`_ plugin can be enabled by setting the
491 ``duplicate-finder.skip`` property to ``false``.
493 * The SpotBugs_ Maven plugin can now be used instead of the FindBugs plugin
494 (both are available, so no change is required). To use SpotBugs, replace
495 ``org.codehaus.mojo:findbugs-maven-plugin`` with
496 ``com.github.spotbugs:spotbugs-maven-plugin``.
498 .. _Maven Find Duplicates: https://github.com/basepom/duplicate-finder-maven-plugin/
500 .. _SpotBugs: https://spotbugs.github.io/