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 4cbeacb5bd..8c68d5ee65 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java @@ -328,7 +328,11 @@ public class ActiveMQConnectionFactory extends JNDIBaseStorable implements Conne */ @Override public JMSContext createContext(int sessionMode) { - throw new UnsupportedOperationException("createContext() is not supported"); + try { + return new ActiveMQContext(createActiveMQConnection(getUserName(), getPassword()), sessionMode); + } catch (JMSException e) { + throw JMSExceptionSupport.convertToJMSRuntimeException(e); + } } /** diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java index 8353fdb907..cf1e0fa594 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java @@ -57,9 +57,18 @@ public class ActiveMQJMS2ContextTest extends ActiveMQJMS2TestBase { } } - @Test(expected = UnsupportedOperationException.class) + @Test public void testConnectionFactoryCreateContextSession() { - activemqConnectionFactory.createContext(Session.AUTO_ACKNOWLEDGE); + try(JMSContext jmsContext = activemqConnectionFactory.createContext(Session.AUTO_ACKNOWLEDGE)) { + assertNotNull(jmsContext); + jmsContext.start(); + assertTrue(ActiveMQContext.class.isAssignableFrom(jmsContext.getClass())); + Destination destination = jmsContext.createQueue(methodNameDestinationName); + sendMessage(jmsContext, destination, "Test-" + methodNameDestinationName); + recvMessage(jmsContext, destination, "Test-" + methodNameDestinationName); + } catch (JMSException e) { + fail(e.getMessage()); + } } @Test