org.apache.camel
Interface AsyncProcessor

All Superinterfaces:
Processor
All Known Subinterfaces:
Channel, LoadBalancer
All Known Implementing Classes:
AOPProcessor, BeanProcessor, CatchProcessor, ChoiceProcessor, CollectionProducer, CxfProducer, DeadLetterChannel, DefaultAsyncProducer, DefaultChannel, DefaultErrorHandler, Delayer, DelayInterceptor, DelayProcessorSupport, DelegateAsyncProcessor, DirectProducer, DynamicRouter, Enricher, FailOverLoadBalancer, FailoverLoadBalancerDefinition, FilterProcessor, HandleFaultInterceptor, IdempotentConsumer, InstrumentationProcessor, InterceptEndpointProcessor, InterceptorToAsyncProcessorBridge, JettyHttpProducer, JmsProducer, LoadBalancerDefinition, LoadBalancerSupport, LoggingErrorHandler, LoopProcessor, MulticastProcessor, NettyProducer, Pipeline, QueueLoadBalancer, RandomLoadBalancer, RandomLoadBalancerDefinition, RecipientList, RecipientListProcessor, RedeliveryErrorHandler, RoundRobinLoadBalancer, RoundRobinLoadBalancerDefinition, RoutePolicyProcessor, RoutingSlip, SamplingThrottler, SedaProducer, SendProcessor, SimpleLoadBalancerSupport, Splitter, StickyLoadBalancer, StickyLoadBalancerDefinition, StreamCachingInterceptor, ThreadsProcessor, Throttler, TopicLoadBalancer, TopicLoadBalancerDefinition, TraceInterceptor, TransactionErrorHandler, TryProcessor, UnitOfWorkProcessor, WeightedLoadBalancer, WeightedLoadBalancerDefinition, WeightedRandomLoadBalancer, WeightedRoundRobinLoadBalancer, WireTapProcessor, WrapProcessor

public interface AsyncProcessor
extends Processor

An asynchronous processor which can process an Exchange in an asynchronous fashion and signal completion by invoking the AsyncCallback.

Any processor can be coerced to have an AsyncProcessor interface by using the AsyncProcessorTypeConverter.covert method.

Important: Use the AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) method to invoke the process method, which ensure Camel have a chance to interweave and invoke it in a reliable manner. For example when using transactions all the invocations has to occur in synchronous manner to ensure the transaction work is done in the same thread, which is required by Spring TransactionManager.

Version:
$Revision: 21585 $

Method Summary
 boolean process(Exchange exchange, AsyncCallback callback)
          Processes the message exchange.
 
Methods inherited from interface org.apache.camel.Processor
process
 

Method Detail

process

boolean process(Exchange exchange,
                AsyncCallback callback)
Processes the message exchange. Similar to Processor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.

If there was a failure processing then the caused Exception would be set on the Exchange.

Parameters:
exchange - the message exchange
callback - the AsyncCallback will be invoked when the processing of the exchange is completed. If the exchange is completed synchronously, then the callback is also invoked synchronously. The callback should therefore be careful of starting recursive loop.
Returns:
(doneSync) true to continue execute synchronously, false to continue being executed asynchronously
See Also:
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)


Apache CAMEL