Skip to content

Upgrade library dependencies to recent releases during early OH5.2 milestone phase #5256

Description

@holgerfriedrich

Follow-up to #4949.

Core has a lot few dependencies which are not up to date.

Basically we have a set of dependencies which get upgraded in a regular frequency: e.g. Karaf, Jetty, PaxWeb, some of the commons libs, asm (typically all of them on every Karaf release); Xtext/Xtend, guava, ecj, etc.

In addition, there are a lot of dependencies which have not seen an upgrade over years. This typically leads to many outdated dependencies still being pulled in or other upgrades being blocked by dependency conflicts.

There is a list of dependencies which still need attention (will post an excerpt from mvn versions:display-dependency-updates below in the comment).
Deprecated javax namespace is still a topic, not all dependencies already support jakarta namespace (e.g. hivemq-mqtt).

We cannot work on most of this close to a release, as sometimes files are missing on jfrog and break plugin installation, etc.

Related PRs:

TODO

TODO - this is an excerpt of

mvn versions:display-dependency-updates -nsu -Dmaven.version.ignore=".*-beta-.*,.*\.BETA[0-9]+,.*-M[0-9]+,.*alpha[0-9]+,.*-b[0-9]+,.*2\.0\.1\.MR,.*\.M[0-9]+" -B -Dversions.outputLineWidth=120 |tee deps
cat deps|grep -v Downl|grep "\.\.\."|grep -v "openHAB Core"|grep -- "->" |grep -v "jetty:jetty-" | grep -v "web:pax-web" |sort -u

Those packages have not been addressed yet, some are transitive deps still:

No upgrade, transitive or blocked:

args4j:args4j ................................................................................... 2.33 -> 2.37 (do not find dep in tree)
de.rototor.pdfbox:graphics2d .................................................................. 3.0.1 -> 3.0.5 (from xchart)

com.fasterxml.woodstox:woodstox-core .......................................................... 6.6.2 -> 7.1.1 (stay with 6.x req. by cxf3, osgi resolves to 6.6.2 during runtime)
com.google.errorprone:error_prone_annotations ............................................... 2.23.0 -> 2.49.0 upgraded to 2.47.0, transitive dep of guava & gson
com.itemis.maven.plugins:unleash-scm-provider-git ............................................. 2.2.0 -> 2.3.0 (handled outside of this repo)
com.jayway.jsonpath:json-path ................................................................ 2.10.0 -> 3.0.0 (3.0.0 brings jackson3 adapter, delay this)
com.neuronrobotics:nrjavaserial .......................................................... 3.14.0 -> 5.2.1.OH1 (intended)

org.apache.cxf:cxf-rt-rs-client ............................................................... 3.6.10 -> 4.2.0 in sync with Karaf, no strict dep to version from Karaf but to other deps
org.apache.cxf:cxf-rt-rs-sse .................................................................. 3.6.10 -> 4.2.0 in sync with Karaf, no strict dep to version from Karaf but to other deps
org.apache.felix:org.apache.felix.configurator .............................................. 1.0.16 -> 1.0.18 in sync with Karaf, 4.5.0 due to jakarta
org.apache.felix:org.apache.felix.http.servlet-api ............................................ 1.2.0 -> 6.1.0 to be done with Karaf 4.5.0
org.apache.felix:org.apache.felix.inventory ................................................... 1.1.0 -> 2.0.0 in sync wit Karaf, 2.0 would be javax
org.apache.felix:org.apache.felix.scr ........................................................ 2.2.6 -> 2.2.14 to be done with Karaf 4.5.0
org.apache.felix:org.apache.felix.webconsole ................................................ 4.8.12 -> 5.0.18 to be done with Karaf 4.5.0
org.apache.felix:org.apache.felix.webconsole.plugins.ds ....................................... 2.2.0 -> 2.3.0 to be done with Karaf 4.5.0
org.apache.pdfbox:pdfbox ..................................................................... 3.0.1 -> 3.0.7 (from xchart)
org.apache.servicemix.bundles:org.apache.servicemix.bundles.saaj-impl ..................... 1.4.0_2 -> 1.5.1_1 same release date, javax -> jakarta, postponed

