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