/**
*
*/
package camelinaction;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.DelegateAsyncProcessor;
import org.apache.camel.spi.InterceptStrategy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A custom interceptor that logs before and after invoking a Camel {@link Processor}
*/
public class MyInterceptor implements InterceptStrategy {
private static final Logger LOG = LoggerFactory.getLogger(MyInterceptor.class);
public Processor wrapProcessorInInterceptors(CamelContext context,
ProcessorDefinition<?> definition, final Processor target,
Processor nextTarget) throws Exception {
return new DelegateAsyncProcessor(new Processor() {
public void process(Exchange exchange) throws Exception {
LOG.info("Before the processor...");
target.process(exchange);
LOG.info("After the processor...");
}
});
}
}