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