2bbbc11433710fcfc88c2a018443dac096a19c92
[odlparent.git] / NEWS.rst
1 ========================
2 ODL Parent release notes
3 ========================
4
5 Version 5.0.1
6 -------------
7
8 This is a bug-fix upgrade from version 5.0.0.
9
10 Third-party dependencies
11 ~~~~~~~~~~~~~~~~~~~~~~~~
12
13 The following dependencies have been upgraded:
14
15 * Akka 2.5.21 → 2.5.23, release notes:
16   * `2.5.22 <https://akka.io/blog/news/2019/04/03/akka-2.5.22-released>`__
17   * `2.5.23 <https://akka.io/blog/news/2019/05/21/akka-2.5.23-released>`__
18
19 * asciidoctorj-diagram 1.5.12 → 1.5.16
20
21 * Bouncy Castle `1.61 → 1.62 <http://www.bouncycastle.org/releasenotes.html>`__
22
23 * commons-lang3 `3.8.1 → 3.9 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`__
24
25 * JaCoCo `0.8.3 → 0.8.4 <https://github.com/jacoco/jacoco/releases/tag/v0.8.4>`__
26
27 * Jackson `2.9.8 → 2.9.9 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.9>`__
28
29 * Jolokia 1.6.0 → 1.6.2, release notes:
30   * `1.6.1 <https://jolokia.org/changes-report.html#a1.6.1>`__
31   * `1.6.2 <https://jolokia.org/changes-report.html#a1.6.2>`__
32
33 * Mockito `2.25.0 → 2.25.1 <https://github.com/mockito/mockito/blob/release/2.x/doc/release-notes/official.md#2251>`__
34
35 * Netty 4.1.34 → 4.1.36, release notes:
36   * `4.1.35 <https://netty.io/news/2019/04/17/4-1-35-Final.html>`__
37   * `4.1.36 <https://netty.io/news/2019/04/30/4-1-36-Final.html>`__
38
39 * PowerMock 2.0.0 → 2.0.2, release notes:
40   * `2.0.1 <https://github.com/powermock/powermock/releases/tag/powermock-2.0.1>`__
41   * `2.0.2 <https://github.com/powermock/powermock/releases/tag/powermock-2.0.2>`__
42
43 * Reactive Streams `1.0.1 → 1.0.2 <https://www.lightbend.com/blog/update-reactive-streams-102-released>`__
44
45 * scala-parser-combinators `1.1.1 → 1.1.2 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.2>`__
46
47 * Sevntu `1.32.0 → 1.33.0 <http://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.33.0>`__
48
49 * Typesafe Config `1.3.2 → 1.3.3 <https://github.com/lightbend/config/releases/tag/v1.3.3>`__
50
51 * triemap `1.0.4 → 1.0.5 <https://github.com/PantheonTechnologies/triemap/releases/tag/triemap-1.0.5>`__
52
53 * XBean finder 4.12 → 4.14, release notes:
54   * `4.13 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12344253&projectId=12310312>`__
55   * `4.14 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310312&version=12345220>`__
56
57 * xmlunit `2.6.2 → 2.6.3 <https://github.com/xmlunit/xmlunit/releases/tag/v2.6.3>`__
58
59 * Xtend `2.17.0 → 2.17.1 <https://www.eclipse.org/xtend/releasenotes.html#/releasenotes/2019/04/03/version-2-17-1>`__
60
61 Plugin upgrades
62 ~~~~~~~~~~~~~~~
63
64 * maven-archetype-plugin 3.0.1 → 3.1.1, release notes:
65   * `3.1.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317122&version=12340346>`__
66   * `3.1.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317122&version=12345450>`__
67
68 * maven-bundle-plugin `4.1.0 → 4.2.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310100&version=12345047>`__
69
70 * maven-checkstyle-plugin `3.1.0 → 3.1.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317223&version=12342397>`__
71
72 * maven-compiler-plugin `3.8.0 → 3.8.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317225&version=12343484>`__
73
74 * maven-help-plugin `3.1.1 → 3.2.0 <https://blog.soebes.de/blog/2019/04/22/apache-maven-help-plugin-version-3-dot-2-0-released/>`__
75
76 * maven-jar-plugin `3.1.1 → 3.1.2 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317526&version=12344629>`__
77
78 * maven-plugin-plugin `3.5.2 → 3.6.0 <https://blogs.apache.org/maven/entry/apache-maven-plugin-tools-version1>`__
79
80 * maven-source-plugin `3.0.1 → 3.1.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317924&version=12336941>`__
81
82 * maven-surefire-plugin 2.22.1 → 2.22.2
83
84 New plugins
85 ~~~~~~~~~~~
86
87 * ``modernizer-maven-plugin`` declared, allowing downstreams to more easily activate it,
88   and so detect code which should be updated to more modern equivalent.
89
90 New features
91 ~~~~~~~~~~~~
92
93 * ``odl-caffeine-2`` provides a pre-packaged feature for the Caffeine caching framework,
94   along with the Guava compabitility layer.
95
96 Version 5.0.0
97 -------------
98
99 This is a major upgrade from version 4, with breaking changes; projects will
100 need to make changes to upgrade to this version.
101
102 The most significant change is `ODLPARENT-198 <https://jira.opendaylight.org/browse/ODLPARENT-198>`__,
103 which removes JSR305 from default dependencies and does not present it at class path by default.
104
105 Deleted artifacts
106 ~~~~~~~~~~~~~~~~~
107
108 ``findbugs`` has been removed, as its only purpose was to provide FindBugs
109 rule definitions. Equivalent definitions are available in ``spotbugs``.
110
111 Bug fixes
112 ~~~~~~~~~
113
114 * ``blueprint-maven-plugin`` used to scan the entire classpath, resulting in potential conflicts
115   across projects. Scanning is now limited to ``${project.groupId}``, limiting conflict domain
116   to single project. See `ODLPARENT-109 <https://jira.opendaylight.org/browse/ODLPARENT-109>`__.
117
118 * ``bundle-maven-plugin`` configuration ignored generated ServiceLoader service entries,
119   which has now been fixed. See `ODLPARENT-197 <https://jira.opendaylight.org/browse/ODLPARENT-197>`__.
120
121 * Bundle tests are now enabled by default. See `ODLPARENT-158 <https://jira.opendaylight.org/browse/ODLPARENT-158>`__
122   and `ODLPARENT-80 <https://jira.opendaylight.org/browse/ODLPARENT-80>`__ for details.
123
124 * Karaf log file rollover was not explictly set up, leading to inability to easily override
125   the defaults. See `ODLPARENT-153 <https://jira.opendaylight.org/browse/ODLPARENT-153>`__ for details.
126
127 * Karaf log file used to use default maximum 16MiB file size, this has now been increased to 64MiB.
128   See `ODLPARENT-154 <https://jira.opendaylight.org/browse/ODLPARENT-154>`__.
129
130 * ``features-test`` excluded opendaylight-karaf-empty's transitive dependencies, leading
131   to the need to re-declare them in single-feature-parent. This re-declaration was forgotten
132   in for ``bcpkix-framework-ext`` and ``bcprov-framework-ext`` bundles, which lead to them
133   not being present in the local repository. See `ODLPARENT-130 <https://jira.opendaylight.org/browse/ODLPARENT-130>`__.
134
135 Upstream version removals
136 ~~~~~~~~~~~~~~~~~~~~~~~~~
137
138 The following upstream dependencies have been removed from dependency management:
139
140 * cassandra-driver-core
141
142 * org.codehaus.enunciate/enunciate-core-annotations
143
144 * org.jboss.resteasy/jaxrs-api
145
146 * org.json/json
147
148 * org.osgi/org.osgi.compendium
149
150 Removed features
151 ~~~~~~~~~~~~~~~~
152
153 * odl-jersey-1
154
155 * ``features-akka`` feature repository has been integrated into ``features-odlparent``
156
157 Third-party dependencies
158 ~~~~~~~~~~~~~~~~~~~~~~~~
159
160 The following dependencies have been upgraded:
161
162 * apache-sshd `2.0.0 → 2.2.0 <https://github.com/apache/mina-sshd/compare/sshd-2.0.0...sshd-2.2.0>`__
163
164 * Aeron 1.12.0 → 1.15.3, release notes:
165   * `1.13.0 <https://github.com/real-logic/aeron/releases/tag/1.13.0>`__
166   * `1.14.0 <https://github.com/real-logic/aeron/releases/tag/1.14.0>`__
167   * `1.15.0 <https://github.com/real-logic/aeron/releases/tag/1.15.0>`__
168   * `1.15.1 <https://github.com/real-logic/aeron/releases/tag/1.15.1>`__
169   * `1.15.2 <https://github.com/real-logic/aeron/releases/tag/1.15.2>`__
170   * `1.15.3 <https://github.com/real-logic/aeron/releases/tag/1.15.3>`__
171
172 * Agrona 0.9.27 → 0.9.33, release notes:
173   * `0.9.28 <https://github.com/real-logic/agrona/releases/tag/0.9.28>`__
174   * `0.9.29 <https://github.com/real-logic/agrona/releases/tag/0.9.29>`__
175   * `0.9.30 <https://github.com/real-logic/agrona/releases/tag/0.9.30>`__
176   * `0.9.31 <https://github.com/real-logic/agrona/releases/tag/0.9.31>`__
177   * `0.9.32 <https://github.com/real-logic/agrona/releases/tag/0.9.32>`__
178   * `0.9.33 <https://github.com/real-logic/agrona/releases/tag/0.9.33>`__
179
180 * Akka 2.5.19 → 2.5.21, release notes:
181   * `2.5.20 <https://akka.io/blog/news/2019/01/29/akka-2.5.20-released>`__
182   * `2.5.21 <https://akka.io/blog/news/2019/02/13/akka-2.5.21-released>`__
183
184 * antl4r `4.7.1 → 4.7.2 <https://github.com/antlr/antlr4/releases/tag/4.7.2>`__
185
186 * asciidoctorj-diagram 1.5.11 → 1.5.12
187
188 * Bouncy Castle `1.60 → 1.61 <http://www.bouncycastle.org/releasenotes.html>`__
189
190 * checkstyle 8.16 → 8.18, release notes:
191   * `8.17 <http://checkstyle.sourceforge.net/releasenotes.html#Release_8.17>`__
192   * `8.18 <http://checkstyle.sourceforge.net/releasenotes.html#Release_8.18>`__
193
194 * commons-codec `1.11 → 1.12 <http://www.apache.org/dist/commons/codec/RELEASE-NOTES.txt>`__
195
196 * Google Error Prone 2.3.2 → 2.3.3
197
198 * Google Guava 25.1 → 27.1, release notes:
199   * `26.0 <https://github.com/google/guava/releases/tag/v26.0>`__
200   * `27.0 <https://github.com/google/guava/releases/tag/v27.0>`__
201   * `27.0.1 <https://github.com/google/guava/releases/tag/v27.0.1>`__
202   * `27.1 <https://github.com/google/guava/releases/tag/v27.1>`__
203
204 * Google Truth `0.42 → 0.43 <https://github.com/google/truth/releases/tag/release_0_43>`__
205
206 * h2 database `1.4.196 → 1.4.199 <http://www.h2database.com/html/changelog.html>`__
207
208 * Immutables `2.7.3 → 2.7.5 <https://github.com/immutables/immutables/#changelog>`__
209
210 * Javassist `3.24.0-GA → 3.24.1-GA <https://github.com/jboss-javassist/javassist/releases/tag/rel_3_24_1_ga>`__
211
212 * log4j2 `2.11.1 → 2.11.2 <https://github.com/apache/logging-log4j2/blob/log4j-2.11.2/RELEASE-NOTES.md>`__
213
214 * Mockito 2.23.4 → 2.25.0, release notes:
215   * `2.24.0 <https://github.com/mockito/mockito/blob/release/2.x/doc/release-notes/official.md#2240>`__
216   * `2.25.0 <https://github.com/mockito/mockito/blob/release/2.x/doc/release-notes/official.md#2250>`__
217
218 * Netty 4.1.32 → 4.1.34, release notes:
219   * `4.1.32 <https://netty.io/news/2018/11/29/4-1-32-Final.html>`__
220   * `4.1.33 <https://netty.io/news/2019/01/21/4-1-33-Final.html>`__
221   * `4.1.34 <https://netty.io/news/2019/03/08/4-1-34-Final.html>`__
222
223 * OSGi 5.0.0 → 6.0.0
224
225 * Powermockito 1.7.4 → 2.0.0, release notes:
226   * `2.0.0-beta.5 <https://github.com/powermock/powermock/releases/tag/powermock-2.0.0-beta.5>`__
227   * `2.0.0-RC.1 <https://github.com/powermock/powermock/releases/tag/powermock-2.0.0-RC.1>`__
228   * `2.0.0 <https://github.com/powermock/powermock/releases/tag/powermock-2.0.0>`__
229
230 * SpotBugs `3.1.9 → 3.1.12 <https://github.com/spotbugs/spotbugs/blob/3.1.12/CHANGELOG.md>`__
231
232 * ThreeTen `1.4.0 → 1.5.0 <https://www.threeten.org/threeten-extra/changes-report.html#a1.5.0>`__
233
234 * Xtend `2.16.0 → 2.17.0 <http://www.eclipse.org/xtend/releasenotes.html#/releasenotes/2019/03/05/version-2-17-0>`__
235
236 Plugin removals
237 ~~~~~~~~~~~~~~~
238
239 * gmaven-plugin
240
241 * maven-findbugs-plugin
242
243 Plugin upgrades
244 ~~~~~~~~~~~~~~~
245
246 * jacoco-maven-plugin `0.8.2 → 0.8.3 <https://github.com/jacoco/jacoco/releases/tag/v0.8.3>`__
247
248 * maven-invoker-plugin `3.1.0 → 3.2.0 <https://mail-archives.apache.org/mod_mbox/maven-announce/201901.mbox/%3Cop.zvzdg9tbkdkhrr@desktop-2khsk44%3E>`__
249
250 * maven-javadoc-plugin `3.0.1 → 3.1.0 <https://mail-archives.apache.org/mod_mbox/maven-announce/201903.mbox/%3C6064d830-474c-4b43-afef-99502c3a305a%40getmailbird.com%3E>`__
251
252 * spotbugs-maven-plugin 3.1.8 → 3.1.11
253
254 Version 4.0.9
255 -------------
256
257 This is a bug-fix upgrade from version 4.0.8.
258
259 Bug fixes
260 ~~~~~~~~~
261
262 * ``karaf-plugin`` invocation in ``karaf4-parent`` caused previously
263   patched features to be overwritten with their stock versions, referencing
264   bundles which were not populated in the local repository. (See
265   `ODLPARENT-194 <https://jira.opendaylight.org/browse/ODLPARENT-194>`__.)
266
267 * ``karaf-plugin`` version in ``karaf4-parent`` is now provided through
268   plugin management so downstreams can override it without needing
269   to repeat its configuration.
270
271 * ``karaf-plugin`` no longer reads features twice when running discovery,
272   speeding up the process a bit.
273
274 * Recent versions of the SpotBugs Maven plugin use SLF4J 1.8 beta 2, which
275   can’t use the 1.7.25 implementation we provide; we therefore provide an
276   implementation of 1.8 beta 2 when SpotBugs is used. (See
277   `ODLPARENT-184 <https://jira.opendaylight.org/browse/ODLPARENT-184>`__.)
278
279 New features
280 ~~~~~~~~~~~~
281
282 * ``odl-woodstox`` wraps the Woodstox StAX implementation which is imposed on
283   us by Karaf.
284
285 Version 4.0.8
286 -------------
287
288 This is a bug-fix and minor upstream bump upgrade from version 4.0.7.
289
290 Bug fixes
291 ~~~~~~~~~
292
293 * ``bcprov-ext-jdk15on`` is a superset of ``bcprov-jdk15on``, so there’s no
294   need to ship both; we now only ship the former. In addition, we install the
295   Bouncy Castle JARs in ``lib/boot`` so that they continue to be available on
296   the boot classpath (JDK 9 removes the extension mechanism which was used
297   previously), and provide the corresponding bundles from the boot classpath
298   instead of using separate JARs in the system repository. (See
299   `ODLPARENT-183 <https://jira.opendaylight.org/browse/ODLPARENT-183>`__ and
300   `ODLPARENT-185 <https://jira.opendaylight.org/browse/ODLPARENT-185>`__.)
301
302 * A dependency check has been added to ensure that we don’t run into the
303   TrieMap dependency bug in 4.0.6 again.
304
305 * Dependencies pulled in by features are now checked for convergence, and
306   ``karaf-plugin`` warns when it finds diverging dependencies (the same
307   artifact with two different versions). Upstream-provided features are
308   patched to avoid the following divergences (and upgrade some dependencies in
309   the process):
310
311   * Aries utilities 1.1.0/1.1.3 (upgraded to 1.1.3).
312   * Commons Beanutils 1.8.3/1.9.3 (upgraded to 1.9.3).
313   * Commons Codec 1.8/1.10 (upgraded to 1.11).
314   * ``javax.mail`` 1.4.4/1.4.7 (upgraded to 1.4.7).
315
316   (See `ODLPARENT-189 <https://jira.opendaylight.org/browse/ODLPARENT-189>`__.)
317
318 New features
319 ~~~~~~~~~~~~
320
321 * ``odl-dropwizard-metrics`` provides Dropwizard Metrics (which are also
322   available in dependency management).
323
324 * ``enunciate-maven-plugin`` is added as the replacement for
325   ``maven-enunciate-plugin``.
326
327 Third-party dependencies
328 ~~~~~~~~~~~~~~~~~~~~~~~~
329
330 The following dependencies are no longer provided by the JVM, starting with
331 version 11, but we make them available via dependency management for projects
332 which need them:
333
334 * ``javax.annotation-api``.
335
336 * JAXB (``jaxb-core``, ``jaxb-impl``).
337
338 The following dependencies have been upgraded:
339
340 * Checkstyle `8.15 → 8.16 <https://checkstyle.org/releasenotes.html#Release_8.16>`__.
341
342 * Dependency Check `4.0.0 → 4.0.2 <https://github.com/jeremylong/DependencyCheck/blob/master/RELEASE_NOTES.md>`__.
343
344 * ``git-commit-id`` `2.2.5 → 2.2.6 <https://github.com/ktoso/maven-git-commit-id-plugin/releases>`__.
345
346 * Immutables 2.7.1 → 2.7.3:
347
348   * `2.7.2 <https://github.com/immutables/immutables#272-2018-11-05>`__.
349   * `2.7.3 <https://github.com/immutables/immutables#273-2018-11-10>`__.
350
351   (2.7.4 breaks our Javadocs.)
352
353 * Jackson `2.9.7 → 2.9.8 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.8>`__.
354
355 Version 4.0.7
356 -------------
357
358 This is a bug-fix release, correcting the ``triemap`` import declaration.
359
360 Version 4.0.6
361 -------------
362
363 This is a bug-fix and minor upstream packaging upgrade from version 4.0.5.
364
365 Bug fixes
366 ~~~~~~~~~
367
368 Single-feature-test was broken with JDK 9 and later and Karaf 4.2.2; this
369 release adds the additional JVM configuration needed.
370
371 Third-party dependencies
372 ~~~~~~~~~~~~~~~~~~~~~~~~
373
374 This release adds the ``triemap`` BOM to dependency management.
375
376 Version 4.0.5
377 -------------
378
379 This is a bug-fix release: the Karaf Maven plugin, in version 4.2.2, is
380 `broken <https://issues.apache.org/jira/browse/KARAF-6057>`__ in some cases we
381 need in OpenDaylight; we revert to 4.2.1 in ``karaf4-parent`` to avoid this.
382
383 Version 4.0.4
384 -------------
385
386 This is a bug-fix release, reverting the change made in 4.0.3 to handle
387 building with either ``zip`` or ``tar.gz`` Karaf archives (which breaks
388 builds in our infrastructure, without the empty Karaf archive).
389
390 Version 4.0.3
391 -------------
392
393 This is a bug-fix and minor upstream bump upgrade from version 4.0.2.
394
395 Bug fixes
396 ~~~~~~~~~
397
398 * Our FindBugs configuration for JDK 9 and later caused the plugin to run
399   everywhere; instead, this version defines the ``findbugs.skip`` property to
400   disable the plugin in modules where it would be used otherwise.
401
402 * The PowerMock declarations in dependency management missed
403   ``powermock-api-mockito2``, which is necessary for modules using PowerMock
404   with Mockito 2.
405
406 * The “quick” profile (``-Pq``) now skips SpotBugs.
407
408 * JSR-305 annotations are now optional, which fixes a number of issues when
409   building with newer JDKs.
410
411 * We provide JAXB with JDK 11 and later (where it is no longer provided by the
412   base platform).
413
414 * ``odlparent-artifacts`` has been updated to accurately represent the
415   artifacts provided.
416
417 * ``javax.activation`` is now excluded from generated features (it’s provided
418   on Karaf’s boot classpath).
419
420 * When the build is configured to build Karaf distributions in ``tar.gz``
421   archives, but not ``zip`` archives, ``features-test`` used to fail; it will
422   now used whichever is available
423   (`ODLPARENT-174 <https://jira.opendaylight.org/browse/ODLPARENT-174>`__).
424
425 * Explicit GCs are disabled by default, so that calls to ``System.gc()`` are
426   ignored
427   (`ODLPARENT-175 <https://jira.opendaylight.org/browse/ODLPARENT-175>`__).
428
429 * Null checks are disabled in SpotBugs because of bad interactions with newer
430   annotations and the bytecode produces by JDK 11 and later for
431   ``try``-with-resources.
432
433 * Akka Persistence expects LevelDB 0.10, so we now pull in that version
434   instead of 0.7.
435
436 Dependency convergence
437 ~~~~~~~~~~~~~~~~~~~~~~
438
439 A number of dependencies have been added or constrained so that projects using
440 this parent can enforce dependency convergence:
441
442 * Karaf’s ``framework`` feature is used as an import POM, so that we converge
443   by default on the versions used in Karaf.
444
445 * The following dependencies have been added to dependency management:
446
447   * ``commons-beanutils``
448   * the Checker Framework
449   * Error Prone annotations
450   * ``javax.activation``
451   * ``xml-apis``
452
453 New features
454 ~~~~~~~~~~~~
455
456 The following Karaf features have been added:
457
458 * ``odl-antlr4`` (providing ``antlr4-runtime``);
459
460 * ``odl-gson`` (providing ``gson``);
461
462 * ``odl-jersey-2`` (providing Jersey client, server, and container servlet,
463   along with the necessary feature dependencies);
464
465 * ``odl-servlet-api`` (providing ``javax.servlet-api``);
466
467 * ``odl-stax2-api`` (providing ``stax2-api``);
468
469 * ``odl-ws-rs-api`` (providing ``javax.ws.rs-api``);
470
471 A new ``sonar-jacoco-aggregate`` profile can be used to produce Sonar reports
472 with aggregated JaCoCo reports. Additionally, Sonar builds (run with
473 ``-Dsonar``) are detected and run with a number of irrelevant plugins disabled.
474
475 Upstream version upgrades
476 ~~~~~~~~~~~~~~~~~~~~~~~~~
477
478 * Akka 2.5.14 → 2.5.19 (and related ``ssl-config``, Aeron and Agrona upgrades):
479
480   * `2.5.15 <https://akka.io/blog/news/2018/08/24/akka-2.5.15-released>`__.
481   * `2.5.16 <https://akka.io/blog/news/2018/08/29/akka-2.5.16-security-fix-released>`__.
482   * `2.5.17 <https://akka.io/blog/news/2018/09/27/akka-2.5.17-released>`__.
483   * `2.5.18 <https://akka.io/blog/news/2018/10/07/akka-2.5.18-released>`__.
484   * `2.5.19 <https://akka.io/blog/news/2018/12/07/akka-2.5.19-released>`__.
485
486 * Commons Text `1.4 → 1.6 <http://www.apache.org/dist/commons/text/RELEASE-NOTES.txt>`__.
487
488 * Eclipse JDT annotations 2.2.0 → 2.2.100.
489
490 * Javassist 3.23.1 → 3.24.0.
491
492 * Karaf 4.2.1 → 4.2.2, with related upgrades.
493
494 * LMAX Disruptor `3.4.1 → 3.4.2 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.2>`__.
495
496 * Mockito `2.20.1 → 2.23.4 <https://github.com/mockito/mockito/blob/release/2.x/doc/release-notes/official.md>`__.
497
498 * Netty 4.1.29 → 4.1.31:
499
500   * `4.1.30 <https://netty.io/news/2018/09/28/4-1-30-Final.html>`__.
501   * `4.1.31 <https://netty.io/news/2018/10/30/4-1-31-Final.html>`__.
502
503 * Pax Exam 4.12.0 → 4.13.1.
504
505 * Scala 2.12.6 → 2.12.8:
506
507   * `2.12.7 <https://github.com/scala/scala/releases/tag/v2.12.7>`__.
508   * `2.12.8 <https://github.com/scala/scala/releases/tag/v2.12.8>`__.
509
510 * Wagon HTTP 3.1.0 → 3.2.0.
511
512 * Xtend `2.14.0 → 2.16.0 <https://www.eclipse.org/xtend/releasenotes.html>`__.
513
514 Plugin version upgrades
515 ~~~~~~~~~~~~~~~~~~~~~~~
516
517 * Asciidoctor `1.5.6 → 1.5.7.1 <https://github.com/asciidoctor/asciidoctor-maven-plugin/releases>`__
518   (with related AsciidoctorJ upgrades).
519
520 * Bundle 4.0.0 → 4.1.0.
521
522 * Checkstyle `8.12 → 8.15 <https://checkstyle.org/releasenotes.html#Release_8.13>`__.
523
524 * DependencyCheck `3.3.2 → 4.0.0 <https://github.com/jeremylong/DependencyCheck/blob/master/RELEASE_NOTES.md>`__.
525
526 * Failsafe / Surefire `2.22.0 → 2.22.1 <https://blogs.apache.org/maven/entry/apache-maven-surefire-plugin-version1>`__.
527
528 * Help 3.1.0 → 3.1.1.
529
530 * JAR 3.1.0 → 3.1.1.
531
532 * PMD `3.10.0 → 3.11.0 <https://blogs.apache.org/maven/entry/apache-maven-pmd-plugin-3>`__.
533
534 * Remote Resources `1.5 → 1.6.0 <https://blogs.apache.org/maven/entry/apache-maven-remote-resources-plugin>`__.
535
536 * Shade
537   `3.2.0 → 3.2.1 <https://blog.soebes.de/blog/2018/11/12/apache-maven-shade-plugin-version-3-dot-2-1-released/>`__.
538
539 * SpotBugs `3.1.6 → 3.1.9 <https://github.com/spotbugs/spotbugs/blob/release-3.1/CHANGELOG.md>`__.
540
541 * XBean finder 4.9 → 4.12.
542
543 * XTend 2.14.0 → 2.16.0.
544
545 Version 4.0.2
546 -------------
547
548 This is a bug-fix and minor upstream bump upgrade from version 4.0.1.
549
550 Bug fixes
551 ~~~~~~~~~
552
553 Previous releases overrode Karaf’s ``jre.properties``; this is no longer
554 necessary, and was causing failures with Java 9 and later (our version of
555 ``jre.properties`` didn’t have the appropriate settings for anything after
556 Java 8). This release drops that override. See
557 `ODLPARENT-168 <https://jira.opendaylight.org/browse/ODLPARENT-168>`__ for
558 details.
559
560 Upstream version upgrades
561 ~~~~~~~~~~~~~~~~~~~~~~~~~
562
563 * Commons Lang `3.8 → 3.8.1 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`__.
564
565 * Jackson `2.9.6 → 2.9.7 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.7>`__.
566
567 * Netty `4.1.28 → 4.1.29 <http://netty.io/news/2018/08/24/4-1-29-Final.html>`__.
568
569 Plugin version upgrades
570 ~~~~~~~~~~~~~~~~~~~~~~~
571
572 * JAR `3.0.2 → 3.1.0 <https://blog.soebes.de/blog/2018/04/10/apache-maven-jar-plugin-version-3-dot-1-dot-0-released>`__.
573
574 * Javadoc `3.0.0 → 3.0.1 <https://blogs.apache.org/maven/entry/apache-maven-javadoc-plugin-version>`__.
575
576 * Jersey `2.22.2 → 2.25.1 <https://jersey.github.io/release-notes/2.25.html>`__,
577   along with Glassfish JSON 1.0.4 → 1.1.2.
578
579 * Plugin 3.5 → 3.5.2:
580
581   * `3.5.1 <https://blog.soebes.de/blog/2018/01/22/apache-maven-plugin-tools-version-3-dot-5-1-released/>`__.
582   * `3.5.2 <https://blog.soebes.de/blog/2018/05/26/apache-mave-plugin-tools-version-3-dot-5-2-released/>`__.
583
584 * Resources `3.0.1 → 3.1.0 <https://blogs.apache.org/maven/entry/apache-maven-resources-plugin-version>`__.
585
586 Version 4.0.1
587 -------------
588
589 This is a bug-fix and minor upstream bump upgrade from version 4.0.0.
590
591 Bug fixes
592 ~~~~~~~~~
593
594 The JaCoCo execution profile was incorrect, breaking Sonar; the report is now
595 written correctly, so that Sonar can find it.
596
597 The Blueprint Maven plugin fails when it encounters Java 9 classes; this is
598 fixed by forcefully upgrading its dependency on xbean-finder. See
599 `ODLPARENT-167 <https://jira.opendaylight.org/browse/ODLPARENT-167>`__ for
600 details.
601
602 Upstream version upgrades
603 ~~~~~~~~~~~~~~~~~~~~~~~~~
604
605 * SpotBugs `3.1.6 → 3.1.7 <https://github.com/spotbugs/spotbugs/blob/release-3.1/CHANGELOG.md>`__.
606
607 Upstream version additions
608 ~~~~~~~~~~~~~~~~~~~~~~~~~~
609
610 * Mockito Inline is added alongside Mockito Core, to ensure that the versions
611   are kept in sync.
612
613 Plugin version upgrades
614 ~~~~~~~~~~~~~~~~~~~~~~~
615
616 * Clean `3.0.0 → 3.1.0 <https://blog.soebes.de/blog/2018/04/14/apache-maven-clean-plugin-version-3-dot-1-0-released/>`__.
617
618 * Compiler `3.7.0 → 3.8.0 <https://blog.soebes.de/blog/2018/07/30/apache-maven-compiler-plugin-version-3-dot-8-0-released/>`__.
619
620 * Dependency 3.0.2 → 3.1.1:
621
622   * `3.1.0 <https://blog.soebes.de/blog/2018/04/06/apache-maven-dependency-plugin-version-3-dot-1-0-released/>`__.
623   * `3.1.1 <https://blog.soebes.de/blog/2018/05/24/apache-maven-dependency-plugin-version-3-dot-1-1-released/>`__.
624
625 * Dependency Check `3.3.1 → 3.3.2 <https://github.com/jeremylong/DependencyCheck/blob/master/RELEASE_NOTES.md>`__.
626
627 * Enforcer `3.0.0-M1 → 3.0.0-M2 <https://mail-archives.apache.org/mod_mbox/maven-announce/201806.mbox/%3Cop.zko9b2vhkdkhrr%40desktop-2khsk44.dynamic.ziggo.nl%3E>`__.
628
629 * Failsafe 2.20.1 → 2.22:
630
631   * `2.21 <https://blog.soebes.de/blog/2018/03/06/apache-maven-surefire-plugin-version-2-dot-21-released/>`__.
632   * `2.22 <https://blog.soebes.de/blog/2018/06/16/apache-maven-surefire-plugin-version-2-dot-22-released/>`__.
633
634 * Help 2.2 → 3.1.0:
635
636   * `3.0.0 <https://blog.soebes.de/blog/2018/03/18/apache-maven-help-plugin-version-3-dot-0-0-released/>`__.
637   * `3.0.1 <https://blog.soebes.de/blog/2018/03/28/apache-maven-help-plugin-version-3-dot-0-1-released/>`__.
638   * `3.1.0 <https://blog.soebes.de/blog/2018/06/09/apache-maven-help-plugin-version-3-dot-1-0-released/>`__.
639
640 * Invoker 2.0.0 → 3.1.0:
641
642   * `3.0.0 <https://blog.soebes.de/blog/2017/05/24/apache-maven-invoker-plugin-version-3-dot-0-0-released/>`__.
643   * `3.1.0 <https://blog.soebes.de/blog/2018/05/31/apache-maven-invoker-plugin-version-3-dot-1-0-released/>`__.
644
645 * JAR `3.0.2 → 3.1.0 <https://blog.soebes.de/blog/2018/04/10/apache-maven-jar-plugin-version-3-dot-1-dot-0-released/>`__.
646
647 * Project Info Reports `2.9 → 3.0.0 <https://blog.soebes.de/blog/2018/06/27/apache-maven-project-info-reports-plugin-3-dot-0-0-released/>`__.
648
649 * Resources `3.0.1 → 3.1.0 <https://blog.soebes.de/blog/2018/05/01/apache-maven-resources-plugin-version-3-dot-1-0-released/>`__.
650
651 * Shade `3.1.0 → 3.2.0 <https://blog.soebes.de/blog/2018/09/13/apache-maven-shade-plugin-version-3-dot-2-0-released/>`__.
652
653 * Site `3.7 → 3.7.1 <https://blog.soebes.de/blog/2018/04/29/apache-maven-site-plugin-version-3-dot-7-1-released/>`__.
654
655 * Surefire 2.18.1 → 2.22.0:
656
657   * `2.19 <https://blog.soebes.de/blog/2015/10/19/apache-maven-surefire-plugin-version-2-dot-19-released/>`__.
658   * `2.19.1 <https://blog.soebes.de/blog/2016/01/03/apache-maven-surefire-plugin-version-2-dot-19-dot-1-released/>`__.
659   * `2.20 <https://blog.soebes.de/blog/2017/04/12/apache-maven-surefire-plugin-version-2-dot-20-released/>`__.
660   * `2.21 <https://blog.soebes.de/blog/2018/03/06/apache-maven-surefire-plugin-version-2-dot-21-released/>`__.
661   * `2.22 <https://blog.soebes.de/blog/2018/06/16/apache-maven-surefire-plugin-version-2-dot-22-released/>`__.
662
663
664 Version 4.0.0
665 -------------
666
667 This is a major upgrade from version 3, with breaking changes; projects will
668 need to make changes to upgrade to this version.
669
670 `This Wiki page <https://wiki.opendaylight.org/view/Neon_platform_upgrade>`_
671 has detailed step-by-step migration instructions.
672
673 ODL Parent 4 requires Maven 3.5.3 or later; this is needed in particular to
674 enable SpotBugs support with current versions of the SpotBugs plugin.
675
676 Known issues
677 ~~~~~~~~~~~~
678
679 This release’s SpotBugs support doesn’t handle Guava 25.1 correctly, resulting
680 in false-positives regarding null handling; see
681 `ODLPARENT-161 <https://jira.opendaylight.org/browse/ODLPARENT-161>`_ for
682 details. Until this is fixed, the corresponding warnings are disabled, which
683 matches our existing FindBugs configuration (which suffers from the a variant
684 of this, with the same consequences).
685
686 We are planning on upgrading Akka during the 4.x cycle, even if it results in
687 a technically breaking upgrade. This is currently blocked on an OSGi bug in
688 Akka; see `Akka issue 25579 <https://github.com/akka/akka/issues/25579>`_ for
689 details.
690
691 Blueprint and OSGi service handling
692 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
693
694 Previous releases used an OpenDaylight-specific directory for Blueprint XML
695 files, ``org/opendaylight/blueprint``. It turned out this wasn’t useful, so
696 version 4 uses the default directory, ``OSGI-INF/blueprint``.
697
698 The Maven bundle plugin is now configured to omit the ``Import-Service`` and
699 ``Export-Service`` headers, since they are deprecated, unnecessary in
700 OpenDaylight, and liable to cause issues.
701
702 With previous releases of OpenDaylight, projects were encouraged to use Pax
703 CDI API annotations to describe their Blueprint beans, services and injections;
704 with version 4, Blueprint annotations should be used instead:
705
706 * modules should depend on
707   ``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``, with the
708   ``<optional>true</optional>`` flag, instead of
709   ``org.ops4j.pax.cdi:pax-cdi-api``;
710
711 * ``@OsgiServiceProvider`` on bean definitions is replaced by ``@Service``;
712
713 * ``@OsgiService`` at injection points is replaced by ``@Reference``;
714
715 * ``@OsgiService`` on bean definitions, while technically wrong, can be seen in
716   the OpenDaylight codebase; this is replaced by ``@Service``;
717
718 * service lists can be injected using ``@ReferenceList``.
719
720 See `this Gerrit patch <https://git.opendaylight.org/gerrit/75699>`_ for an
721 example.
722
723 Compiler settings
724 ~~~~~~~~~~~~~~~~~
725
726 Builds now warn about unchecked type uses (such as raw types where generics
727 are available).
728
729 JUnit and Mockito are always available as test dependencies and no longer need
730 to be declared in POMs.
731
732 New build profiles
733 ~~~~~~~~~~~~~~~~~~
734
735 An OWASP profile is now available to run OWASP’s dependency checker; this will
736 check all third-party dependencies against the NVD vulnerability database. To
737 enable this, run Maven with ``-Powasp``.
738
739 Build profile changes
740 ~~~~~~~~~~~~~~~~~~~~~
741
742 ``-Pq`` now skips Modernizer.
743
744 New features
745 ~~~~~~~~~~~~
746
747 ``odl-akka-leveldb-0.10`` wraps LevelDB 0.10 for Akka.
748
749 ``odl-apache-commons-codec`` wraps Apache Commons Codec.
750
751 ``odl-apache-commons-lang3`` wraps Apache Commons Lang 3.
752
753 ``odl-apache-commons-net`` wraps Apache Commons Net.
754
755 ``odl-apache-commons-text`` wraps Apache Commons Text.
756
757 ``odl-apache-sshd`` wraps Apache SSHD.
758
759 ``odl-guava`` provides the default ODL version of Guava; it should be used
760 instead of ``odl-guava-23`` or the new ``odl-guava-25``.
761
762 ``odl-jackson-2.9`` wraps Jackson 2.9.
763
764 New FindBugs and SpotBugs settings
765 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
766
767 FindBugs and SpotBugs are configured with
768 `the SLF4J extension <http://kengotoda.github.io/findbugs-slf4j/>`_ (version
769 1.4.0 for FindBugs, 1.4.1 for SpotBugs). This will flag misused SLF4J calls, in
770 particular message templates which don’t match the arguments, and invalid
771 placeholders (*e.g.* ``%s`` instead of ``{}``).
772
773 Deleted artifacts
774 ~~~~~~~~~~~~~~~~~
775
776 ``aggregator-parent`` was unusable outside ``odlparent`` and has been removed.
777 Instead, the ``maven.deploy.skip`` and ``maven.install.skip`` properties are
778 available to disable deploying and installing artifacts.
779
780 Upstream version upgrades
781 ~~~~~~~~~~~~~~~~~~~~~~~~~
782
783 This version upgrades the following third-party dependencies:
784
785 * Aeron 1.7.0 → 1.9.3:
786
787   * `1.8.0 <https://github.com/real-logic/aeron/releases/tag/1.8.0>`_.
788   * `1.8.1 <https://github.com/real-logic/aeron/releases/tag/1.8.1>`_.
789   * `1.8.2 <https://github.com/real-logic/aeron/releases/tag/1.8.2>`_.
790   * `1.9.0 <https://github.com/real-logic/aeron/releases/tag/1.9.0>`_.
791   * `1.9.1 <https://github.com/real-logic/aeron/releases/tag/1.9.1>`_.
792   * `1.9.2 <https://github.com/real-logic/aeron/releases/tag/1.9.2>`_.
793   * `1.9.3 <https://github.com/real-logic/aeron/releases/tag/1.9.3>`_.
794
795 * Agrona 0.9.12 → 0.9.21:
796
797   * `0.9.13 <https://github.com/real-logic/agrona/releases/tag/0.9.13>`_.
798   * `0.9.14 <https://github.com/real-logic/agrona/releases/tag/0.9.14>`_.
799   * `0.9.15 <https://github.com/real-logic/agrona/releases/tag/0.9.15>`_.
800   * `0.9.16 <https://github.com/real-logic/agrona/releases/tag/0.9.16>`_.
801   * `0.9.17 <https://github.com/real-logic/agrona/releases/tag/0.9.17>`_.
802   * `0.9.18 <https://github.com/real-logic/agrona/releases/tag/0.9.18>`_.
803   * `0.9.19 <https://github.com/real-logic/agrona/releases/tag/0.9.19>`_.
804   * `0.9.20 <https://github.com/real-logic/agrona/releases/tag/0.9.20>`_.
805   * `0.9.21 <https://github.com/real-logic/agrona/releases/tag/0.9.21>`_.
806
807 * Akka 2.5.11 → 2.5.14:
808
809   * `2.5.12 <https://akka.io/blog/news/2018/04/13/akka-2.5.12-released>`_.
810   * `2.5.13 <https://akka.io/blog/news/2018/06/08/akka-2.5.13-released>`_.
811   * `2.5.14 <https://akka.io/blog/news/2018/07/13/akka-2.5.14-released>`_.
812
813 * ASM 5.1 → 6.2.1 (synchronised with Karaf).
814
815 * Bouncy Castle `1.59 → 1.60 <https://www.bouncycastle.org/releasenotes.html>`_.
816
817 * Checkstyle `8.4 → 8.12 <http://checkstyle.sourceforge.net/releasenotes.html#Release_8.12>`_.
818
819 * Commons Lang `3.7 → 3.8 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_.
820
821 * Commons Text 1.1 → 1.4:
822
823   * `1.2 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.2.txt>`_.
824   * `1.3 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.3.txt>`_.
825   * `1.4 <https://commons.apache.org/proper/commons-text/release-notes/RELEASE-NOTES-1.4.txt>`_.
826
827 * Eclipse JDT annotations 2.1.150 → 2.2.0.
828
829 * EclipseLink Moxy JAXB `2.7.1 → 2.7.3 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
830
831 * Enunciate core annotations
832   `2.10.1 → 2.11.1 <https://github.com/stoicflame/enunciate/releases>`_.
833
834 * Felix Metatype 1.1.6 → 1.2.0 (synchronised with Karaf).
835
836 * Google Truth `0.40 → 0.42 <https://github.com/google/truth/releases>`_.
837
838 * Guava 23.6.1 → 25.1:
839
840   * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_.
841   * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_.
842   * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_.
843   * `24.0 <https://github.com/google/guava/releases/tag/v24.0>`_.
844   * `24.1 <https://github.com/google/guava/releases/tag/v24.1>`_.
845   * `25.0 <https://github.com/google/guava/releases/tag/v25.0>`_.
846   * `25.1 <https://github.com/google/guava/releases/tag/v25.1>`_.
847
848 * Immutables `2.5.6 → 2.7.1 <https://github.com/immutables/immutables/blob/master/README.md#changelog>`_.
849
850 * Jackson 2.8.9 → 2.9.6:
851
852   * `2.9 feature overview <https://medium.com/@cowtowncoder/jackson-2-9-features-b2a19029e9ff>`_.
853   * `2.9 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9>`_.
854   * `2.9.1 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.1>`_.
855   * `2.9.2 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.2>`_.
856   * `2.9.3 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.3>`_.
857   * `2.9.4 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.4>`_.
858   * `2.9.5 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.5>`_.
859   * `2.9.6 <https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.6>`_.
860
861 * JaCoCo `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
862
863 * Javassist 3.22.0 → 3.23.1. This provides compatibility with Java 9 and later,
864   and `fixes a file handle leak <https://github.com/jboss-javassist/javassist/issues/165>`_.
865
866 * Jettison 1.3.8 → 1.4.0.
867
868 * Jetty 9.3.21 → 9.4.11 (synchronised with Karaf):
869
870   * `9.4.0 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00097.html>`_.
871   * `9.4.1 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00100.html>`_.
872   * `9.4.2 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00101.html>`_.
873   * `9.4.3 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00102.html>`_.
874   * `9.4.4 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00105.html>`_.
875   * `9.4.5 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00107.html>`_.
876   * `9.4.6 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00109.html>`_.
877   * `9.4.7 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00111.html>`_.
878   * `9.4.8 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00114.html>`_.
879   * `9.4.9 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00117.html>`_.
880   * `9.4.10 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00119.html>`_.
881   * `9.4.11 <https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00122.html>`_.
882
883 * Jolokia OSGi `1.5.0 → 1.6.0 <https://jolokia.org/changes-report.html#a1.6.0>`_.
884
885 * Karaf 4.1.5 → 4.2.1:
886
887   * `4.1.6 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342748>`_.
888   * `4.2.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342945>`_.
889
890 * LMAX Disruptor 3.3.10 → 3.4.1:
891
892   * `3.4.0 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.0>`_.
893   * `3.4.1 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.4.1>`_.
894
895 * META-INF services 1.7 → 1.8.
896
897 * Mockito 1.10.19 → 2.20.1; see
898   `What’s new in Mockito 2 <https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2>`_
899   for upgrade instructions and
900   `the list of issues you might run into <https://asolntsev.github.io/en/2016/10/11/mockito-2.1/>`_.
901
902 * Netty 4.1.22 → 4.1.28:
903
904   * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_.
905   * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_.
906   * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_.
907   * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_.
908   * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_.
909   * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_.
910   * `4.1.23 <http://netty.io/news/2018/04/04/4-1-23-Final.html>`_.
911   * `4.1.24 <http://netty.io/news/2018/04/19/4-1-24-Final.html>`_.
912   * `4.1.25 <http://netty.io/news/2018/05/14/4-1-25-Final.html>`_.
913   * `4.1.26 <http://netty.io/news/2018/07/10/4-1-26-Final.html>`_.
914   * `4.1.27 <http://netty.io/news/2018/07/11/4-1-27-Final.html>`_.
915   * `4.1.28 <http://netty.io/news/2018/07/27/4-1-28-Final.html>`_.
916
917 * Pax Exam 4.11.0 → 4.12.0.
918
919 * Pax URL 2.5.3 → 2.5.4, which only fixes
920   `a potential NullPointerException <https://ops4j1.jira.com/browse/PAXURL-346>`_.
921
922 * PowerMock 1.6.4 → 1.7.4:
923
924   * `1.6.5 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.5>`_.
925   * `1.6.6 <https://github.com/powermock/powermock/releases/tag/powermock-1.6.6>`_.
926   * `1.7.0 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.0>`_.
927   * `1.7.1 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.1>`_.
928   * `1.7.2 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.2>`_.
929   * `1.7.3 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.3>`_.
930   * `1.7.4 <https://github.com/powermock/powermock/releases/tag/powermock-1.7.4>`_.
931
932 * Scala parser combinators 1.0.7 → 1.1.1:
933
934   * `1.1.0 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.0>`_.
935   * `1.1.1 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.1.1>`_.
936
937 * SpotBugs `3.1.0 → 3.1.6 <https://github.com/spotbugs/spotbugs/blob/3.1.6/CHANGELOG.md>`_.
938
939 * Threeten Extra `1.3.2 → 1.4 <https://github.com/ThreeTen/threeten-extra/releases>`_.
940
941 * Typesafe SSL config 0.2.2 → 0.2.4:
942
943   * `0.2.3 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.3>`_.
944   * `0.2.4 <https://github.com/lightbend/ssl-config/releases/tag/v0.2.4>`_.
945
946 * Wagon HTTP
947   `2.10 → 3.1.0 <https://lists.apache.org/thread.html/96024c54db7680697cb066e22a37b0ed5b4498386714a8a9ae1ec9cd@%3Cannounce.maven.apache.org%3E>`_.
948
949 * XMLUnit `1.6 → 2.6.2 <https://github.com/xmlunit/xmlunit/blob/master/RELEASE_NOTES.md>`_.
950
951 Upstream version additions
952 ~~~~~~~~~~~~~~~~~~~~~~~~~~
953
954 The following upstream dependencies have been added to dependency management:
955
956 * Apache SSHD 2.0.0, with EdDSA and Netty support (EdDSA is provided by ``net.i2p.crypto:eddsa``).
957
958 * Blueprint annotations (``org.apache.aries.blueprint:blueprint-maven-plugin-annotation``).
959
960 * Log4J2.
961
962 * Pax Web 7.2.3 (synchronised with Karaf).
963
964 Upstream version removals
965 ~~~~~~~~~~~~~~~~~~~~~~~~~
966
967 The following upstream dependencies have been removed from dependency management:
968
969 * Google Protobuf.
970
971 * Our repackaging of Jersey Servlet.
972
973 * JUnit’s ``junit-dep``, which has long been obsolete.
974
975 * LevelDB (which is still available as features).
976
977 * Pax CDI API — Blueprint annotations should be used instead.
978
979 Plugin version upgrades
980 ~~~~~~~~~~~~~~~~~~~~~~~
981
982 The following plugins have been upgraded:
983
984 * Blueprint 1.4.0 → 1.10.0.
985
986 * Build helper 1.12 → 3.0.0.
987
988 * Bundle plugin 3.5.0 → 4.0.0.
989
990 * Checkstyle
991   `2.17 → 3.0.0 <https://mail-archives.apache.org/mod_mbox/maven-announce/201801.mbox/%3Cop.zchs68akkdkhrr%40desktop-2khsk44.mshome.net%3E>`_.
992
993 * Duplicate finder
994   `1.2.1 → 1.3.0 <https://github.com/basepom/duplicate-finder-maven-plugin/blob/master/CHANGES.md>`_.
995
996 * Git commit id `2.2.4 → 2.2.5 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.5>`_.
997
998 * Jacoco Maven plugin `0.8.1 → 0.8.2 <https://github.com/jacoco/jacoco/releases/tag/v0.8.2>`_.
999
1000 * Javadoc `3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
1001
1002 * PMD 3.8 → 3.10.0:
1003
1004   * `3.10.0 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12342689&styleName=Text&projectId=12317621>`_.
1005
1006 * Sevntu `1.29.0 → 1.32.0 <http://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.32.0>`_.
1007
1008 * SpotBugs 3.1.0-RC6 → 3.1.6 (see the SpotBugs changes above).
1009
1010 Version 3.1.3
1011 -------------
1012
1013 This version fixes the following issues:
1014
1015 * `ODLPARENT-156 <https://jira.opendaylight.org/browse/ODLPARENT-156>`_:
1016   ``xtend-maven-plugin``’s dependencies end up pulling in conflicting
1017   dependencies. ODL Parent now constrains part of its dependency tree to avoid
1018   this.
1019
1020 This version adds ``odl-jackson-2.8`` to ``odlparent-artifacts``.
1021
1022 Version 3.1.2
1023 -------------
1024
1025 This version fixes the following issues:
1026
1027 * `INFRAUTILS-41 <https://jira.opendaylight.org/browse/INFRAUTILS-41>`_:
1028   ``jre.properties`` includes ``com.sun.management`` so that it can be
1029   enabled if necessary. (This doesn’t add a dependency on
1030   ``com.sun.management``, it allows bundles to use it if it is present.)
1031
1032 * `ODLPARENT-136 <https://jira.opendaylight.org/browse/ODLPARENT-136>`_:
1033   ``SingleFeatureTest`` pulls in ``org.osgi.compendium``.
1034
1035 * `ODLPARENT-144 <https://jira.opendaylight.org/browse/ODLPARENT-144>`_:
1036   ``org.apache.karaf.scr.management`` is whitelisted so that it no longer
1037   affects ``SingleFeatureTest``.
1038
1039 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
1040   null-related FindBugs checks which produce false-positives with Guava 23.6
1041   and later are disabled, so that this really is fully backwards-compatible
1042   with 3.0 and later.
1043
1044 * `ODLPARENT-148 <https://jira.opendaylight.org/browse/ODLPARENT-148>`_:
1045   ``SingleFeatureTest`` preserves ``target/SFT/karaf.log``.
1046
1047 This version includes the following improvements:
1048
1049 * ``custom.properties`` no longer includes OVSDB-specific configuration.
1050
1051 * The ``odl-jersey-1`` feature includes the Jersey client.
1052
1053 * Redundant bundle dependency declarations in ``SingleFeatureTest`` have been
1054   removed (these are declarations which are also present in our base Karaf
1055   distribution).
1056
1057 * Build errors involving invalid feature or bundle URLs now indicate which
1058   feature is at fault.
1059
1060 * Obsolete Log4J overrides have been removed from ``SingleFeatureTest``.
1061
1062 When building using JDK 9 or 10, the default settings have been changed as
1063 follows to avoid errors or extraneous warnings:
1064
1065 * SFT is disabled (it needs Karaf 4.2 or later);
1066
1067 * Javadocs are generated as HTML 4;
1068
1069 * SpotBugs is disabled on JDK 10 or later;
1070
1071 * FindBugs is disabled on JDK 9 or later.
1072
1073 The following third-party dependencies have been upgraded:
1074
1075 * `EclipseLink Moxy JAXB 2.6.2 → 2.7.1 <https://www.eclipse.org/eclipselink/releases/2.7.php>`_.
1076
1077 * `Google Truth 0.36 → 0.40 <https://github.com/google/truth/releases>`_.
1078
1079 * `Gson 2.8.2 → 2.8.5 <https://github.com/google/gson/blob/master/CHANGELOG.md>`_.
1080
1081 * `Guava 23.6 → 23.6.1 <https://github.com/google/guava/compare/v23.6...v23.6.1>`_.
1082   This addresses CVE-2018-10237 (that’s the only change in this release).
1083
1084 * `Jacoco Maven plugin 0.8.0 → 0.8.1 <https://github.com/jacoco/jacoco/releases/tag/v0.8.1>`_.
1085
1086 * JDT annotations 2.1.0 → 2.1.150.
1087
1088 * `Scala 2.12.5 → 2.12.6 <https://github.com/scala/scala/releases/tag/v2.12.6>`_.
1089
1090 * `Scala Parser Combinators 1.0.6 → 1.0.7 <https://github.com/scala/scala-parser-combinators/releases/tag/v1.0.7>`_.
1091
1092 * `Sevntu 1.24.2 → 1.29.0 <https://sevntu-checkstyle.github.io/sevntu.checkstyle/#1.29.0>`_.
1093
1094 * `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>`_.
1095
1096 The following Maven plugin has been upgraded:
1097
1098 * `Javadoc 3.0.0 → 3.0.1 <https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317529&version=12342283>`_.
1099
1100 Version 3.1.1
1101 -------------
1102
1103 This version fixes the following issues:
1104
1105 * `ODLPARENT-137 <https://jira.opendaylight.org/browse/ODLPARENT-137>`_:
1106   restore the OpenDaylight prompt.
1107
1108 * `ODLPARENT-146 <https://jira.opendaylight.org/browse/ODLPARENT-146>`_:
1109   Guava 23.6 switched from @Nullable to @NullableDecl, which causes false
1110   positives in FindBugs’ ``NP_NONNULL_PARAM_VIOLATION`` rule; we’re
1111   disabling the rule for now.
1112
1113 Version 3.1.0
1114 -------------
1115
1116 This version fixes the following issues:
1117
1118 * Mycila dependencies are now “compile” scoped rather than “test”; this allows
1119   child projects to use Guice with Mycila more easily.
1120
1121 * The duplicate finder now ignores ``web.xml`` and BluePrint XML files.
1122
1123 This version includes the following improvements:
1124
1125 * The ``-Pq`` profile skips Maven Modernizer, in preparation for its future
1126   integration (and its use in child projects).
1127
1128 * An OWASP profile, ``-Powasp`` is available for vulnerability checking.
1129
1130 * A new ``odl-jackson-2.8`` feature provides Jackson 2.8 to child projects.
1131
1132 The following third-party dependencies have been added to dependency management:
1133
1134 * `ThreeTen-Extra <http://www.threeten.org/threeten-extra/>`_
1135
1136 The following third-party dependencies have been upgraded:
1137
1138 * Aeron 1.2.5 → 1.7.0; release notes:
1139
1140   * `1.3.0 <https://github.com/real-logic/aeron/releases/tag/1.3.0>`_
1141   * `1.4.0 <https://github.com/real-logic/aeron/releases/tag/1.4.0>`_
1142   * `1.5.0 <https://github.com/real-logic/aeron/releases/tag/1.5.0>`_
1143   * `1.5.1 <https://github.com/real-logic/aeron/releases/tag/1.5.1>`_
1144   * `1.5.2 <https://github.com/real-logic/aeron/releases/tag/1.5.2>`_
1145   * `1.6.0 <https://github.com/real-logic/aeron/releases/tag/1.6.0>`_
1146   * `1.7.0 <https://github.com/real-logic/aeron/releases/tag/1.7.0>`_
1147
1148 * Agrona 0.9.5 → 0.9.12; release notes:
1149
1150   * `0.9.6 <https://github.com/real-logic/Agrona/releases/tag/0.9.6>`_
1151   * `0.9.7 <https://github.com/real-logic/Agrona/releases/tag/0.9.7>`_
1152   * `0.9.8 <https://github.com/real-logic/Agrona/releases/tag/0.9.8>`_
1153   * `0.9.9 <https://github.com/real-logic/Agrona/releases/tag/0.9.9>`_
1154   * `0.9.10 <https://github.com/real-logic/Agrona/releases/tag/0.9.10>`_
1155   * `0.9.11 <https://github.com/real-logic/Agrona/releases/tag/0.9.11>`_
1156   * `0.9.12 <https://github.com/real-logic/Agrona/releases/tag/0.9.12>`_
1157
1158 * Akka 2.5.5 → 2.5.11; release notes:
1159
1160   * `2.5.6 <https://akka.io/blog/news/2017/09/28/akka-2.5.6-released>`_
1161   * `2.5.7 <https://akka.io/blog/news/2017/11/17/akka-2.5.7-released>`_
1162   * `2.5.8 <https://akka.io/blog/news/2017/12/08/akka-2.5.8-released>`_
1163   * `2.5.9 <https://akka.io/blog/news/2018/01/11/akka-2.5.9-released-2.4.x-end-of-life>`_
1164   * `2.5.10 <https://akka.io/blog/news/2018/02/23/akka-2.5.10-released>`_
1165   * `2.5.11 <https://akka.io/blog/news/2018/02/28/akka-2.5.11-released>`_
1166
1167 * Commons Lang 3 `3.6 → 3.7 <http://www.apache.org/dist/commons/lang/RELEASE-NOTES.txt>`_
1168
1169 * Guava 23.3 → 23.6; release notes:
1170
1171   * `23.4 <https://github.com/google/guava/releases/tag/v23.4>`_
1172   * `23.5 <https://github.com/google/guava/releases/tag/v23.5>`_
1173   * `23.6 <https://github.com/google/guava/releases/tag/v23.6>`_
1174
1175 * H2 database `1.4.193 → 1.4.196 <http://www.h2database.com/html/changelog.html>`_
1176
1177 * Jacoco `0.7.9 → 0.8.0 <https://github.com/jacoco/jacoco/releases/tag/v0.8.0>`_
1178
1179 * Javassist `3.21.0 → 3.22.0 <https://github.com/jboss-javassist/javassist/compare/rel_3_21_0_ga...rel_3_22_0_ga>`_
1180
1181 * lmax-disruptor 3.3.7 → 3.3.10; release notes:
1182
1183   * `3.3.8 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.8>`_
1184   * `3.3.9 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.9>`_
1185   * `3.3.10 <https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.10>`_
1186
1187 * Netty 4.1.16 → 4.1.22; release notes:
1188
1189   * `4.1.17 <http://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html>`_
1190   * `4.1.18 <http://netty.io/news/2017/12/11/4-0-54-Final-4-1-18-Final.html>`_
1191   * `4.1.19 <http://netty.io/news/2017/12/18/4-1-19-Final.html>`_
1192   * `4.1.20 <http://netty.io/news/2018/01/22/4-0-55-Final-4-1-20-Final.html>`_
1193   * `4.1.21 <http://netty.io/news/2018/02/05/4-0-56-Final-4-1-21-Final.html>`_
1194   * `4.1.22 <http://netty.io/news/2018/02/21/4-1-22-Final.html>`_
1195
1196 * Scala `2.12.4 → 2.12.5 <http://www.scala-lang.org/news/2.12.5>`_
1197
1198 * Typesafe Config `0.2.1 → 0.2.2 <https://github.com/typesafehub/config/blob/master/NEWS.md>`_
1199
1200 The following Maven plugins have been upgraded:
1201
1202 * FindBugs 3.0.4 → 3.0.5
1203
1204 * Git commit id 2.2.2 → 2.2.4; release notes:
1205
1206   * `2.2.3 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.3>`_
1207   * `2.2.4 <https://github.com/ktoso/maven-git-commit-id-plugin/releases/tag/v2.2.4>`_
1208
1209 Version 3.0.3
1210 -------------
1211
1212 This version fixes the following issues:
1213
1214 * `ODLPARENT-136`_: ``features-test`` needs ``org.osgi.compendium``.
1215
1216 * Jackson dependencies are declared using ``jackson-bom`` to ensure all they
1217   remain consistent.
1218
1219 * ``find-duplicate-classpath-entries`` is run in the “verify” phase rather than
1220   the “validate” phase, which is too early.
1221
1222 * The version of Jetty we pull in is now aligned with that declared in Karaf,
1223   resolving a number of restart and dependency issues.
1224
1225 * Pulling in the ``wrap`` feature unconditionally is no longer necessary, so
1226   ``karaf4-parent`` no longer does so.
1227
1228 * ``metainf-services`` are declared with scope “provided” to avoid their being
1229   included in downstream features (it’s a build-time dependency only).
1230
1231 * ``leveldb-api`` is excluded from ``odl-akka-leveldb-0.7``, and ``jsr250-api``
1232   from ``enunciate-core-annotations``, to avoid duplicate having classes on the
1233   classpath.
1234
1235 * Since the ``ssh`` feature is excluded from generated features, our Karaf
1236   need to enable it at boot in all cases.
1237
1238 * ``bundle-test-lib`` is now a bundle.
1239
1240 * Since we use static SLF4J loggers, the ``SLF4J_LOGGER_SHOULD_BE_NON_STATIC``
1241   rule needs to be disabled in our FindBugs configuration (this allows
1242   downstream projects to enable ``findbugs-slf4j`` without having to deal with
1243   all the resulting false-positives).
1244
1245 * ``org.apache.karaf.scr.management`` is white-listed in SFT to avoid failures
1246   apparently related to that component (which we don’t care about).
1247
1248 .. _ODLPARENT-136: https://jira.opendaylight.org/browse/ODLPARENT-136
1249
1250 This version upgrades the following third-party dependencies:
1251
1252 * `Antlr 4.7 → 4.7.1`_
1253
1254 * `BouncyCastle 1.58 → 1.59`_
1255
1256 * Jersey 1.17 → 1.19.4 (additionally available as the ``odl-jersey-1`` feature)
1257
1258 * Jolokia 1.3.7 → 1.5.0
1259
1260 * Karaf 4.1.3 → 4.1.5; release notes:
1261
1262   * `Karaf 4.1.4`_
1263   * `Karaf 4.1.5`_
1264
1265 .. _Antlr 4.7 → 4.7.1: https://github.com/antlr/antlr4/releases/tag/4.7.1
1266 .. _BouncyCastle 1.58 → 1.59: https://www.bouncycastle.org/releasenotes.html
1267 .. _Karaf 4.1.4: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12341702
1268 .. _Karaf 4.1.5: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12342294
1269
1270 Version 3.0.2
1271 -------------
1272
1273 This version fixes the following issues:
1274
1275 * SingleFeatureTest uses the configured local Maven repository for Pax Exam.
1276
1277 * JavaDoc links are disabled for now to `speed up builds`_. A new
1278   ``javadoc-links`` profile enables the links.
1279
1280 * Conditional feature dependencies are processed, ensuring our
1281   `distribution is complete`_.
1282
1283 * Startup features are `adjusted for Karaf 4.1`_, avoiding unnecessary
1284   refreshes.
1285
1286 * The ``hiddenField`` Checkstyle check is disabled for abstract methods.
1287
1288 * The default logging configuration uses Log4J2, which is the new default in
1289   Karaf 4.1.
1290
1291 .. _speed up builds: https://jira.opendaylight.org/browse/ODLPARENT-121
1292 .. _distribution is complete: https://jira.opendaylight.org/browse/ODLPARENT-133
1293 .. _adjusted for Karaf 4.1: https://jira.opendaylight.org/browse/ODLPARENT-134
1294
1295 This version upgrades the following dependencies or plugins:
1296
1297 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
1298
1299 * ``maven-javadoc-plugin`` 3.0.0-M1 → 3.0.0
1300
1301 Version 3.0.1
1302 -------------
1303
1304 This version fixes the following issues:
1305
1306 * Karaf pulls in an invalid Hibernate feature repository, breaking downstream
1307   dependencies pulling in the “war” feature. ``populate-local-repo`` corrects
1308   the repository dependency.
1309
1310
1311 Version 3.0.0
1312 -------------
1313
1314 Compiler settings
1315 ~~~~~~~~~~~~~~~~~
1316
1317 Build now show compiler warnings and deprecation warnings. This doesn't affect
1318 the result or require any changes currently, it just makes the issues more
1319 visible.
1320
1321 New Checkstyle rules
1322 ~~~~~~~~~~~~~~~~~~~~
1323
1324 Checkstyle has been upgraded from 7.6 to 8.4 (see the
1325 `Checkstyle release notes`_ for details), and Sevntu from 1.21.0 to 1.24.2
1326 (note that the latter's group identifier changed from
1327 ``com.github.sevntu.checkstyle`` to ``com.github.sevntu-checkstyle``; you
1328 might need to update your IDE's configuration).
1329
1330 The following Checkstyle rules are enabled; this might require changes in
1331 projects which enforce Checkstyle validation:
1332
1333 * `AvoidHidingCauseExceptionCheck`_
1334 * `FinalClass`_: utility classes must be declared ``final``
1335 * `HiddenField`_: fields must not be shadowed
1336 * `HideUtilityClassConstructor`_: utility classes must hide their constructor
1337
1338 .. _Checkstyle release notes: http://checkstyle.sourceforge.net/releasenotes.html
1339
1340 .. _AvoidHidingCauseExceptionCheck: http://sevntu-checkstyle.github.io/sevntu.checkstyle/apidocs/com/github/sevntu/checkstyle/checks/coding/AvoidHidingCauseExceptionCheck.html
1341 .. _FinalClass: http://checkstyle.sourceforge.net/config_design.html#FinalClass
1342 .. _HiddenField: http://checkstyle.sourceforge.net/config_coding.html#HiddenField
1343 .. _HideUtilityClassConstructor: http://checkstyle.sourceforge.net/config_design.html#HideUtilityClassConstructor
1344
1345 Karaf
1346 ~~~~~
1347
1348 Karaf has been upgraded to 4.1.3. This should be transparent for dependent
1349 projects.
1350
1351 Karaf distributions
1352 ~~~~~~~~~~~~~~~~~~~
1353
1354 * When building a Karaf distribution using ``karaf4-parent``, projects can
1355   specify which archives to build: the ``karaf.archiveZip`` property will
1356   enable ZIP files if true, and ``karaf.archiveTarGz`` will enable
1357   gzip-compressed tarballs if true. By default both are enabled.
1358
1359 * Our Karaf distribution provides Bouncy Castle at startup. Auto-generated
1360   feature descriptors take this into account (they won't embed a Bouncy
1361   Castle dependency).
1362
1363 Feature removals
1364 ~~~~~~~~~~~~~~~~
1365
1366 * The ``odl-triemap-0.2`` feature wrapping
1367   ``com.github.romix:java-concurrent-hash-trie-map`` was rendered obsolete by
1368   YANG Tools' implementation and has been removed.
1369
1370 Feature additions
1371 ~~~~~~~~~~~~~~~~~
1372
1373 * ``odl-javassist-3`` provides Javassist in a feature.
1374
1375 * ``odl-jung-2.1`` provides `JUNG`_ in a feature.
1376
1377 .. _JUNG: http://jung.sourceforge.net/
1378
1379 Upstream version upgrades
1380 ~~~~~~~~~~~~~~~~~~~~~~~~~
1381
1382 The following upstream dependencies have been upgraded:
1383
1384 * Akka 2.4.18 → 2.5.4; release notes:
1385
1386   * `Akka 2.5.0`_
1387   * `Akka 2.5.1`_
1388   * `Akka 2.5.2`_
1389   * `Akka 2.5.3`_
1390   * `Akka 2.5.4`_
1391
1392 * `Awaitility 2 → 3`_
1393
1394 * `Bouncy Castle 1.57 → 1.58`_
1395
1396 * `Commons Codec 1.10 → 1.11`_
1397
1398 * `Commons File Upload 1.3.2 → 1.3.3`_
1399
1400 * `Commons IO 2.5 → 2.6`_
1401
1402 * Eclipse JDT annotations 2.0.0 → 2.1.0
1403
1404 * Felix Dependency Manager 4.3.0 → 4.4.1
1405 * Felix Dependency Manager Shell 4.0.4 → 4.0.6
1406 * Felix Metatype 1.1.2 → 1.1.6
1407
1408 * `Google Truth 0.28 → 0.36`_ (with the Java 8 extensions)
1409
1410 * `Gson 2.7 → 2.8.2`_
1411
1412 * Guava 22 → 23.3 along with the associated feature name change from
1413   ``odl-guava-22`` to ``odl-guava-23`` (dependent packages *must* change their
1414   dependency); release notes:
1415
1416   * `Guava 23`_
1417   * `Guava 23.1`_
1418   * `Guava 23.2`_
1419   * `Guava 23.3`_
1420
1421 * Immutables 2.4.2 → 2.5.6
1422
1423 * Jackson 2.3.2 → 2.8.9
1424
1425 * Jacoco 0.7.7 → 0.7.9; release notes:
1426
1427   * `Jacoco 0.7.8`_
1428   * `Jacoco 0.7.9`_
1429
1430 * Jacoco Listeners 2.4 → 3.8
1431
1432 * `Javassist 3.20.0 → 3.21.0`_
1433
1434 * `Jettison 1.3.7 → 1.3.8`_
1435
1436 * `Jolokia 1.3.6 → 1.3.7`_
1437
1438 * `JSONassert 1.3.0 → 1.5.0`_
1439
1440 * `logback 1.2.2 → 1.2.3`_
1441
1442 * `LMAX Disruptor 3.3.6 → 3.3.7`_
1443
1444 * Netty 4.1.8 → 4.1.16; release notes:
1445
1446   * `Netty 4.1.9`_
1447   * `Netty 4.1.10`_
1448   * `Netty 4.1.11`_
1449   * `Netty 4.1.12`_
1450   * `Netty 4.1.13`_
1451   * `Netty 4.1.14`_
1452   * `Netty 4.1.15`_
1453   * `Netty 4.1.16`_
1454
1455 * `Pax URL 2.5.2 → 2.5.3`_
1456
1457 * Scala 2.11.11 → 2.12.4; release notes:
1458
1459   * `Scala 2.12.0`_
1460   * `Scala 2.12.1`_
1461   * `Scala 2.12.2`_
1462   * `Scala 2.12.3`_
1463   * `Scala 2.12.4`_
1464
1465 * Servlet API 3.0.1 → 3.1.0
1466
1467 * `SLF4J 1.7.21 → 1.7.25`_
1468
1469 * `webcohesion enunciate 2.6.0 → 2.10.1`_
1470
1471 * `Xtend 2.12 → 2.13`_
1472
1473 .. _Akka 2.5.0: http://akka.io/blog/news/2017/04/13/akka-2.5.0-released
1474 .. _Akka 2.5.1: http://akka.io/blog/news/2017/05/02/akka-2.5.1-released
1475 .. _Akka 2.5.2: http://akka.io/blog/news/2017/05/24/akka-2.5.2-released
1476 .. _Akka 2.5.3: http://akka.io/blog/news/2017/06/19/akka-2.5.3-released
1477 .. _Akka 2.5.4: http://akka.io/blog/news/2017/08/10/akka-2.5.4-released
1478
1479 .. _Awaitility 2 → 3: https://github.com/awaitility/awaitility/wiki/ReleaseNotes30
1480
1481 .. _Bouncy Castle 1.57 → 1.58: https://www.bouncycastle.org/releasenotes.html
1482
1483 .. _Commons Codec 1.10 → 1.11: http://www.apache.org/dist/commons/codec/RELEASE-NOTES.txt
1484
1485 .. _Commons File Upload 1.3.2 → 1.3.3: http://www.apache.org/dist/commons/fileupload/RELEASE-NOTES.txt
1486
1487 .. _Commons IO 2.5 → 2.6: http://www.apache.org/dist/commons/io/RELEASE-NOTES.txt
1488
1489 .. _Google Truth 0.28 → 0.36: https://github.com/google/truth/releases
1490
1491 .. _Gson 2.7 → 2.8.2: https://github.com/google/gson/blob/master/CHANGELOG.md
1492
1493 .. _Guava 23: https://github.com/google/guava/wiki/Release23
1494 .. _Guava 23.1: https://github.com/google/guava/releases/tag/v23.1
1495 .. _Guava 23.2: https://github.com/google/guava/releases/tag/v23.2
1496 .. _Guava 23.3: https://github.com/google/guava/releases/tag/v23.3
1497
1498 .. _Jacoco 0.7.8: https://github.com/jacoco/jacoco/releases/tag/v0.7.8
1499 .. _Jacoco 0.7.9: https://github.com/jacoco/jacoco/releases/tag/v0.7.9
1500
1501 .. _Javassist 3.20.0 → 3.21.0: https://github.com/jboss-javassist/javassist/compare/rel_3_20_0_ga...rel_3_21_0_ga
1502
1503 .. _Jettison 1.3.7 → 1.3.8: https://github.com/jettison-json/jettison/compare/jettison-1.3.7...jettison-1.3.8
1504
1505 .. _Jolokia 1.3.6 → 1.3.7: https://github.com/rhuss/jolokia/releases/tag/v1.3.7
1506
1507 .. _JSONassert 1.3.0 → 1.5.0: https://github.com/skyscreamer/JSONassert/releases
1508
1509 .. _logback 1.2.2 → 1.2.3: https://logback.qos.ch/news.html
1510
1511 .. _LMAX Disruptor 3.3.6 → 3.3.7: https://github.com/LMAX-Exchange/disruptor/releases/tag/3.3.7
1512
1513 .. _Netty 4.1.9: http://netty.io/news/2017/03/10/4-0-45-Final-4-1-9-Final.html
1514 .. _Netty 4.1.10: http://netty.io/news/2017/04/30/4-0-46-Final-4-1-10-Final.html
1515 .. _Netty 4.1.11: http://netty.io/news/2017/05/12/4-0-47-Final-4-1-11-Final.html
1516 .. _Netty 4.1.12: http://netty.io/news/2017/06/09/4-0-48-Final-4-1-12-Final.html
1517 .. _Netty 4.1.13: http://netty.io/news/2017/07/06/4-0-49-Final-4-1-13-Final.html
1518 .. _Netty 4.1.14: http://netty.io/news/2017/08/03/4-0-50-Final-4-1-14-Final.html
1519 .. _Netty 4.1.15: http://netty.io/news/2017/08/25/4-0-51-Final-4-1-15-Final.html
1520 .. _Netty 4.1.16: http://netty.io/news/2017/09/25/4-0-52-Final-4-1-16-Final.html
1521
1522 .. _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
1523
1524 .. _Scala 2.12.0: https://github.com/scala/scala/releases/tag/v2.12.0
1525 .. _Scala 2.12.1: https://github.com/scala/scala/releases/tag/v2.12.1
1526 .. _Scala 2.12.2: https://github.com/scala/scala/releases/tag/v2.12.2
1527 .. _Scala 2.12.3: https://github.com/scala/scala/releases/tag/v2.12.3
1528 .. _Scala 2.12.4: https://github.com/scala/scala/releases/tag/v2.12.4
1529
1530 .. _SLF4J 1.7.21 → 1.7.25: https://www.slf4j.org/news.html
1531
1532 .. _webcohesion enunciate 2.6.0 → 2.10.1: https://github.com/stoicflame/enunciate/releases
1533
1534 .. _Xtend 2.12 → 2.13: https://www.eclipse.org/xtend/releasenotes.html
1535
1536 Upstream version additions
1537 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1538
1539 The following upstream dependencies have been added to dependency management:
1540
1541 * Commons Text, ``org.apache.commons:commons-text`` (this will allow downstreams
1542   to migrate from ``commons-lang3``\’s ``WordUtils``, which is deprecated)
1543
1544 Upstream version removals
1545 ~~~~~~~~~~~~~~~~~~~~~~~~~
1546
1547 The following upstream dependencies have been removed from dependency
1548 management (they are obsolete and unused):
1549
1550 * Chameleon MBeans
1551 * Eclipse Link
1552 * Equinox HTTP service bridge
1553 * ``equinoxSDK381`` artifacts
1554 * Coda Hale Metrics, which are mostly unused and should eventually be wrapped
1555   by InfraUtils
1556 * ``com.google.code.findbugs:jsr305`` (which *must not* be used; this is
1557   enforced — ``annotations`` should be used instead)
1558 * Felix File Install and Web Console
1559 * Gemini Web
1560 * Orbit
1561 * ``org.mockito:mockito-all`` (which *must not* be used; this is enforced —
1562   ``mockito-core`` should be used instead)
1563 * Spring Framework
1564 * ``txw2``
1565 * Xerces
1566 * ``xml-apis``
1567
1568 Plugin version upgrades
1569 ~~~~~~~~~~~~~~~~~~~~~~~
1570
1571 The following plugins have been upgraded:
1572
1573 * ``org.apache.servicemix.tooling:depends-maven-plugin`` 1.3.1 → 1.4.0
1574 * ``org.apache.felix:maven-bundle-plugin`` 2.4.0 → 3.3.0
1575 * ``maven-compiler-plugin`` 3.6.1 → 3.7.0
1576 * ``maven-dependency-plugin`` 3.0.1 → 3.0.2
1577 * ``maven-enforcer-plugin`` 1.4.1 → 3.0.0-M1
1578 * ``maven-failsafe-plugin`` 2.18.1 → 2.20.1
1579 * ``maven-javadoc-plugin`` 2.10.4 → 3.0.0-M1
1580 * ``maven-shade-plugin`` 2.4.3 → 3.1.0
1581
1582 New plugins
1583 ~~~~~~~~~~~
1584
1585 * The `Maven Find Duplicates`_ plugin can be enabled by setting the
1586   ``duplicate-finder.skip`` property to ``false``.
1587
1588 * The SpotBugs_ Maven plugin can now be used instead of the FindBugs plugin
1589   (both are available, so no change is required). To use SpotBugs, replace
1590   ``org.codehaus.mojo:findbugs-maven-plugin`` with
1591   ``com.github.spotbugs:spotbugs-maven-plugin``.
1592
1593 .. _Maven Find Duplicates: https://github.com/basepom/duplicate-finder-maven-plugin/
1594
1595 .. _SpotBugs: https://spotbugs.github.io/