use of com.adaptris.core.jms.JmsTransactedWorkflow in project interlok by adaptris.
the class ActiveMqJmsTransactedWorkflowTest method testMessagesCommittedUsingTopic.
@Test
public void testMessagesCommittedUsingTopic() throws Exception {
int msgCount = 10;
String destination = createSafeUniqueId(new Object());
Channel channel = createStartableChannel(activeMqBroker, false, "testMessagesCommittedUsingTopic", destination);
JmsTransactedWorkflow workflow = (JmsTransactedWorkflow) channel.getWorkflowList().get(0);
try {
channel.requestStart();
StandaloneProducer sender = new StandaloneProducer(activeMqBroker.getJmsConnection(), new PasProducer().withTopic(destination));
send(sender, msgCount);
waitForMessages((MockMessageProducer) workflow.getProducer(), msgCount);
assertEquals(msgCount, ((MockMessageProducer) workflow.getProducer()).getMessages().size());
} finally {
channel.requestClose();
}
}
use of com.adaptris.core.jms.JmsTransactedWorkflow in project interlok by adaptris.
the class ActiveMqJmsTransactedWorkflowTest method createPollingWorkflow.
private JmsTransactedWorkflow createPollingWorkflow(EmbeddedActiveMq mq, String threadName, String target) throws CoreException {
JmsTransactedWorkflow workflow = new JmsTransactedWorkflow();
workflow.setProducer(new MockMessageProducer());
workflow.setWaitPeriodAfterRollback(new TimeInterval(10L, TimeUnit.MILLISECONDS.name()));
JmsPollingConsumerImpl jmsCons = new PtpPollingConsumer().withQueue(target);
jmsCons.setReacquireLockBetweenMessages(true);
jmsCons.setAdditionalDebug(true);
jmsCons.setPoller(new FixedIntervalPoller(new TimeInterval(2L, TimeUnit.SECONDS)));
BasicActiveMqImplementation vendorImpl = new BasicActiveMqImplementation();
JmsConnection jmsConn = mq.getJmsConnection(vendorImpl, true);
jmsCons.setVendorImplementation(jmsConn.getVendorImplementation());
jmsCons.setMessageTranslator(new TextMessageTranslator().withMoveJmsHeaders(true));
jmsCons.setClientId(jmsConn.getClientId());
workflow.setConsumer(jmsCons);
return workflow;
}
use of com.adaptris.core.jms.JmsTransactedWorkflow in project interlok by adaptris.
the class ActiveMqJmsTransactedWorkflowTest method testProduceException.
@Test
public void testProduceException() throws Exception {
int msgCount = 10;
String destination = createSafeUniqueId(new Object());
Channel channel = createStartableChannel(activeMqBroker, true, "testProduceException", destination);
JmsTransactedWorkflow workflow = (JmsTransactedWorkflow) channel.getWorkflowList().get(0);
workflow.setProducer(new MockMessageProducer() {
@Override
protected void doProduce(AdaptrisMessage msg, String endpoint) throws ProduceException {
throw new ProduceException();
}
});
try {
channel.requestStart();
StandaloneProducer sender = new StandaloneProducer(activeMqBroker.getJmsConnection(), new PtpProducer().withQueue((destination)));
send(sender, msgCount);
} finally {
channel.requestClose();
}
assertEquals(msgCount, activeMqBroker.messagesOnQueue(destination));
}
use of com.adaptris.core.jms.JmsTransactedWorkflow in project interlok by adaptris.
the class ActiveMqJmsTransactedWorkflowTest method testWorkflowWithInterceptor.
@Test
public void testWorkflowWithInterceptor() throws Exception {
int msgCount = 10;
String destination = createSafeUniqueId(new Object());
Channel channel = createStartableChannel(activeMqBroker, false, "testMessagesCommittedUsingTopic", destination);
JmsTransactedWorkflow workflow = (JmsTransactedWorkflow) channel.getWorkflowList().get(0);
MockWorkflowInterceptor interceptor = new MockWorkflowInterceptor();
workflow.addInterceptor(interceptor);
try {
channel.requestStart();
StandaloneProducer sender = new StandaloneProducer(activeMqBroker.getJmsConnection(), new PasProducer().withTopic(destination));
send(sender, msgCount);
waitForMessages((MockMessageProducer) workflow.getProducer(), msgCount);
assertEquals(msgCount, ((MockMessageProducer) workflow.getProducer()).getMessages().size());
assertEquals(msgCount, interceptor.messageCount());
} finally {
channel.requestClose();
}
}
use of com.adaptris.core.jms.JmsTransactedWorkflow in project interlok by adaptris.
the class ActiveMqJmsTransactedWorkflowTest method testMessagesOrderedUsingTopic.
@Test
public void testMessagesOrderedUsingTopic() throws Exception {
int msgCount = 10;
String destination = createSafeUniqueId(new Object());
Channel channel = createStartableChannel(activeMqBroker, false, "testMessagesOrderedUsingTopic", destination);
JmsTransactedWorkflow workflow = (JmsTransactedWorkflow) channel.getWorkflowList().get(0);
workflow.getServiceCollection().addService(new RandomlyFail());
try {
channel.requestStart();
StandaloneProducer sender = new StandaloneProducer(activeMqBroker.getJmsConnection(), new PasProducer().withTopic(destination));
start(sender);
for (int i = 0; i < msgCount; i++) {
sender.doService(AdaptrisMessageFactory.getDefaultInstance().newMessage("" + i));
}
stop(sender);
waitForMessages((MockMessageProducer) workflow.getProducer(), msgCount);
List<AdaptrisMessage> receivedList = ((MockMessageProducer) workflow.getProducer()).getMessages();
assertEquals(msgCount, receivedList.size());
for (int i = 0; i < msgCount; i++) {
assertEquals(String.valueOf(i), receivedList.get(i).getContent());
}
} finally {
channel.requestClose();
}
}
Aggregations