use of com.adaptris.core.services.aggregator.AppendingMessageAggregator in project interlok by adaptris.
the class PooledSplitJoinServiceTest method testService_Events.
@Test
public void testService_Events() throws Exception {
PooledSplitJoinService service = new PooledSplitJoinService();
MockMessageProducer events = new MockMessageProducer();
service.setAggregator(new AppendingMessageAggregator());
service.setSplitter(new LineCountSplitter(1));
service.setPoolsize(10);
service.setTimeout(new TimeInterval(10L, TimeUnit.SECONDS));
service.setService(new WaitService(new TimeInterval(100L, TimeUnit.MILLISECONDS), true));
service.setSendEvents(true);
service.registerEventHandler(LifecycleHelper.initAndStart(new DefaultEventHandler(events)));
AdaptrisMessage msg = createLineCountMessageInput(50);
ExampleServiceCase.execute(service, msg);
List<String> result = IOUtils.readLines(msg.getReader());
// Using an appending message aggregator just means that we double up on the original message...
assertEquals(50 * 2, result.size());
// Check we got 50 events.
assertEquals(50, events.getMessages().size());
}
use of com.adaptris.core.services.aggregator.AppendingMessageAggregator in project interlok by adaptris.
the class PooledSplitJoinServiceTest method testTimeout.
@Test(expected = ServiceException.class)
public void testTimeout() throws Exception {
PooledSplitJoinService service = new PooledSplitJoinService();
service.setAggregator(new AppendingMessageAggregator());
service.setSplitter(new LineCountSplitter(1));
service.setPoolsize(10);
service.setTimeout(new TimeInterval(50L, TimeUnit.MILLISECONDS));
service.setService(new WaitService(new TimeInterval(100L, TimeUnit.MILLISECONDS), false));
service.setSendEvents(true);
AdaptrisMessage msg = createLineCountMessageInput(50);
try {
ExampleServiceCase.execute(service, msg);
} catch (ServiceException e) {
// This will be a RuntimeException (from hasNext()?) that wraps a TimeoutException
// That's in turn wrapped by a ServiceException.
assertNotNull(e.getCause().getCause());
throw e;
}
}
use of com.adaptris.core.services.aggregator.AppendingMessageAggregator in project interlok by adaptris.
the class PooledSplitJoinServiceTest method testService_DidSomeWork.
@Test
public void testService_DidSomeWork() throws Exception {
PooledSplitJoinService service = new PooledSplitJoinService();
service.setServiceErrorHandler(new NoExceptionIfWorkDone().withMetadataKey(NoExceptionIfWorkDone.DEFAULT_METADATA_KEY));
service.setSplitter(new LineCountSplitter(1));
service.setService(asCollection(new MockExceptionStrategyService(MockExceptionStrategyService.MODE.MIXED)));
service.setPoolsize(10);
service.setTimeout(new TimeInterval(5L, TimeUnit.SECONDS));
service.setAggregator(new AppendingMessageAggregator());
service.registerEventHandler(LifecycleHelper.initAndStart(new DefaultEventHandler()));
AdaptrisMessage msg = createLineCountMessageInput(50);
execute(service, msg);
List<String> result = IOUtils.readLines(msg.getReader());
// Using an appending message aggregator just means that we double up on the original message...
// Since we aren't doing any filtering... then we will always get 100 msgs.
assertEquals(50 * 2, result.size());
}
Aggregations