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