use of org.apache.camel.Processor in project camel by apache.
the class SetHeaderInDoCatchIssueTest method createRegistry.
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = new JndiRegistry(createJndiContext());
registry.bind("A", new Processor() {
public void process(Exchange exchange) throws Exception {
log.info("A headers " + exchange.getIn().getHeaders());
}
});
registry.bind("B", new Processor() {
public void process(Exchange exchange) throws Exception {
log.info("B headers " + exchange.getIn().getHeaders());
if ("ExchangeTimedOutException".equals(exchange.getIn().getBody(String.class))) {
throw new ExchangeTimedOutException(exchange, 1);
} else if ("Exception".equals(exchange.getIn().getBody(String.class))) {
throw new Exception();
}
}
});
registry.bind("C", new Processor() {
public void process(Exchange exchange) throws Exception {
log.info("C headers " + exchange.getIn().getHeaders());
}
});
return registry;
}
use of org.apache.camel.Processor in project camel by apache.
the class SetHeaderInDoCatchIssueTest method testExchangeTimedOutException.
public void testExchangeTimedOutException() {
Exchange exchange = template.request("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.getIn().setBody("ExchangeTimedOutException");
}
});
assertEquals("TimeOut", exchange.getOut().getHeader("Status"));
}
use of org.apache.camel.Processor in project camel by apache.
the class SplitStopOnExceptionIssueTest method testSplit.
public void testSplit() throws Exception {
getMockEndpoint("mock:line").expectedBodiesReceived("Hello", "World", "Kaboom");
getMockEndpoint("mock:line").allMessages().exchangeProperty("foo").isEqualTo("changed");
getMockEndpoint("mock:result").expectedMessageCount(0);
Exchange out = template.request("direct:start", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setBody("Hello,World,Kaboom");
}
});
assertNotNull(out);
assertTrue(out.isFailed());
assertFalse(out.hasOut());
// when we use stopOnException the exchange should not be affected during the splitter
// eg the foo property should have the before value
assertEquals("before", out.getProperty("foo"));
assertEquals("Hello,World,Kaboom", out.getIn().getBody());
IllegalArgumentException iae = out.getException(IllegalArgumentException.class);
assertNotNull(iae);
assertEquals("Forced exception", iae.getMessage());
assertMockEndpointsSatisfied();
}
use of org.apache.camel.Processor in project camel by apache.
the class MulticastWithOnExceptionIssueTest method testEnd1FailureTest.
public void testEnd1FailureTest() throws Exception {
MockEndpoint end1 = getMockEndpoint("mock:end1");
end1.whenAnyExchangeReceived(new Processor() {
public void process(Exchange exchange) throws Exception {
throw new RuntimeException("Simulated Exception");
}
});
getMockEndpoint("mock:end2").expectedMessageCount(1);
getMockEndpoint("mock:end3").expectedMessageCount(0);
getMockEndpoint("mock:end4").expectedMessageCount(1);
String result = template.requestBody("direct:start", "Hello World!", String.class);
assertEquals("Stop!", result);
assertMockEndpointsSatisfied();
}
use of org.apache.camel.Processor in project camel by apache.
the class OnExceptionContinuedIssueTest method testOnExceptionWrappedMatch.
@Test
public void testOnExceptionWrappedMatch() throws Exception {
final DefaultErrorHandlerBuilder defaultErrorHandlerBuilder = new DeadLetterChannelBuilder("direct:dead");
// run fast
defaultErrorHandlerBuilder.redeliveryDelay(0);
defaultErrorHandlerBuilder.maximumRedeliveries(2);
context.setErrorHandlerBuilder(defaultErrorHandlerBuilder);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
context.setTracing(false);
onException(OrderFailedException.class).maximumRedeliveries(0).continued(true);
from("direct:dead").to("log:dead", "mock:dead");
from("direct:order").to("mock:one").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("First Processor Invoked");
throw new OrderFailedException("First Processor Failure");
}
}).to("mock:two").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Second Processor Invoked");
}
}).to("mock:three").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Third Processor Invoked");
throw new RuntimeException("Some Runtime Exception");
}
}).to("mock:four").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Fourth Processor Invoked");
}
});
}
});
context.start();
// we should only get 1 to the DLC when we hit the 3rd route that
// throws the runtime exception
getMockEndpoint("mock:dead").expectedMessageCount(1);
getMockEndpoint("mock:one").expectedMessageCount(1);
getMockEndpoint("mock:two").expectedMessageCount(1);
getMockEndpoint("mock:three").expectedMessageCount(1);
getMockEndpoint("mock:four").expectedMessageCount(0);
template.requestBody("direct:order", "Camel in Action");
assertMockEndpointsSatisfied();
}
Aggregations