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