openEHR / archie

OpenEHR library implementing ADL 2, AOM 2, BMM, RM 1.0.4 and many tools
Apache License 2.0
52 stars 25 forks source link

Switch from com.sun.xml.bind to jakarta.xml.bind #528

Open stefanspiska opened 1 year ago

stefanspiska commented 1 year ago

Archie still uses com.sun.xml.bind Annotation instead of jakarta.xml.bind ones.

I would suggest to change since there will no new versions of com.sun.xml.bind and it is a bit messy if you use archie in a project which also include jakarta.xml.bind (see https://stackoverflow.com/a/72151763)

The migration should be just change the dependency and replace the import for the annotations from javax . to jakarta.

jakarta 3 would also still be java 8 compatible

https://eclipse-ee4j.github.io/jaxb-ri/3.0.0/docs/ch02.html#section-2232462900667844

stefanspiska commented 1 year ago

If you agree to this changes we could provide you with a PR.

pieterbos commented 1 year ago

This is indeed something we will have to do

However, we have other projects still dependent on the javax version. We have started the progress of migrating those. So we may need to use the gradle that auto-transforms the source and builds two releases for a while, until everyone that depends on Archie can migrate as well

pieterbos commented 1 year ago

If you could provide the source code, that would still be useful. Plugins exist that can create both version or even run artifact transforms to handle the dependencies. But if you already have a working version, at least part of the build script and changes can be reused.

pieterbos commented 1 year ago

Oh, never mind about the code. This was really easy to do. Results at https://github.com/openEHR/archie/pull/529

However, the above discussion still needs to be had internally for us, and potentially a bigger migration project for some bigger projects that have more complicated dependencies than Archie.

Or perhaps we could just use tools such as https://github.com/nebula-plugins/gradle-jakartaee-migration-plugin for a while. These transform the dependencies so that the chosen version is automatically used. If you apply that to ehrbase and include the current Archie release, the Archie jar files will be automatically converted to the jakarta.* packages when building.

Our own requirement for java 8 might not apply anymore quite soon, we may be able to drop support for that in Archie as well.

cyrillzadra commented 7 months ago

Are there already any plans to have a release with jakarta dependencies?