AMQ-9419: Implement createContext(int sessionMode) method

(cherry picked from commit 7fae1b98e7)
This commit is contained in:
Jean-Baptiste Onofré 2024-03-03 17:53:26 +01:00
parent 21bdebbe79
commit 750b31e5a6
2 changed files with 16 additions and 3 deletions

View File

@ -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);
}
}
/**

View File

@ -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