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