Skip to content
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

Prepare for Quarkus 3.0.0 #39

Closed
turing85 opened this issue Oct 31, 2022 · 11 comments · Fixed by #67
Closed

Prepare for Quarkus 3.0.0 #39

turing85 opened this issue Oct 31, 2022 · 11 comments · Fixed by #67

Comments

@turing85
Copy link
Contributor

turing85 commented Oct 31, 2022

In the advent of the Quarkus 3.0.0 release, we should prepare this extension.

We depend on quarkus-artemis-jms, therefore we need builds of this extension in order to test compatibility.

Current release of quarkus-artemis-jms:Version

@turing85
Copy link
Contributor Author

Necessary import changes:

  • javax.enterprise -> jakarta.enterprise
  • javax.inject -> jakarta.inject
  • javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager
    • curiously enough, javax.transaction.xa.XAResource was not moved to jakarta

@turing85
Copy link
Contributor Author

turing85 commented Oct 31, 2022

It seems that the narayana version pulled in by quarkus (org.jboss.narayana.jta:narayana-jta-jakarta:jar:5.13.1.Alpha1) has not or not yet fully made the transition to jakartaee:

[ERROR] /eXchange/git/quarkiverse/quarkus-pooled-jms/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java:[48,28] cannot access javax.transaction.TransactionManager
  class file for javax.transaction.TransactionManager not found
[ERROR] /eXchange/git/quarkiverse/quarkus-pooled-jms/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java:[54,58] cannot access jakarta.jms.XAConnectionFactory
  class file for jakarta.jms.XAConnectionFactory not found

Line 47/48:

        JmsPoolXAConnectionFactory xaConnectionFactory = new JmsPoolXAConnectionFactory();
        xaConnectionFactory.setTransactionManager(transactionManager);

Line 54:

            JmsXAResourceRecoveryHelper recoveryHelper = new JmsXAResourceRecoveryHelper(xaConnectionFactory);

@turing85
Copy link
Contributor Author

So this is a curious one. If we use pooled-jms version 2.0.5, we get the above error. If we use pooled-jms version 3.0.0, we have a version incompatibility in jarkarta.jms-api, since quarkus (and quarkus-artemis-jms) uses version 2.0.3, while org.messaginghub:pooled-jms uses version 3.0.0.

@turing85
Copy link
Contributor Author

The version incompatibility is coming from quarkus-artemis-jms. The artemis jms client used pulls in jarkarta.jms-api in version 2.0.3.

@zhfeng
Copy link
Contributor

zhfeng commented Nov 1, 2022

javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager

  • curiously enough, javax.transaction.xa.XAResource was not moved to jakarta

I think it is because this package is provided by Java SE. see Jakarta Transaction spec

@zhfeng
Copy link
Contributor

zhfeng commented Nov 1, 2022

https://jakarta.ee/specifications/messaging/

  • Messaging 2.0 for Jakarta EE 8
  • Messaging 3.0 for Jakarta EE 9
  • Messaging 3.1 for Jakarta EE 10

And from quarkus-dev Road to Quakrus 3, it will move to Jakarka EE 10. @maxandersen is it right?

@turing85
Copy link
Contributor Author

turing85 commented Nov 1, 2022

With release 3.0.0.Alpha3 of io.quarkiverse.artemis:quarkus-artemis-jms and version 3.0.0 of org.messaginghub:pooled-jms, everything seems to work fine. We have to modify the configuration of the integration tests to enable the default configuration (adding quarkus.artemis.enabled=true to application.properties).

@turing85
Copy link
Contributor Author

turing85 commented Nov 1, 2022

@zhfeng do you want to provide a branch for the migration? Or should I create a branch in my fork, and we transfer it later?

@zhfeng
Copy link
Contributor

zhfeng commented Nov 1, 2022

Thanks a lot @turing85 ! Please hold a branch in your fork. I willl creat a branch fro migration later. I still have some works on wrapping ConnectionFactory more generically and it might get rid of dependency on quarkus-artemis-jms.

@turing85
Copy link
Contributor Author

turing85 commented Nov 1, 2022

fork branch

turing85 added a commit to turing85/quarkus-pooled-jms that referenced this issue Nov 1, 2022
Dependency updates:
- quarkus from 2.13.3.Final to 3.0.0.Alpha1
- quarkus-artemis from 1.3.0 to 3.0.0.Alpha3
- pooled-jms from 2.0.5 to 3.0.0

Import updates:
- javax.enterprise -> jakarta.enterprise
- javax.inject -> jakarta.inject
- javax.jms -> jakarta.jms
- javax.ws -> jakarta.ws
- javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager
- javax.transaction.Transactional -> jakarta.transaction.Transactional
turing85 added a commit to turing85/quarkus-pooled-jms that referenced this issue Nov 5, 2022
Dependency updates:
- quarkus from 2.13.3.Final to 3.0.0.Alpha1
- quarkus-artemis from 1.3.0 to 3.0.0.Alpha3
- pooled-jms from 2.0.5 to 3.0.0

Import updates:
- javax.enterprise -> jakarta.enterprise
- javax.inject -> jakarta.inject
- javax.jms -> jakarta.jms
- javax.ws -> jakarta.ws
- javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager
- javax.transaction.Transactional -> jakarta.transaction.Transactional
turing85 added a commit to turing85/quarkus-pooled-jms that referenced this issue Nov 5, 2022
Dependency updates:
- quarkus from 2.13.3.Final to 3.0.0.Alpha1
- quarkus-artemis from 1.3.0 to 3.0.0.Alpha3
- pooled-jms from 2.0.5 to 3.0.0

Import updates:
- javax.enterprise -> jakarta.enterprise
- javax.inject -> jakarta.inject
- javax.jms -> jakarta.jms
- javax.ws -> jakarta.ws
- javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager
- javax.transaction.Transactional -> jakarta.transaction.Transactional
turing85 added a commit to turing85/quarkus-pooled-jms that referenced this issue Dec 10, 2022
Dependency updates:
- quarkus from 2.13.3.Final to 3.0.0.Alpha2
- quarkus-artemis from 1.3.0 to 3.0.0.Alpha4
- pooled-jms from 2.0.5 to 3.0.0

Import updates:
- javax.enterprise -> jakarta.enterprise
- javax.inject -> jakarta.inject
- javax.jms -> jakarta.jms
- javax.ws -> jakarta.ws
- javax.transaction.TransactionManager -> jakarta.transaction.TransactionManager
- javax.transaction.Transactional -> jakarta.transaction.Transactional
@ppalaga
Copy link

ppalaga commented Feb 6, 2023

What is the status of the migration? Is there any estimate when we could expect a release compatible with Quarkus 3?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants