Skip to content

Commit

Permalink
Optimise - Fix log component to be async routing friendly.
Browse files Browse the repository at this point in the history
  • Loading branch information
davsclaus committed Jun 1, 2017
1 parent 661f6f3 commit 043b3bd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
Expand Up @@ -17,32 +17,27 @@
package org.apache.camel.component.log; package org.apache.camel.component.log;


import org.apache.camel.AsyncCallback; import org.apache.camel.AsyncCallback;
import org.apache.camel.AsyncProcessor;
import org.apache.camel.Endpoint; import org.apache.camel.Endpoint;
import org.apache.camel.Exchange; import org.apache.camel.Exchange;
import org.apache.camel.Processor; import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultAsyncProducer; import org.apache.camel.impl.DefaultAsyncProducer;
import org.apache.camel.util.AsyncProcessorConverterHelper;


/** /**
* Log producer. * Log producer.
*/ */
public class LogProducer extends DefaultAsyncProducer { public class LogProducer extends DefaultAsyncProducer {


private final Processor logger; private final AsyncProcessor logger;


public LogProducer(Endpoint endpoint, Processor logger) { public LogProducer(Endpoint endpoint, Processor logger) {
super(endpoint); super(endpoint);
this.logger = logger; this.logger = AsyncProcessorConverterHelper.convert(logger);
} }


public boolean process(Exchange exchange, AsyncCallback callback) { public boolean process(Exchange exchange, AsyncCallback callback) {
try { return logger.process(exchange, callback);
logger.process(exchange);
} catch (Exception e) {
exchange.setException(e);
} finally {
callback.done(true);
}
return true;
} }


public Processor getLogger() { public Processor getLogger() {
Expand Down
Expand Up @@ -16,6 +16,7 @@
*/ */
package org.apache.camel.component.log; package org.apache.camel.component.log;


import org.apache.camel.AsyncCallback;
import org.apache.camel.ContextTestSupport; import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange; import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder; import org.apache.camel.builder.RouteBuilder;
Expand All @@ -32,9 +33,9 @@ public class LogEndpointTest extends ContextTestSupport {
private static class MyLogger extends CamelLogProcessor { private static class MyLogger extends CamelLogProcessor {


@Override @Override
public void process(Exchange exchange) throws Exception { public boolean process(Exchange exchange, AsyncCallback callback) {
super.process(exchange);
logged = exchange; logged = exchange;
return super.process(exchange, callback);
} }


@Override @Override
Expand Down

0 comments on commit 043b3bd

Please sign in to comment.