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