org.eclipse.emf:org.eclipse.emf.codegen ..................................................... 2.23.0 -> 2.28.0 (xtext generator)
org.eclipse.emf:org.eclipse.emf.codegen.ecore ............................................... 2.37.0 -> 2.45.0 (xtext generator)
org.eclipse.emf:org.eclipse.emf.common ...................................................... 2.30.0 -> 2.45.0 (xtext generator)
org.eclipse.emf:org.eclipse.emf.ecore ....................................................... 2.36.0 -> 2.42.0 (xtext generator)
org.eclipse.emf:org.eclipse.emf.ecore.change ................................................ 2.16.0 -> 2.17.0 (requires ecore 2.37ff)
org.eclipse.emf:org.eclipse.emf.ecore.xmi ................................................... 2.37.0 -> 2.40.0 (xtext generator)
org.eclipse.jdt:ecj ......................................................................... 3.44.0 -> 3.45.0 (transitive dep of jdt.core, we use 3.45.0)
org.eclipse.jdt:org.eclipse.jdt.core ........................................................ 3.44.0 -> 3.45.0 (xtext generator)
org.eclipse.jdt:org.eclipse.jdt.debug ..................................................... 3.25.0 -> 3.25.100 (xtext generator)
org.eclipse.jdt:org.eclipse.jdt.launching ................................................. 3.24.0 -> 3.24.100 (xtext generator)
org.eclipse.platform:org.eclipse.core.resources ......................................... 3.23.100 -> 3.23.200 (xtext generator)
org.eclipse.platform:org.eclipse.core.runtime ............................................. 3.34.100 -> 3.34.200 (xtext generator)
org.eclipse.platform:org.eclipse.equinox.app ................................................ 1.7.500 -> 1.7.600 (xtext generator)
org.eclipse.platform:org.eclipse.text ..................................................... 3.14.500 -> 3.14.600 (xtext generator)

org.glassfish.hk2:* ..................................................................... 3.1.1 -> 4.0.1 (delay, jakarta deps)
org.glassfish.jaxb:jaxb-runtime ............................................................... 2.3.9 -> 4.0.8 (2.3.x is latest without jakarta)

org.hamcrest:hamcrest-core ........................................................................ 1.3 -> 3.0 (do not find dep in tree)

org.javassist:javassist ............................................................... 3.30.2-GA -> 3.31.0-GA (transitive dep of swagger)

org.junit.jupiter:* ....................................................... 5.14.2 -> 6.0.2 see below
org.junit.platform:* ................................................... 1.14.2 -> 6.0.2 conflicts with biz.aQute.tester.junit-platform from 7.2.1 still req. <2.0

Open / In Analysis



com.sun.xml.bind:jaxb-osgi .................................................................... 2.3.9 -> 4.0.8
jakarta.annotation:jakarta.annotation-api ..................................................... 2.1.1 -> 3.0.0
jakarta.xml.bind:jakarta.xml.bind-api ......................................................... 2.3.3 -> 4.0.5
org.antlr:antlr-runtime ......................................................................... 3.2 -> 3.5.3 version 3.2 is transitive dep of xtext, but investigate why we pull in an OH specific version in addition to org.antlr:antlr-runtime

org.eclipse.platform:org.eclipse.osgi ..................................................... 3.24.0 -> 3.24.100

com.google.code.gson:gson ................................................................... 2.13.2 -> 2.14.0 (DateTime and Instant updates, check)
io.micrometer:micrometer-commons ........................................................ 1.16.3 -> 1.16.5 (maybe wait for 1.17.0, already rc1)
io.micrometer:micrometer-core ........................................................... 1.16.3 -> 1.16.5 (maybe wait for 1.17.0, already rc1)



Problems:


jakarta namespace will be used from Karaf 4.5, transition not yet possible

conflicts with hivemq (+dagger)
- still forces us to use mvn:jakarta.inject/jakarta.inject-api/1.0.5 in addons/mqtt.generic, -> 2.x

californium 4.0.0-M2 to later version
- breaking change in API complicating backward-compatible releases of shelly and tradfri binding; severe issues with shelly v1 handler (unresolved)
- upgrade from M2 to M6 was reverted  #5558 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions