You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ma...@apache.org on 2021/11/03 19:33:57 UTC

[activemq] branch AMQ-7309 created (now 1bb8474)

This is an automated email from the ASF dual-hosted git repository.

mattrpav pushed a change to branch AMQ-7309
in repository https://gitbox.apache.org/repos/asf/activemq.git.


      at 1bb8474  [#7309] Minor formatting fixes

This branch includes the following new commits:

     new 006336b  [AMQ-7309] Update to jakarta.jms/jakarta.jms-api:2.0.3
     new 1bb8474  [#7309] Minor formatting fixes

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[activemq] 01/02: [AMQ-7309] Update to jakarta.jms/jakarta.jms-api:2.0.3

Posted by ma...@apache.org.
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 <ma...@hyte.io>
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>

[activemq] 02/02: [#7309] Minor formatting fixes

Posted by ma...@apache.org.
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 1bb8474d7d8563def4dadceddf076502945a599d
Author: Matt Pavlovich <ma...@hyte.io>
AuthorDate: Wed Nov 3 14:30:23 2021 -0500

    [#7309] Minor formatting fixes
---
 .../apache/activemq/ActiveMQConnectionFactory.java | 36 +++++++++++-----------
 .../activemq/ActiveMQMessageProducerSupport.java   | 18 +++++------
 .../apache/activemq/jms/pool/PooledConnection.java |  8 ++---
 .../activemq/ra/ActiveMQConnectionFactory.java     |  6 ++--
 4 files changed, 34 insertions(+), 34 deletions(-)

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 915f103..461dbe1 100644
--- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
+++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
@@ -291,35 +291,35 @@ public class ActiveMQConnectionFactory extends JNDIBaseStorable implements Conne
      * @return Returns the JMSContext.
      */
     @Override
-	public JMSContext createContext() {
-    	throw new UnsupportedOperationException("createContext() is not supported");
-	}
+    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");
-	}
+    @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");
-	}
+    @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");
-	}
+    @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/ActiveMQMessageProducerSupport.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java
index 4ab73c3..461e531 100644
--- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java
+++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java
@@ -42,7 +42,7 @@ 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>
@@ -51,21 +51,21 @@ public abstract class ActiveMQMessageProducerSupport implements MessageProducer,
      * @since 2.0
      */
     @Override
-	public void setDeliveryDelay(long deliveryDelay) throws JMSException {
-    	throw new UnsupportedOperationException("setDeliveryDelay() is not supported");
-	}
+    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 long getDeliveryDelay() throws JMSException {
+        throw new UnsupportedOperationException("getDeliveryDelay() is not supported");
+    }
     
     /**
      * Sets whether message IDs are disabled.
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 530ed22..13de1af 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
@@ -173,7 +173,7 @@ public class PooledConnection implements TopicConnection, QueueConnection, Poole
      */
     @Override
     public Session createSession() throws JMSException {
-    	throw new UnsupportedOperationException("createSession() is unsupported"); 
+        throw new UnsupportedOperationException("createSession() is unsupported"); 
     }
 
     /**
@@ -196,9 +196,9 @@ public class PooledConnection implements TopicConnection, QueueConnection, Poole
      * @since 2.0
      */
     @Override
-	public Session createSession(int sessionMode) throws JMSException {
-    	throw new UnsupportedOperationException("createSession(int sessionMode) is unsupported"); 
-	}
+    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 {
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 f6490f5..cb9e379 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
@@ -93,7 +93,7 @@ public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnec
     @Override
     public JMSContext createContext(String userName, String password) {
         throw new UnsupportedOperationException("createContext(userName, password) is not supported");
-        }
+    }
 
     /**
      * @return Returns the JMSContext.
@@ -101,7 +101,7 @@ public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnec
     @Override
     public JMSContext createContext(String userName, String password, int sessionMode) {
         throw new UnsupportedOperationException("createContext(userName, password, sessionMode) is not supported");
-        }
+    }
 
     /**
      * @return Returns the JMSContext.
@@ -109,7 +109,7 @@ public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnec
     @Override
     public JMSContext createContext(int sessionMode) {
         throw new UnsupportedOperationException("createContext(sessionMode) is not supported");
-        }
+    }
 
 	/**
      * @param connectionRequestInfo