diff --git a/deployment/pom.xml b/deployment/pom.xml index 18e3429..9d4e454 100644 --- a/deployment/pom.xml +++ b/deployment/pom.xml @@ -15,13 +15,11 @@ io.quarkus - quarkus-narayana-jta-deployment - true + quarkus-jms-spi-deployment - io.quarkiverse.artemis - quarkus-artemis-jms-deployment - ${quarkus-artemis.version} + io.quarkus + quarkus-narayana-jta-deployment true diff --git a/deployment/src/main/java/io/quarkiverse/messaginghub/pooled/jms/deployment/PooledJmsProcessor.java b/deployment/src/main/java/io/quarkiverse/messaginghub/pooled/jms/deployment/PooledJmsProcessor.java index 3e25f2a..fc87ec7 100644 --- a/deployment/src/main/java/io/quarkiverse/messaginghub/pooled/jms/deployment/PooledJmsProcessor.java +++ b/deployment/src/main/java/io/quarkiverse/messaginghub/pooled/jms/deployment/PooledJmsProcessor.java @@ -1,11 +1,9 @@ package io.quarkiverse.messaginghub.pooled.jms.deployment; -import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.jboss.jandex.DotName; import io.quarkiverse.messaginghub.pooled.jms.PooledJmsRecorder; import io.quarkus.arc.deployment.UnremovableBeanBuildItem; -import io.quarkus.artemis.jms.deployment.ArtemisJmsWrapperBuildItem; import io.quarkus.deployment.Capabilities; import io.quarkus.deployment.Capability; import io.quarkus.deployment.annotations.BuildProducer; @@ -14,6 +12,7 @@ import io.quarkus.deployment.annotations.Record; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import io.quarkus.jms.spi.deployment.ConnectionFactoryWrapperBuildItem; class PooledJmsProcessor { @@ -26,14 +25,15 @@ FeatureBuildItem feature() { @BuildStep void reflective(BuildProducer producer) { - producer.produce(new ReflectiveClassBuildItem(true, false, ActiveMQConnectionFactory.class)); + producer.produce( + new ReflectiveClassBuildItem(true, false, "org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory")); producer.produce(new ReflectiveClassBuildItem(true, false, "org.apache.commons.pool2.impl.DefaultEvictionPolicy")); } @BuildStep @Record(ExecutionTime.RUNTIME_INIT) - ArtemisJmsWrapperBuildItem wrap(Capabilities capabilities, PooledJmsRecorder recorder) { - return new ArtemisJmsWrapperBuildItem(recorder.getWrapper(capabilities.isPresent(Capability.TRANSACTIONS))); + ConnectionFactoryWrapperBuildItem wrap(Capabilities capabilities, PooledJmsRecorder recorder) { + return new ConnectionFactoryWrapperBuildItem(recorder.getWrapper(capabilities.isPresent(Capability.TRANSACTIONS))); } @BuildStep diff --git a/pom.xml b/pom.xml index 5002d1f..710d5a7 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ UTF-8 UTF-8 3.0.0.Alpha5 - 3.0.0.Alpha6 + 3.0.0.Alpha7 3.1.0 @@ -33,13 +33,6 @@ pom import - - io.quarkiverse.artemis - quarkus-artemis-bom - ${quarkus-artemis.version} - pom - import - org.messaginghub pooled-jms diff --git a/runtime/pom.xml b/runtime/pom.xml index c780586..9844cdb 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -18,11 +18,6 @@ quarkus-narayana-jta true - - io.quarkiverse.artemis - quarkus-artemis-jms - true - org.messaginghub pooled-jms diff --git a/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsRecorder.java b/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsRecorder.java index 3200af6..72b3dc4 100644 --- a/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsRecorder.java +++ b/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsRecorder.java @@ -1,6 +1,9 @@ package io.quarkiverse.messaginghub.pooled.jms; -import io.quarkus.artemis.jms.runtime.ArtemisJmsWrapper; +import java.util.function.Function; + +import jakarta.jms.ConnectionFactory; + import io.quarkus.runtime.annotations.Recorder; @Recorder @@ -11,7 +14,10 @@ public PooledJmsRecorder(PooledJmsRuntimeConfig config) { this.pooledJmsRuntimeConfig = config; } - public ArtemisJmsWrapper getWrapper(boolean transaction) { - return new PooledJmsWrapper(transaction, pooledJmsRuntimeConfig); + public Function getWrapper(boolean transaction) { + return cf -> { + PooledJmsWrapper wrapper = new PooledJmsWrapper(transaction, pooledJmsRuntimeConfig); + return wrapper.wrapConnectionFactory(cf); + }; } } diff --git a/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java b/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java index d426293..a099ed3 100644 --- a/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java +++ b/runtime/src/main/java/io/quarkiverse/messaginghub/pooled/jms/PooledJmsWrapper.java @@ -3,7 +3,6 @@ import jakarta.jms.ConnectionFactory; import jakarta.transaction.TransactionManager; -import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.narayana.jta.jms.JmsXAResourceRecoveryHelper; import org.jboss.tm.XAResourceRecoveryRegistry; @@ -11,9 +10,8 @@ import org.messaginghub.pooled.jms.JmsPoolXAConnectionFactory; import io.quarkus.arc.Arc; -import io.quarkus.artemis.jms.runtime.ArtemisJmsWrapper; -public class PooledJmsWrapper implements ArtemisJmsWrapper { +public class PooledJmsWrapper { private boolean transaction; private PooledJmsRuntimeConfig pooledJmsRuntimeConfig; @@ -22,8 +20,7 @@ public PooledJmsWrapper(boolean transaction, PooledJmsRuntimeConfig pooledJmsRun this.pooledJmsRuntimeConfig = pooledJmsRuntimeConfig; } - @Override - public ConnectionFactory wrapConnectionFactory(ActiveMQConnectionFactory connectionFactory) { + public ConnectionFactory wrapConnectionFactory(ConnectionFactory connectionFactory) { if (!pooledJmsRuntimeConfig.poolingEnabled) { return connectionFactory; } @@ -35,7 +32,7 @@ public ConnectionFactory wrapConnectionFactory(ActiveMQConnectionFactory connect } } - private ConnectionFactory getXAConnectionFactory(ActiveMQConnectionFactory connectionFactory) { + private ConnectionFactory getXAConnectionFactory(ConnectionFactory connectionFactory) { TransactionManager transactionManager = Arc.container().instance(TransactionManager.class).get(); JmsPoolXAConnectionFactory xaConnectionFactory = new JmsPoolXAConnectionFactory(); @@ -55,7 +52,7 @@ private ConnectionFactory getXAConnectionFactory(ActiveMQConnectionFactory conne return xaConnectionFactory; } - private ConnectionFactory getConnectionFactory(ActiveMQConnectionFactory connectionFactory) { + private ConnectionFactory getConnectionFactory(ConnectionFactory connectionFactory) { JmsPoolConnectionFactory poolConnectionFactory = new JmsPoolConnectionFactory(); pooledJmsRuntimeConfigureConnectionFactory(poolConnectionFactory, connectionFactory); @@ -63,7 +60,7 @@ private ConnectionFactory getConnectionFactory(ActiveMQConnectionFactory connect } private void pooledJmsRuntimeConfigureConnectionFactory(JmsPoolConnectionFactory poolConnectionFactory, - ActiveMQConnectionFactory connectionFactory) { + ConnectionFactory connectionFactory) { poolConnectionFactory.setConnectionFactory(connectionFactory); poolConnectionFactory.setMaxConnections(pooledJmsRuntimeConfig.maxConnections); poolConnectionFactory.setConnectionIdleTimeout(pooledJmsRuntimeConfig.connectionIdleTimeout);