[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
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 @@
/**
* 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 @@
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 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 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.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 @@
*/
@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);
}
+
+ /**
+ *
+ * @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");
+
+ }
- public void send(Message message, AsyncCallback onComplete) throws JMSException {
+ @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 @@
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 @@
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 @@
}
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 @@
}
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 @@
}
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 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 XATopicConnection createXATopicConnection(String userName, String password) throws JMSException {
return (XATopicConnection) createActiveMQConnection(userName, password);
}
+
+ @Override
+ public XAJMSContext createXAContext() {
+ throw new UnsupportedOperationException("createXAContext() is not supported");
+ }
- protected ActiveMQConnection createActiveMQConnection(Transport transport, JMSStatsImpl stats) throws Exception {
+ @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 {
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 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 @@
}
@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 @@
//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 @@
protected ActiveMQDestination destination;
protected TransactionId transactionId;
+ protected long deliveryTime;
protected long expiration;
protected long timestamp;
protected long arrival;
@@ -143,6 +144,7 @@
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 @@
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 @@
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 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 @@
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 @@
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 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.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 @@
}
@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 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 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 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 @@
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 @@
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 @@
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 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 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 @@
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 @@
}
}
+ /**
+ * 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 @@
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>