-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move dependency java.xml.bind to jakarta.xml.bind #2991
Comments
Any update, please? Spring boot 3 is almost released and it's incompatible with liquibase for this particular reason |
We are in the process of migrating to Spring Boot 3 and it would be good if Liquibase can provide a release which is going to depend on jakarta.xml.bind and / or remove the dependency. |
We are migrating JHipster to spring-boot 3 (jhipster/generator-jhipster#19791 and jhipster/jhipster-lite#3750), so it would be good that liquibase provide support for it. related with liquibase/liquibase-hibernate#434 also. |
I think this is resolved in 4.18 |
I don't think so @hberrayana. If you see the liquibase-core 4.18 pom.xml on Maven Central you'll see that the The strangest thing though is that the According to #2629 there are 2 jars now. Perhaps something needs to be done for the final build. @kataggart and @nvoxland can you perhaps have a look at this? |
Hi There is a similar problem with the maven liquibase plugin:
I'm using spring boot 3 and org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo() returns now jakarta.persistence.spi.PersistenceUnitInfo instead of javax.persistence.spi.PersistenceUnitInfo ehcache uses a classifier for jakarta, maybe it's an option for liquibase, too?
|
The difficultly in switching is that we need to support older versions of java (down to java 8) and people who are running in environments with javax.bind instead of jakarta. Some early testing we've been doing with spring 3 seemed to show the existing liquibase code had no problem running in spring 3. What sorts of problems are you hitting? |
im meantime i could solve the problem by using liquibase-hibernate6, which was only available for 4.18.0, but spring boot 3 ueses currently 4.17.0 |
The solution to this would be to create a multi-release JAR of the liquibase-core dependency. The multi-release JAR should have alternatives for all classes that import javax.xml.bind starting from Java 11. This will give everyone a seamless upgrade path. Reference: https://docs.oracle.com/en/java/javase/11/docs/specs/jar/jar.html
Although Liquibase-core seems to work fine in a JEE10 environment, it forces us to include ancient javax XML packages in the deployables. This is a waste since the Jakarta XML packages are already provided by the JEE10 container. All major runtime components have moved to jakarta XML: Java 11+, JEE9, JEE10, Spring Boot 3,etc. Liquibase is late to the game by not supporting jakarta XML. |
Is there any plan this will be going to fix in some release or as patch version |
Wow, this is open now for two years and still considered an (optional?) enhancement. |
I could not find anything in the docs, but I just stumbled over:
-- Problem solved (for me) |
Environment
Liquibase Version: 4.12.0
Description
In order to move into the direction of JPMS it would be a good idea to switch to jakarta libraries since jakarta is the new official home for this javax package. It should be pretty much a drop in replacement with changing the dependencies and imports - assuming there are enough tests.
Actual Behavior
The javax.xml.bind package is used with no module support. This dependency is available at different coordinates and in slightly different configurations, this leads to many dependencies wanting the packages/code but end up using different dependencies.
Expected/Desired Behavior
Liquibase has a dependency on jakarta.xml.bind which in turn provides a module name.
The text was updated successfully, but these errors were encountered: