use of com.adaptris.core.jms.JmsConnection in project interlok by adaptris.
the class ActiveJmsConnectionErrorHandlerTest method testActiveRestartSharedConnection_ChannelNotStarted.
@Test
public void testActiveRestartSharedConnection_ChannelNotStarted() throws Exception {
Adapter adapter = new Adapter();
adapter.setUniqueId(testName.getMethodName());
JmsConnection connection = activeMqBroker.getJmsConnection(new BasicActiveMqImplementation(), true);
connection.setConnectionErrorHandler(createErrorHandler());
connection.setConnectionAttempts(null);
connection.setUniqueId(testName.getMethodName());
connection.setConnectionRetryInterval(new TimeInterval(5L, "SECONDS"));
adapter.getSharedComponents().addConnection(connection);
MockChannel started = createChannel(activeMqBroker, new SharedConnection(testName.getMethodName()), testName.getMethodName());
MockChannel neverStarted = createChannel(activeMqBroker, new SharedConnection(testName.getMethodName()), testName.getMethodName() + "_2");
neverStarted.setAutoStart(false);
MockMessageProducer producer = (MockMessageProducer) started.getWorkflowList().get(0).getProducer();
adapter.getChannelList().add(started);
adapter.getChannelList().add(neverStarted);
try {
adapter.requestStart();
assertEquals(StartedState.getInstance(), started.retrieveComponentState());
assertEquals(ClosedState.getInstance(), neverStarted.retrieveComponentState());
// Now try and send a message
ExampleServiceCase.execute(createProducer(activeMqBroker, testName.getMethodName()), AdaptrisMessageFactory.getDefaultInstance().newMessage("ABC"));
waitForMessages(producer, 1);
activeMqBroker.stop();
log.trace(testName.getMethodName() + ": Waiting for channel death (i.e. !StartedState)");
long totalWaitTime = waitForChannelToChangeState(StartedState.getInstance(), started);
log.trace(testName.getMethodName() + ": Channel appears to be not started now, and I waited for " + totalWaitTime);
activeMqBroker.start();
totalWaitTime = waitForChannelToMatchState(StartedState.getInstance(), started);
log.trace(testName.getMethodName() + ": Channel now started now, and I waited for " + totalWaitTime);
assertEquals(StartedState.getInstance(), started.retrieveComponentState());
// Now try and send a message
ExampleServiceCase.execute(createProducer(activeMqBroker, testName.getMethodName()), AdaptrisMessageFactory.getDefaultInstance().newMessage("ABC"));
waitForMessages(producer, 2);
assertEquals(ClosedState.getInstance(), neverStarted.retrieveComponentState());
assertEquals(0, neverStarted.getInitCount());
} finally {
adapter.requestClose();
}
}
use of com.adaptris.core.jms.JmsConnection in project interlok by adaptris.
the class ActiveJmsConnectionErrorHandlerTest method testBug1926.
@Test
public void testBug1926() throws Exception {
String queueName = testName.getMethodName() + "_queue";
String topicName = testName.getMethodName() + "_topic";
JmsConnection jmsCon = activeMqBroker.getJndiPasConnection(new StandardJndiImplementation(), false, queueName, topicName);
jmsCon.setConnectionAttempts(null);
MockChannel channel = createChannel(activeMqBroker, jmsCon, topicName);
try {
channel.requestStart();
assertEquals(StartedState.getInstance(), channel.retrieveComponentState());
activeMqBroker.stop();
// Give the ErrorHandler time to check that it's stopped
Thread.sleep(1000);
activeMqBroker.start();
waitForChannelToMatchState(StartedState.getInstance(), channel);
assertEquals(StartedState.getInstance(), channel.retrieveComponentState());
} finally {
channel.requestClose();
}
}
use of com.adaptris.core.jms.JmsConnection in project interlok by adaptris.
the class BasicActiveMqProducerTest method testQueueProduceAndConsumeWithSecurity_EncryptedPassword.
@Test
public void testQueueProduceAndConsumeWithSecurity_EncryptedPassword() throws Exception {
RequiresCredentialsBroker broker = new RequiresCredentialsBroker();
try {
broker.start();
PtpConsumer consumer = new PtpConsumer().withQueue(RequiresCredentialsBroker.DEFAULT_PREFIX + "queue");
consumer.setAcknowledgeMode("AUTO_ACKNOWLEDGE");
JmsConnection conn = broker.getJmsConnection(createVendorImpl(), true);
conn.setUserName(RequiresCredentialsBroker.DEFAULT_USERNAME);
conn.setPassword(Password.encode(RequiresCredentialsBroker.DEFAULT_PASSWORD, Password.PORTABLE_PASSWORD));
StandaloneConsumer standaloneConsumer = new StandaloneConsumer(conn, consumer);
MockMessageListener jms = new MockMessageListener();
standaloneConsumer.registerAdaptrisMessageListener(jms);
conn = broker.getJmsConnection(createVendorImpl());
conn.setUserName(RequiresCredentialsBroker.DEFAULT_USERNAME);
conn.setPassword(RequiresCredentialsBroker.DEFAULT_PASSWORD);
StandaloneProducer standaloneProducer = new StandaloneProducer(conn, new PtpProducer().withQueue((RequiresCredentialsBroker.DEFAULT_PREFIX + "queue")));
execute(standaloneConsumer, standaloneProducer, createMessage(), jms);
assertMessages(jms, 1);
} finally {
broker.destroy();
}
}
use of com.adaptris.core.jms.JmsConnection in project interlok by adaptris.
the class BasicActiveMqProducerTest method testQueueProduceAndConsumeWithSecurity.
@Test
public void testQueueProduceAndConsumeWithSecurity() throws Exception {
RequiresCredentialsBroker broker = new RequiresCredentialsBroker();
try {
broker.start();
PtpConsumer consumer = new PtpConsumer().withQueue(RequiresCredentialsBroker.DEFAULT_PREFIX + "queue");
consumer.setAcknowledgeMode("AUTO_ACKNOWLEDGE");
JmsConnection conn = broker.getJmsConnection(createVendorImpl(), true);
conn.setUserName(RequiresCredentialsBroker.DEFAULT_USERNAME);
conn.setPassword(RequiresCredentialsBroker.DEFAULT_PASSWORD);
StandaloneConsumer standaloneConsumer = new StandaloneConsumer(conn, consumer);
MockMessageListener jms = new MockMessageListener();
standaloneConsumer.registerAdaptrisMessageListener(jms);
conn = broker.getJmsConnection(createVendorImpl());
conn.setUserName(RequiresCredentialsBroker.DEFAULT_USERNAME);
conn.setPassword(RequiresCredentialsBroker.DEFAULT_PASSWORD);
StandaloneProducer standaloneProducer = new StandaloneProducer(conn, new PtpProducer().withQueue((RequiresCredentialsBroker.DEFAULT_PREFIX + "queue")));
execute(standaloneConsumer, standaloneProducer, createMessage(), jms);
assertMessages(jms, 1);
} finally {
broker.destroy();
}
}
use of com.adaptris.core.jms.JmsConnection in project interlok by adaptris.
the class BlobMessageTranslatorTest method testBug895.
@Test
public void testBug895() throws Exception {
MessageTypeTranslatorImp trans = new BlobMessageTranslator();
JmsConnection conn = null;
try {
conn = activeMqBroker.getJmsConnection(new BasicActiveMqImplementation());
start(conn);
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage();
msg.addMetadata(JmsConstants.JMS_PRIORITY, "9");
msg.addMetadata(JmsConstants.JMS_TYPE, "idaho");
Session session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
trans.setMoveJmsHeaders(true);
trans.registerSession(session);
trans.registerMessageFactory(new DefaultMessageFactory());
start(trans);
Message jmsMsg = trans.translate(msg);
assertNotSame("JMS Priorities should be different", jmsMsg.getJMSPriority(), 9);
assertEquals("JMSType should be equal", "idaho", jmsMsg.getJMSType());
} finally {
stop(trans);
stop(conn);
}
}
Aggregations