This is an automated email from the ASF dual-hosted git repository. mattrpav pushed a commit to branch AMQ-7309 in repository https://gitbox.apache.org/repos/asf/activemq.git
commit 006336b3c39d2f5f17cd658bc924c68d91e667ed Author: Matt Pavlovich <[email protected]> AuthorDate: Thu Jul 15 11:35:53 2021 -0500 [AMQ-7309] Update to jakarta.jms/jakarta.jms-api:2.0.3 - API update only - Throw UnsupportedOperationException - Disable activemq-camel from build - Formatting fixes - Use geronimo-jms for osgi-related artifacts - Fix features.xml invalid xml header - Add a unit test to confirm JMS 2.0 methods for phase 1 (throw UnsupportedOperationException) - Add deliveryTime field to Message --- activemq-all/pom.xml | 8 +- .../java/org/apache/activemq/ActiveMQJms2Test.java | 169 +++++++++++++++++++++ activemq-client/pom.xml | 7 +- .../org/apache/activemq/ActiveMQConnection.java | 64 +++++++- .../apache/activemq/ActiveMQConnectionFactory.java | 33 ++++ .../apache/activemq/ActiveMQMessageProducer.java | 44 +++++- .../activemq/ActiveMQMessageProducerSupport.java | 27 +++- .../org/apache/activemq/ActiveMQQueueSession.java | 36 ++++- .../java/org/apache/activemq/ActiveMQSession.java | 37 ++++- .../org/apache/activemq/ActiveMQTopicSession.java | 36 ++++- .../activemq/ActiveMQXAConnectionFactory.java | 13 +- .../activemq/ActiveMQXASslConnectionFactory.java | 11 ++ .../apache/activemq/command/ActiveMQMessage.java | 21 +++ .../java/org/apache/activemq/command/Message.java | 2 + activemq-console/pom.xml | 4 +- activemq-jms-pool/pom.xml | 4 +- .../apache/activemq/jms/pool/PooledConnection.java | 60 ++++++++ .../activemq/jms/pool/PooledConnectionFactory.java | 33 ++++ .../apache/activemq/jms/pool/PooledProducer.java | 63 ++++++++ .../apache/activemq/jms/pool/PooledSession.java | 30 ++++ .../activemq/jms/pool/XAConnectionPoolTest.java | 11 ++ activemq-karaf-itest/pom.xml | 6 + .../itest/ActiveMQBrokerNdCamelFeatureTest.java | 2 +- .../ActiveMQBrokerNdExternalCamelFeatureTest.java | 2 +- activemq-karaf/pom.xml | 24 ++- .../src/main/resources/features-core.xml | 2 - activemq-osgi/pom.xml | 6 +- .../activemq/ra/ActiveMQConnectionFactory.java | 33 ++++ .../apache/activemq/ra/InboundConnectionProxy.java | 58 +++++++ .../activemq/ra/InboundConnectionProxyFactory.java | 33 ++++ .../activemq/ra/InboundMessageProducerProxy.java | 61 ++++++++ .../apache/activemq/ra/InboundSessionProxy.java | 30 ++++ .../apache/activemq/ra/ManagedConnectionProxy.java | 58 +++++++ .../apache/activemq/ra/ManagedSessionProxy.java | 30 ++++ activemq-rar/pom.xml | 8 +- activemq-tooling/activemq-maven-plugin/pom.xml | 4 +- .../activemq-memtest-maven-plugin/pom.xml | 4 +- .../activemq-perf-maven-plugin/pom.xml | 4 +- activemq-unit-tests/pom.xml | 4 +- activemq-web-console/pom.xml | 4 +- activemq-web-demo/pom.xml | 4 +- assembly/pom.xml | 4 +- assembly/src/main/descriptors/common-bin.xml | 2 +- assembly/src/release/examples/amqp/java/pom.xml | 6 +- .../examples/openwire/advanced-scenarios/pom.xml | 7 +- .../src/release/examples/openwire/java/pom.xml | 6 +- assembly/src/release/examples/stomp/java/pom.xml | 6 +- pom.xml | 6 +- 48 files changed, 1062 insertions(+), 65 deletions(-) diff --git a/activemq-all/pom.xml b/activemq-all/pom.xml index 963b7b6..01630fa 100644 --- a/activemq-all/pom.xml +++ b/activemq-all/pom.xml @@ -104,7 +104,7 @@ <include>org.apache.activemq.protobuf:activemq-protobuf</include> <include>org.fusesource.hawtbuf:hawtbuf</include> <include>org.jasypt:jasypt</include> - <include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include> + <include>jakarta.jms:jakarta.jms-api</include> <include>org.apache.geronimo.specs:geronimo-jta_1.1_spec</include> <include>org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec</include> <include>org.apache.geronimo.specs:geronimo-annotation_1.0_spec</include> @@ -319,9 +319,9 @@ <optional>true</optional> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> <classifier>sources</classifier> <optional>true</optional> </dependency> diff --git a/activemq-broker/src/test/java/org/apache/activemq/ActiveMQJms2Test.java b/activemq-broker/src/test/java/org/apache/activemq/ActiveMQJms2Test.java new file mode 100644 index 0000000..51e2614 --- /dev/null +++ b/activemq-broker/src/test/java/org/apache/activemq/ActiveMQJms2Test.java @@ -0,0 +1,169 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.activemq; + +import javax.jms.Connection; +import javax.jms.JMSException; +import javax.jms.MessageProducer; +import javax.jms.Session; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ActiveMQJms2Test { + + protected static ActiveMQConnectionFactory activemqConnectionFactory = null; + + protected Connection connection = null; + protected Session session = null; + protected MessageProducer messageProducer = null; + + @BeforeClass + public static void setUpClass() { + activemqConnectionFactory = new ActiveMQConnectionFactory("vm://localhost?marshal=false&broker.persistent=false"); + } + + @AfterClass + public static void tearDownClass() { + activemqConnectionFactory = null; + } + + @Before + public void setUp() throws JMSException { + connection = activemqConnectionFactory.createConnection(); + connection.start(); + + session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + messageProducer = session.createProducer(session.createQueue("AMQ.JMS2.TEST")); + } + + @After + public void tearDown() { + if(messageProducer != null) { + try { messageProducer.close(); } catch (Exception e) { } finally { messageProducer = null; } + } + + if(session != null) { + try { session.close(); } catch (Exception e) { } finally { session = null; } + } + + if(connection != null) { + try { connection.close(); } catch (Exception e) { } finally { connection = null; } + } + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionFactoryCreateContext() { + activemqConnectionFactory.createContext(); + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionFactoryCreateContextSession() { + activemqConnectionFactory.createContext(Session.AUTO_ACKNOWLEDGE); + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionFactoryCreateContextUserPass() { + activemqConnectionFactory.createContext("admin", "admin"); + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionFactoryCreateContextUserPassSession() { + activemqConnectionFactory.createContext("admin", "admin", Session.AUTO_ACKNOWLEDGE); + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionSharedConnectionConsumer() throws JMSException { + connection.createSharedConnectionConsumer(null, null, null, null, 10); + } + + @Test(expected = UnsupportedOperationException.class) + public void testConnectionSharedDurableConnectionConsumer() throws JMSException { + connection.createSharedDurableConnectionConsumer(null, null, null, null, 10); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionAckMode() throws JMSException { + connection.createSession(Session.AUTO_ACKNOWLEDGE); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionDurableConsumer() throws JMSException { + session.createDurableConsumer(null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionDurableConsumerSelectorNoLocal() throws JMSException { + session.createDurableConsumer(null, null, null, true); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionSharedConsumer() throws JMSException { + session.createSharedConsumer(null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionSharedConsumerSelector() throws JMSException { + session.createSharedConsumer(null, null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionSharedDurableConsumer() throws JMSException { + session.createSharedDurableConsumer(null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testSessionSharedDurableConsumerSelector() throws JMSException { + session.createSharedDurableConsumer(null, null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerDeliveryDelayGet() throws JMSException { + messageProducer.getDeliveryDelay(); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerDeliveryDelaySet() throws JMSException { + messageProducer.setDeliveryDelay(1000l); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerSendMessageCompletionListener() throws JMSException { + messageProducer.send(session.createQueue("AMQ.TEST"), null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerSendMessageQoSParamsCompletionListener() throws JMSException { + messageProducer.send(null, 1, 4, 0l, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerSendDestinationMessageCompletionListener() throws JMSException { + messageProducer.send(session.createQueue("AMQ.TEST"), null, null); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerSendDestinationMessageQosParamsCompletionListener() throws JMSException { + messageProducer.send(session.createQueue("AMQ.TEST"), null, 1, 4, 0l, null); + } + +} diff --git a/activemq-client/pom.xml b/activemq-client/pom.xml index 800f7a3..2432a0a 100644 --- a/activemq-client/pom.xml +++ b/activemq-client/pom.xml @@ -43,8 +43,8 @@ <artifactId>slf4j-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.fusesource.hawtbuf</groupId> @@ -58,12 +58,13 @@ <artifactId>geronimo-j2ee-management_1.1_spec</artifactId> </dependency> - <!-- for ftp blob upload/download --> + <!-- for ftp blob upload/download --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <optional>true</optional> </dependency> + <!-- for zerconf discovery --> <dependency> <groupId>javax.jmdns</groupId> diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java index 5d11fb6..0a49f99 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java @@ -307,6 +307,44 @@ public class ActiveMQConnection implements Connection, TopicConnection, QueueCon /** * Creates a <CODE>Session</CODE> object. * + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @since 2.0 + */ + @Override + public Session createSession() throws JMSException { + throw new UnsupportedOperationException("createSession() is unsupported"); + } + + /** + * Creates a <CODE>Session</CODE> object. + * + * @param acknowledgeMode indicates whether the consumer or the client will + * acknowledge any messages it receives; ignored if the + * session is transacted. Legal values are + * <code>Session.AUTO_ACKNOWLEDGE</code>, + * <code>Session.CLIENT_ACKNOWLEDGE</code>, and + * <code>Session.DUPS_OK_ACKNOWLEDGE</code>. + * @return a newly created session + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @see Session#AUTO_ACKNOWLEDGE + * @see Session#CLIENT_ACKNOWLEDGE + * @see Session#DUPS_OK_ACKNOWLEDGE + * @since 2.0 + */ + @Override + public Session createSession(int sessionMode) throws JMSException { + throw new UnsupportedOperationException("createSession(int sessionMode) is unsupported"); + } + + /** + * Creates a <CODE>Session</CODE> object. + * * @param transacted indicates whether the session is transacted * @param acknowledgeMode indicates whether the consumer or the client will * acknowledge any messages it receives; ignored if the @@ -826,10 +864,32 @@ public class ActiveMQConnection implements Connection, TopicConnection, QueueCon return new ActiveMQConnectionConsumer(this, sessionPool, info); } - // Properties - // ------------------------------------------------------------------------- + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, + int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, + int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } + + // Properties + // ------------------------------------------------------------------------- + + /** * Returns true if this connection has been started * * @return true if this Connection is started diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java index 2a868ee..915f103 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java @@ -27,6 +27,7 @@ import java.util.concurrent.RejectedExecutionHandler; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.ExceptionListener; +import javax.jms.JMSContext; import javax.jms.JMSException; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; @@ -285,8 +286,40 @@ public class ActiveMQConnectionFactory extends JNDIBaseStorable implements Conne public TopicConnection createTopicConnection(String userName, String password) throws JMSException { return createActiveMQConnection(userName, password); } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext() { + throw new UnsupportedOperationException("createContext() is not supported"); + } /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password) { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password, int sessionMode) { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(int sessionMode) { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** * @return the StatsImpl associated with this ConnectionFactory. */ @Override diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducer.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducer.java index 2fec295..c63ac2c 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducer.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducer.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; +import javax.jms.CompletionListener; import javax.jms.Destination; import javax.jms.IllegalStateException; import javax.jms.InvalidDestinationException; @@ -220,10 +221,47 @@ public class ActiveMQMessageProducer extends ActiveMQMessageProducerSupport impl */ @Override public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { - this.send(destination, message, deliveryMode, priority, timeToLive, null); + this.send(destination, message, deliveryMode, priority, timeToLive, (AsyncCallback)null); } - - public void send(Message message, AsyncCallback onComplete) throws JMSException { + + /** + * + * @param message the message to send + * @param CompletionListener to callback + * @throws JMSException if the JMS provider fails to send the message due to + * some internal error. + * @throws UnsupportedOperationException if an invalid destination is + * specified. + * @throws InvalidDestinationException if a client uses this method with an + * invalid destination. + * @see javax.jms.Session#createProducer + * @since 2.0 + */ + @Override + public void send(Message message, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, CompletionListener) is not supported"); + + } + + @Override + public void send(Message message, int deliveryMode, int priority, long timeToLive, + CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, CompletionListener completionListener) + throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive, + CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + public void send(Message message, AsyncCallback onComplete) throws JMSException { this.send(this.getDestination(), message, this.defaultDeliveryMode, diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java index 1f8ce41..4ab73c3 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java @@ -42,6 +42,31 @@ public abstract class ActiveMQMessageProducerSupport implements MessageProducer, disableMessageTimestamp = session.connection.isDisableTimeStampsByDefault(); } + /** + * Gets the delivery delay associated with this <CODE>MessageProducer</CODE>. + * + * @return this producer's <CODE>DeliveryDely/ <CODE> + * @throws JMSException if the JMS provider fails to close the producer due to + * some internal error. + * @since 2.0 + */ + @Override + public void setDeliveryDelay(long deliveryDelay) throws JMSException { + throw new UnsupportedOperationException("setDeliveryDelay() is not supported"); + } + + /** + * Gets the delivery delay value for this <CODE>MessageProducer</CODE>. + * + * @return the delivery delay for this messageProducer + * @throws javax.jms.JMSException if the JMS provider fails to determine if deliver delay is + * disabled due to some internal error. + */ + @Override + public long getDeliveryDelay() throws JMSException { + throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + } + /** * Sets whether message IDs are disabled. * <P> @@ -66,7 +91,7 @@ public abstract class ActiveMQMessageProducerSupport implements MessageProducer, this.disableMessageID = value; } - /** + /** * Gets an indication of whether message IDs are disabled. * * @return an indication of whether message IDs are disabled diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQQueueSession.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQQueueSession.java index 66170e5..f29b12a 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQQueueSession.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQQueueSession.java @@ -104,8 +104,42 @@ public class ActiveMQQueueSession implements QueueSession { } return next.createConsumer(destination, messageSelector, noLocal); } - + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) + throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) + throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) + throws JMSException { + throw new IllegalStateException("Operation not supported by a QueueSession"); + } + + @Override public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException { throw new IllegalStateException("Operation not supported by a QueueSession"); } diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQSession.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQSession.java index 35bddf2..cca57c7 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQSession.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQSession.java @@ -1381,8 +1381,41 @@ public class ActiveMQSession implements Session, QueueSession, TopicSession, Sta } return new ActiveMQTopic(topicName); } - - /** + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName) is not supported"); + } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) + throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName, messageSelector) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) + throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name, messageSelector, noLocal) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) + throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name, messageSelector) is not supported"); + } + + /** * Creates a durable subscriber to the specified topic. * <P> * If a client needs to receive all the messages published on a topic, diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQTopicSession.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQTopicSession.java index ea92a71..2b8497b 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQTopicSession.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQTopicSession.java @@ -136,8 +136,42 @@ public class ActiveMQTopicSession implements TopicSession { } return next.createConsumer(destination, messageSelector, noLocal); } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + } - /** + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) + throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) + throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) + throws JMSException { + throw new IllegalStateException("Operation not supported by a TopicSession"); + } + + /** * @param topic * @param name * @return diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQXAConnectionFactory.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQXAConnectionFactory.java index c383685..5a1adad 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQXAConnectionFactory.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQXAConnectionFactory.java @@ -22,6 +22,7 @@ import java.util.Properties; import javax.jms.JMSException; import javax.jms.XAConnection; import javax.jms.XAConnectionFactory; +import javax.jms.XAJMSContext; import javax.jms.XAQueueConnection; import javax.jms.XAQueueConnectionFactory; import javax.jms.XATopicConnection; @@ -79,8 +80,18 @@ public class ActiveMQXAConnectionFactory extends ActiveMQConnectionFactory imple public XATopicConnection createXATopicConnection(String userName, String password) throws JMSException { return (XATopicConnection) createActiveMQConnection(userName, password); } + + @Override + public XAJMSContext createXAContext() { + throw new UnsupportedOperationException("createXAContext() is not supported"); + } + + @Override + public XAJMSContext createXAContext(String userName, String password) { + throw new UnsupportedOperationException("createXAContext(userName, password) is not supported"); + } - protected ActiveMQConnection createActiveMQConnection(Transport transport, JMSStatsImpl stats) throws Exception { + protected ActiveMQConnection createActiveMQConnection(Transport transport, JMSStatsImpl stats) throws Exception { ActiveMQXAConnection connection = new ActiveMQXAConnection(transport, getClientIdGenerator(), getConnectionIdGenerator(), stats); configureXAConnection(connection); return connection; diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQXASslConnectionFactory.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQXASslConnectionFactory.java index e6e5726..5c42fed 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQXASslConnectionFactory.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQXASslConnectionFactory.java @@ -22,6 +22,7 @@ import java.util.Properties; import javax.jms.JMSException; import javax.jms.XAConnection; import javax.jms.XAConnectionFactory; +import javax.jms.XAJMSContext; import javax.jms.XAQueueConnection; import javax.jms.XAQueueConnectionFactory; import javax.jms.XATopicConnection; @@ -74,6 +75,16 @@ public class ActiveMQXASslConnectionFactory extends ActiveMQSslConnectionFactory } @Override + public XAJMSContext createXAContext() { + throw new UnsupportedOperationException("createXAContext() is not supported"); + } + + @Override + public XAJMSContext createXAContext(String userName, String password) { + throw new UnsupportedOperationException("createXAContext(userName, password) is not supported"); + } + + @Override protected ActiveMQConnection createActiveMQConnection(Transport transport, JMSStatsImpl stats) throws Exception { ActiveMQXAConnection connection = new ActiveMQXAConnection(transport, getClientIdGenerator(), getConnectionIdGenerator(), stats); configureXAConnection(connection); diff --git a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java index f0dd802..1dd28ee 100644 --- a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java +++ b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java @@ -784,4 +784,25 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess //which is already marshalled return true; } + + @Override + public long getJMSDeliveryTime() throws JMSException { + return deliveryTime; + } + + @Override + public void setJMSDeliveryTime(long deliveryTime) throws JMSException { + this.deliveryTime = deliveryTime; + } + + @Override + public <T> T getBody(Class<T> c) throws JMSException { + throw new UnsupportedOperationException("getBody(Class<T>) is not supported"); + } + + @Override + public boolean isBodyAssignableTo(Class c) throws JMSException { + throw new UnsupportedOperationException("isBodyAssignableTo(Class) is not supported"); + } + } diff --git a/activemq-client/src/main/java/org/apache/activemq/command/Message.java b/activemq-client/src/main/java/org/apache/activemq/command/Message.java index 65b560d..44f8094 100644 --- a/activemq-client/src/main/java/org/apache/activemq/command/Message.java +++ b/activemq-client/src/main/java/org/apache/activemq/command/Message.java @@ -62,6 +62,7 @@ public abstract class Message extends BaseCommand implements MarshallAware, Mess protected ActiveMQDestination destination; protected TransactionId transactionId; + protected long deliveryTime; protected long expiration; protected long timestamp; protected long arrival; @@ -143,6 +144,7 @@ public abstract class Message extends BaseCommand implements MarshallAware, Mess copy.messageId = messageId != null ? messageId.copy() : null; copy.originalDestination = originalDestination; copy.originalTransactionId = originalTransactionId; + copy.deliveryTime = deliveryTime; copy.expiration = expiration; copy.timestamp = timestamp; copy.correlationId = correlationId; diff --git a/activemq-console/pom.xml b/activemq-console/pom.xml index b9498b8..55726f8 100644 --- a/activemq-console/pom.xml +++ b/activemq-console/pom.xml @@ -56,8 +56,8 @@ <!-- geronimo --> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> diff --git a/activemq-jms-pool/pom.xml b/activemq-jms-pool/pom.xml index 924ce8e..1619955 100644 --- a/activemq-jms-pool/pom.xml +++ b/activemq-jms-pool/pom.xml @@ -40,8 +40,8 @@ <artifactId>slf4j-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.components</groupId> diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnection.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnection.java index 038e13c..530ed22 100644 --- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnection.java +++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnection.java @@ -162,6 +162,44 @@ public class PooledConnection implements TopicConnection, QueueConnection, Poole return (TopicSession) createSession(transacted, ackMode); } + /** + * Creates a <CODE>Session</CODE> object. + * + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @since 2.0 + */ + @Override + public Session createSession() throws JMSException { + throw new UnsupportedOperationException("createSession() is unsupported"); + } + + /** + * Creates a <CODE>Session</CODE> object. + * + * @param acknowledgeMode indicates whether the consumer or the client will + * acknowledge any messages it receives; ignored if the + * session is transacted. Legal values are + * <code>Session.AUTO_ACKNOWLEDGE</code>, + * <code>Session.CLIENT_ACKNOWLEDGE</code>, and + * <code>Session.DUPS_OK_ACKNOWLEDGE</code>. + * @return a newly created session + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @see Session#AUTO_ACKNOWLEDGE + * @see Session#CLIENT_ACKNOWLEDGE + * @see Session#DUPS_OK_ACKNOWLEDGE + * @since 2.0 + */ + @Override + public Session createSession(int sessionMode) throws JMSException { + throw new UnsupportedOperationException("createSession(int sessionMode) is unsupported"); + } + @Override public Session createSession(boolean transacted, int ackMode) throws JMSException { PooledSession result = (PooledSession) pool.createSession(transacted, ackMode); @@ -175,6 +213,28 @@ public class PooledConnection implements TopicConnection, QueueConnection, Poole result.addSessionEventListener(this); return result; } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, + int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, + int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } // Implementation methods // ------------------------------------------------------------------------- diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnectionFactory.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnectionFactory.java index 11fbbbb..2643037 100644 --- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnectionFactory.java +++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledConnectionFactory.java @@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicReference; import javax.jms.Connection; import javax.jms.ConnectionFactory; +import javax.jms.JMSContext; import javax.jms.JMSException; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; @@ -271,6 +272,38 @@ public class PooledConnectionFactory implements ConnectionFactory, QueueConnecti return newPooledConnection(connection); } + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext() { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password) { + throw new UnsupportedOperationException("createContext(userName, password) is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password, int sessionMode) { + throw new UnsupportedOperationException("createContext(userName, password, sessionMode) is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(int sessionMode) { + throw new UnsupportedOperationException("createContext(sessionMode) is not supported"); + } + protected Connection newPooledConnection(ConnectionPool connection) { return new PooledConnection(connection); } diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java index 175f74d..38d9b7f 100644 --- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java +++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java @@ -16,6 +16,7 @@ */ package org.apache.activemq.jms.pool; +import javax.jms.CompletionListener; import javax.jms.Destination; import javax.jms.InvalidDestinationException; import javax.jms.JMSException; @@ -95,6 +96,68 @@ public class PooledProducer implements MessageProducer { messageProducer.send(destination, message, deliveryMode, priority, timeToLive); } } + + /** + * + * @param message the message to send + * @param CompletionListener to callback + * @throws JMSException if the JMS provider fails to send the message due to + * some internal error. + * @throws UnsupportedOperationException if an invalid destination is + * specified. + * @throws InvalidDestinationException if a client uses this method with an + * invalid destination. + * @see javax.jms.Session#createProducer + * @since 2.0 + */ + @Override + public void send(Message message, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, CompletionListener) is not supported"); + + } + + @Override + public void send(Message message, int deliveryMode, int priority, long timeToLive, + CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, CompletionListener completionListener) + throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive, + CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + /** + * Gets the delivery delay associated with this <CODE>MessageProducer</CODE>. + * + * @return this producer's <CODE>DeliveryDely/ <CODE> + * @throws JMSException if the JMS provider fails to close the producer due to + * some internal error. + * @since 2.0 + */ + @Override + public void setDeliveryDelay(long deliveryDelay) throws JMSException { + throw new UnsupportedOperationException("setDeliveryDelay() is not supported"); + } + + /** + * Gets the delivery delay value for this <CODE>MessageProducer</CODE>. + * + * @return the delivery delay for this messageProducer + * @throws javax.jms.JMSException if the JMS provider fails to determine if deliver delay is + * disabled due to some internal error. + */ + @Override + public long getDeliveryDelay() throws JMSException { + throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + } @Override public Destination getDestination() { diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledSession.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledSession.java index 1e8fd23..8e436e6 100644 --- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledSession.java +++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledSession.java @@ -360,6 +360,36 @@ public class PooledSession implements Session, TopicSession, QueueSession, XASes public QueueReceiver createReceiver(Queue queue, String selector) throws JMSException { return addQueueReceiver(((QueueSession) getInternalSession()).createReceiver(queue, selector)); } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName) is not supported"); + } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName, messageSelector) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name, messageSelector, noLocal) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name, messageSelector) is not supported"); + } // Producer related methods // ------------------------------------------------------------------------- diff --git a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/XAConnectionPoolTest.java b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/XAConnectionPoolTest.java index a4ea122..f531ff4 100644 --- a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/XAConnectionPoolTest.java +++ b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/XAConnectionPoolTest.java @@ -39,6 +39,7 @@ import javax.jms.TopicPublisher; import javax.jms.TopicSession; import javax.jms.XAConnection; import javax.jms.XAConnectionFactory; +import javax.jms.XAJMSContext; import javax.naming.spi.ObjectFactory; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; @@ -420,6 +421,16 @@ public class XAConnectionPoolTest extends JmsPoolTestSupport { } @Override + public XAJMSContext createXAContext() { + throw new UnsupportedOperationException("createXAContext() is not supported"); + } + + @Override + public XAJMSContext createXAContext(String userName, String password) { + throw new UnsupportedOperationException("createXAContext(userName, password) is not supported"); + } + + @Override public XAConnection createXAConnection() throws JMSException { return connectionFactory.createXAConnection(); } diff --git a/activemq-karaf-itest/pom.xml b/activemq-karaf-itest/pom.xml index a596858..82af8d0 100644 --- a/activemq-karaf-itest/pom.xml +++ b/activemq-karaf-itest/pom.xml @@ -34,6 +34,12 @@ <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <scope>test</scope> + <exclusions> + <exclusion> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.activemq</groupId> diff --git a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdCamelFeatureTest.java b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdCamelFeatureTest.java index d4f6651..658ab40 100644 --- a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdCamelFeatureTest.java +++ b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdCamelFeatureTest.java @@ -37,7 +37,7 @@ public class ActiveMQBrokerNdCamelFeatureTest extends AbstractFeatureTest { public static Option[] configure() { return new Option[] // { - composite(configure("activemq", "activemq-camel")), + composite(configure("activemq", "camel-jms")), editConfigurationFilePut("etc/system.properties", "camel.version", camelVersion()), replaceConfigurationFile("etc/activemq.xml", new File(RESOURCE_BASE + "activemq-nd-camel.xml")), replaceConfigurationFile("etc/org.apache.activemq.server-default.cfg", new File(RESOURCE_BASE + "org.apache.activemq.server-default.cfg")) diff --git a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdExternalCamelFeatureTest.java b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdExternalCamelFeatureTest.java index c41e397..afed638 100644 --- a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdExternalCamelFeatureTest.java +++ b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ActiveMQBrokerNdExternalCamelFeatureTest.java @@ -50,7 +50,7 @@ public class ActiveMQBrokerNdExternalCamelFeatureTest extends AbstractFeatureTes public void test() throws Throwable { assertFeatureInstalled("activemq"); installAndAssertFeature("camel"); - installAndAssertFeature("activemq-camel"); + installAndAssertFeature("camel-jms"); assertBrokerStarted(); withinReason(new Runnable() { diff --git a/activemq-karaf/pom.xml b/activemq-karaf/pom.xml index 19e8171..a8474d0 100644 --- a/activemq-karaf/pom.xml +++ b/activemq-karaf/pom.xml @@ -32,7 +32,6 @@ <properties> <xpp3-bundle-version>1.1.4c_5</xpp3-bundle-version> - <jodatime-bundle-version>2.9</jodatime-bundle-version> <dom4j-bundle-version>1.6.1_2</dom4j-bundle-version> <xstream-bundle-version>1.4.17_1</xstream-bundle-version> <servicemix.specs.version>2.4.0</servicemix.specs.version> @@ -40,6 +39,11 @@ <dependencies> <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jms_2.0_spec</artifactId> + <version>1.0-alpha-2</version> + </dependency> + <dependency> <groupId>org.ops4j.pax.logging</groupId> <artifactId>pax-logging-api</artifactId> <version>1.11.4</version> @@ -97,14 +101,32 @@ <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-log4j-appender</artifactId> + <exclusions> + <exclusion> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-console</artifactId> + <exclusions> + <exclusion> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> + <exclusions> + <exclusion> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + </exclusion> + </exclusions> </dependency> <!-- used for testing --> <dependency> diff --git a/activemq-karaf/src/main/resources/features-core.xml b/activemq-karaf/src/main/resources/features-core.xml index feecb4a..28bd9b0 100644 --- a/activemq-karaf/src/main/resources/features-core.xml +++ b/activemq-karaf/src/main/resources/features-core.xml @@ -32,7 +32,6 @@ <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${jaxb-bundle-version}</bundle> <bundle>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle> <bundle>mvn:commons-net/commons-net/${commons-net-version}</bundle> - <bundle dependency="true">mvn:org.apache.zookeeper/zookeeper/${zookeeper-version}</bundle> <!-- uber osgi bundle means client is not that lean, todo: introduce client osgi bundle --> <bundle>mvn:org.apache.activemq/activemq-osgi/${project.version}</bundle> </feature> @@ -57,7 +56,6 @@ <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt-spring31/1.9.2_1</bundle> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix.specs.version}</bundle> <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle> - <bundle dependency="true">mvn:joda-time/joda-time/${jodatime-bundle-version}</bundle> <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle> <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${aries-version}</bundle> <bundle dependency="true">mvn:org.apache.activemq/activeio-core/${activeio-version}</bundle> diff --git a/activemq-osgi/pom.xml b/activemq-osgi/pom.xml index c3800e7..5e0788d 100644 --- a/activemq-osgi/pom.xml +++ b/activemq-osgi/pom.xml @@ -472,9 +472,9 @@ <optional>true</optional> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> <classifier>sources</classifier> <optional>true</optional> </dependency> diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQConnectionFactory.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQConnectionFactory.java index 4e30a37..f6490f5 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQConnectionFactory.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQConnectionFactory.java @@ -20,6 +20,7 @@ import java.io.Serializable; import javax.jms.Connection; import javax.jms.ConnectionFactory; +import javax.jms.JMSContext; import javax.jms.JMSException; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; @@ -77,8 +78,40 @@ public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnec i.setPassword(password); return createConnection(i); } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext() { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password) { + throw new UnsupportedOperationException("createContext(userName, password) is not supported"); + } /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password, int sessionMode) { + throw new UnsupportedOperationException("createContext(userName, password, sessionMode) is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(int sessionMode) { + throw new UnsupportedOperationException("createContext(sessionMode) is not supported"); + } + + /** * @param connectionRequestInfo * @return * @throws JMSException diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxy.java index 800e73a..de4b24f 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxy.java @@ -108,4 +108,62 @@ public class InboundConnectionProxy implements Connection, QueueConnection, Topi protected JMSException createNotSupported(String text) { return new JMSException("Operation: " + text + " is not supported for this proxy JCA ResourceAdapter provider"); } + + /** + * Creates a <CODE>Session</CODE> object. + * + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @since 2.0 + */ + @Override + public Session createSession() throws JMSException { + throw new UnsupportedOperationException("createSession() is unsupported"); + } + + /** + * Creates a <CODE>Session</CODE> object. + * + * @param acknowledgeMode indicates whether the consumer or the client will + * acknowledge any messages it receives; ignored if the + * session is transacted. Legal values are + * <code>Session.AUTO_ACKNOWLEDGE</code>, + * <code>Session.CLIENT_ACKNOWLEDGE</code>, and + * <code>Session.DUPS_OK_ACKNOWLEDGE</code>. + * @return a newly created session + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @see Session#AUTO_ACKNOWLEDGE + * @see Session#CLIENT_ACKNOWLEDGE + * @see Session#DUPS_OK_ACKNOWLEDGE + * @since 2.0 + */ + @Override + public Session createSession(int sessionMode) throws JMSException { + throw new UnsupportedOperationException("createSession(int sessionMode) is unsupported"); + } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } } diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxyFactory.java b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxyFactory.java index 57119ae..9472bce 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxyFactory.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundConnectionProxyFactory.java @@ -18,6 +18,7 @@ package org.apache.activemq.ra; import javax.jms.Connection; import javax.jms.ConnectionFactory; +import javax.jms.JMSContext; import javax.jms.JMSException; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; @@ -56,4 +57,36 @@ public class InboundConnectionProxyFactory implements ConnectionFactory, QueueCo public TopicConnection createTopicConnection(String userName, String password) throws JMSException { return createTopicConnection(); } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext() { + throw new UnsupportedOperationException("createContext() is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password) { + throw new UnsupportedOperationException("createContext(userName, password) is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(String userName, String password, int sessionMode) { + throw new UnsupportedOperationException("createContext(userName, password, sessionMode) is not supported"); + } + + /** + * @return Returns the JMSContext. + */ + @Override + public JMSContext createContext(int sessionMode) { + throw new UnsupportedOperationException("createContext(sessionMode) is not supported"); + } } diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java index 3ed5ef8..7c42f82 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java @@ -16,7 +16,9 @@ */ package org.apache.activemq.ra; +import javax.jms.CompletionListener; import javax.jms.Destination; +import javax.jms.InvalidDestinationException; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageProducer; @@ -159,4 +161,63 @@ public class InboundMessageProducerProxy implements MessageProducer, QueueSender public void publish(Topic arg0, Message arg1, int arg2, int arg3, long arg4) throws JMSException { messageProducer.send(arg0, arg1, arg2, arg3, arg4); } + + /** + * + * @param message the message to send + * @param CompletionListener to callback + * @throws JMSException if the JMS provider fails to send the message due to + * some internal error. + * @throws UnsupportedOperationException if an invalid destination is + * specified. + * @throws InvalidDestinationException if a client uses this method with an + * invalid destination. + * @see javax.jms.Session#createProducer + * @since 2.0 + */ + @Override + public void send(Message message, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, CompletionListener) is not supported"); + + } + + @Override + public void send(Message message, int deliveryMode, int priority, long timeToLive, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, CompletionListener) is not supported"); + } + + @Override + public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive, CompletionListener completionListener) throws JMSException { + throw new UnsupportedOperationException("send(Destination, Message, deliveryMode, priority, timetoLive, CompletionListener) is not supported"); + } + + /** + * Gets the delivery delay associated with this <CODE>MessageProducer</CODE>. + * + * @return this producer's <CODE>DeliveryDely/ <CODE> + * @throws JMSException if the JMS provider fails to close the producer due to + * some internal error. + * @since 2.0 + */ + @Override + public void setDeliveryDelay(long deliveryDelay) throws JMSException { + throw new UnsupportedOperationException("setDeliveryDelay() is not supported"); + } + + /** + * Gets the delivery delay value for this <CODE>MessageProducer</CODE>. + * + * @return the delivery delay for this messageProducer + * @throws javax.jms.JMSException if the JMS provider fails to determine if deliver delay is + * disabled due to some internal error. + */ + @Override + public long getDeliveryDelay() throws JMSException { + throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + } } diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundSessionProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundSessionProxy.java index ae9d848..93ea988 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundSessionProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundSessionProxy.java @@ -237,6 +237,36 @@ public class InboundSessionProxy implements Session, QueueSession, TopicSession return getTopicSession().createPublisher(topic); } + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName) is not supported"); + } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName, messageSelector) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name, messageSelector, noLocal) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name, messageSelector) is not supported"); + } + public String toString() { try { return "InboundSessionProxy { " + getSession() + " }"; diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedConnectionProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedConnectionProxy.java index d18260a..c3b3c88 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedConnectionProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedConnectionProxy.java @@ -290,4 +290,62 @@ public class ManagedConnectionProxy implements Connection, QueueConnection, Topi } } + /** + * Creates a <CODE>Session</CODE> object. + * + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @since 2.0 + */ + @Override + public Session createSession() throws JMSException { + throw new UnsupportedOperationException("createSession() is unsupported"); + } + + /** + * Creates a <CODE>Session</CODE> object. + * + * @param acknowledgeMode indicates whether the consumer or the client will + * acknowledge any messages it receives; ignored if the + * session is transacted. Legal values are + * <code>Session.AUTO_ACKNOWLEDGE</code>, + * <code>Session.CLIENT_ACKNOWLEDGE</code>, and + * <code>Session.DUPS_OK_ACKNOWLEDGE</code>. + * @return a newly created session + * @throws JMSException if the <CODE>Connection</CODE> object fails to + * create a session due to some internal error or lack of + * support for the specific transaction and acknowledgement + * mode. + * @see Session#AUTO_ACKNOWLEDGE + * @see Session#CLIENT_ACKNOWLEDGE + * @see Session#DUPS_OK_ACKNOWLEDGE + * @since 2.0 + */ + @Override + public Session createSession(int sessionMode) throws JMSException { + throw new UnsupportedOperationException("createSession(int sessionMode) is unsupported"); + } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } + + /** + * + * @see javax.jms.ConnectionConsumer + * @since 2.0 + */ + @Override + public ConnectionConsumer createSharedDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException { + throw new UnsupportedOperationException("createSharedConnectionConsumer() is not supported"); + } + } diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedSessionProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedSessionProxy.java index a71e48a..6d76a47 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedSessionProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ManagedSessionProxy.java @@ -406,6 +406,36 @@ public class ManagedSessionProxy implements Session, QueueSession, TopicSession throw new RuntimeException("Operation not supported."); } + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName) is not supported"); + } + + @Override + public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedConsumer(Topic, sharedSubscriptionName, messageSelector) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { + throw new UnsupportedOperationException("createDurableConsumer(Topic, name, messageSelector, noLocal) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name) is not supported"); + } + + @Override + public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) throws JMSException { + throw new UnsupportedOperationException("createSharedDurableConsumer(Topic, name, messageSelector) is not supported"); + } + public String toString() { return "ManagedSessionProxy { " + session + " }"; } diff --git a/activemq-rar/pom.xml b/activemq-rar/pom.xml index 8357ad1..98bc70e 100644 --- a/activemq-rar/pom.xml +++ b/activemq-rar/pom.xml @@ -38,8 +38,8 @@ <artifactId>activemq-spring</artifactId> <exclusions> <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.geronimo.specs</groupId> @@ -164,8 +164,8 @@ <artifactId>activemq-ra</artifactId> <exclusions> <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.geronimo.specs</groupId> diff --git a/activemq-tooling/activemq-maven-plugin/pom.xml b/activemq-tooling/activemq-maven-plugin/pom.xml index 4cf6d30..a17c6b6 100644 --- a/activemq-tooling/activemq-maven-plugin/pom.xml +++ b/activemq-tooling/activemq-maven-plugin/pom.xml @@ -55,8 +55,8 @@ <artifactId>derbynet</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/activemq-tooling/activemq-memtest-maven-plugin/pom.xml b/activemq-tooling/activemq-memtest-maven-plugin/pom.xml index 06296c9..e52472b 100644 --- a/activemq-tooling/activemq-memtest-maven-plugin/pom.xml +++ b/activemq-tooling/activemq-memtest-maven-plugin/pom.xml @@ -56,8 +56,8 @@ <artifactId>derbynet</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/activemq-tooling/activemq-perf-maven-plugin/pom.xml b/activemq-tooling/activemq-perf-maven-plugin/pom.xml index 398bf15..ca7197f 100644 --- a/activemq-tooling/activemq-perf-maven-plugin/pom.xml +++ b/activemq-tooling/activemq-perf-maven-plugin/pom.xml @@ -59,8 +59,8 @@ <artifactId>derbynet</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/activemq-unit-tests/pom.xml b/activemq-unit-tests/pom.xml index f73adfc..2db07af 100644 --- a/activemq-unit-tests/pom.xml +++ b/activemq-unit-tests/pom.xml @@ -67,8 +67,8 @@ <artifactId>activemq-runtime-config</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> diff --git a/activemq-web-console/pom.xml b/activemq-web-console/pom.xml index 473c1be..1d1c558 100644 --- a/activemq-web-console/pom.xml +++ b/activemq-web-console/pom.xml @@ -185,8 +185,8 @@ <!-- j2ee jars --> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/activemq-web-demo/pom.xml b/activemq-web-demo/pom.xml index 732e81f..d4e7847 100644 --- a/activemq-web-demo/pom.xml +++ b/activemq-web-demo/pom.xml @@ -142,8 +142,8 @@ <dependencies> <!-- j2ee jars --> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/assembly/pom.xml b/assembly/pom.xml index 9724e71..9d32850 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -254,8 +254,8 @@ <artifactId>log4j</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> diff --git a/assembly/src/main/descriptors/common-bin.xml b/assembly/src/main/descriptors/common-bin.xml index 57b6d92..ce02af9 100644 --- a/assembly/src/main/descriptors/common-bin.xml +++ b/assembly/src/main/descriptors/common-bin.xml @@ -142,7 +142,7 @@ <include>${pom.groupId}:activemq-jaas</include> <include>org.apache.activemq.protobuf:activemq-protobuf</include> <include>org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec</include> - <include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include> + <include>jakarta.jms:jakarta.jms-api</include> <include>org.apache.geronimo.specs:geronimo-jta_1.1_spec</include> <include>${pom.groupId}:activemq-web</include> <include>org.fusesource.hawtbuf:hawtbuf</include> diff --git a/assembly/src/release/examples/amqp/java/pom.xml b/assembly/src/release/examples/amqp/java/pom.xml index 955f715..d257ab3 100644 --- a/assembly/src/release/examples/amqp/java/pom.xml +++ b/assembly/src/release/examples/amqp/java/pom.xml @@ -29,9 +29,9 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> diff --git a/assembly/src/release/examples/openwire/advanced-scenarios/pom.xml b/assembly/src/release/examples/openwire/advanced-scenarios/pom.xml index 5e9c8e2..a53d815 100644 --- a/assembly/src/release/examples/openwire/advanced-scenarios/pom.xml +++ b/assembly/src/release/examples/openwire/advanced-scenarios/pom.xml @@ -41,11 +41,10 @@ <description>ActiveMQ OpenWire Java Examples</description> <dependencies> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> diff --git a/assembly/src/release/examples/openwire/java/pom.xml b/assembly/src/release/examples/openwire/java/pom.xml index a624592..58e84d8 100644 --- a/assembly/src/release/examples/openwire/java/pom.xml +++ b/assembly/src/release/examples/openwire/java/pom.xml @@ -28,9 +28,9 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> diff --git a/assembly/src/release/examples/stomp/java/pom.xml b/assembly/src/release/examples/stomp/java/pom.xml index 50b4511..a52ff14 100644 --- a/assembly/src/release/examples/stomp/java/pom.xml +++ b/assembly/src/release/examples/stomp/java/pom.xml @@ -29,9 +29,9 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> </dependency> <dependency> <groupId>org.fusesource.stompjms</groupId> diff --git a/pom.xml b/pom.xml index 6abcb95..0a6430b 100644 --- a/pom.xml +++ b/pom.xml @@ -465,9 +465,9 @@ </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jms_1.1_spec</artifactId> - <version>1.1.1</version> + <groupId>jakarta.jms</groupId> + <artifactId>jakarta.jms-api</artifactId> + <version>2.0.3</version> </dependency> <dependency>
