You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/06/19 06:35:14 UTC
svn commit: r1351568 - in
/camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus:
CamelEventHandler.java GuavaEventBusConsumer.java
Author: davsclaus
Date: Tue Jun 19 04:35:14 2012
New Revision: 1351568
URL: http://svn.apache.org/viewvc?rev=1351568&view=rev
Log:
CAMEL-5341: Supports the async routing engine.
Modified:
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/CamelEventHandler.java
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumer.java
Modified: camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/CamelEventHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/CamelEventHandler.java?rev=1351568&r1=1351567&r2=1351568&view=diff
==============================================================================
--- camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/CamelEventHandler.java (original)
+++ camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/CamelEventHandler.java Tue Jun 19 04:35:14 2012
@@ -17,7 +17,11 @@
package org.apache.camel.component.guava.eventbus;
import com.google.common.eventbus.Subscribe;
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.AsyncProcessor;
+import org.apache.camel.Exchange;
import org.apache.camel.Processor;
+import org.apache.camel.util.AsyncProcessorConverterHelper;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,15 +34,15 @@ public class CamelEventHandler {
private static final transient Logger LOG = LoggerFactory.getLogger(CamelEventHandler.class);
private final GuavaEventBusEndpoint eventBusEndpoint;
- private final Processor consumerProcessor;
+ private final AsyncProcessor processor;
private final Class<?> eventClass;
- public CamelEventHandler(GuavaEventBusEndpoint eventBusEndpoint, Processor consumerProcessor, Class<?> eventClass) {
+ public CamelEventHandler(GuavaEventBusEndpoint eventBusEndpoint, Processor processor, Class<?> eventClass) {
ObjectHelper.notNull(eventBusEndpoint, "eventBusEndpoint");
- ObjectHelper.notNull(consumerProcessor, "consumerProcessor");
+ ObjectHelper.notNull(processor, "processor");
this.eventBusEndpoint = eventBusEndpoint;
- this.consumerProcessor = consumerProcessor;
+ this.processor = AsyncProcessorConverterHelper.convert(processor);
this.eventClass = eventClass;
}
@@ -51,8 +55,15 @@ public class CamelEventHandler {
public void eventReceived(Object event) throws Exception {
LOG.trace("Received event: {}");
if (eventClass == null || eventClass.isAssignableFrom(event.getClass())) {
+ final Exchange exchange = eventBusEndpoint.createExchange(event);
LOG.debug("Processing event: {}", event);
- consumerProcessor.process(eventBusEndpoint.createExchange(event));
+ // use async processor to support async routing engine
+ processor.process(exchange, new AsyncCallback() {
+ @Override
+ public void done(boolean doneSync) {
+ // noop
+ }
+ });
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("Cannot process event: {} as its class type: {} is not assignable with: {}",
Modified: camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumer.java?rev=1351568&r1=1351567&r2=1351568&view=diff
==============================================================================
--- camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumer.java (original)
+++ camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumer.java Tue Jun 19 04:35:14 2012
@@ -17,7 +17,6 @@
package org.apache.camel.component.guava.eventbus;
import com.google.common.eventbus.EventBus;
-import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultConsumer;
@@ -26,10 +25,10 @@ public class GuavaEventBusConsumer exten
private final EventBus eventBus;
private final CamelEventHandler eventHandler;
- public GuavaEventBusConsumer(Endpoint endpoint, Processor processor, EventBus eventBus, Class<?> eventClass) {
+ public GuavaEventBusConsumer(GuavaEventBusEndpoint endpoint, Processor processor, EventBus eventBus, Class<?> eventClass) {
super(endpoint, processor);
this.eventBus = eventBus;
- this.eventHandler = new CamelEventHandler((GuavaEventBusEndpoint)endpoint, processor, eventClass);
+ this.eventHandler = new CamelEventHandler(endpoint, processor, eventClass);
}
@Override