Interface Consumer

All Superinterfaces:
AutoCloseable, EndpointAware, Service
All Known Subinterfaces:
BatchConsumer, DynamicPollingConsumer, PollingConsumer

public interface Consumer extends Service, EndpointAware
A service that receives messages from an Endpoint and routes them as Exchanges through the Camel processing pipeline.

Consumers are created by calling Endpoint.createConsumer(Processor) and participate in the Camel lifecycle as Services. For endpoints that require a dedicated polling loop, see PollingConsumer; for endpoints that deliver messages in batches, see BatchConsumer.

Important: Do not do any initialization in the constructor. Instead use BaseService.doInit() or BaseService.doStart().

See Also:
  • Method Details

    • getProcessor

      Processor getProcessor()
      The processor that will process the Exchange that was consumed.
    • createExchange

      Exchange createExchange(boolean autoRelease)
      Creates an Exchange that was consumed.

      Important: If the auto release parameter is set to false then the consumer is responsible for calling the releaseExchange(Exchange, boolean) when the Exchange is done being routed. This is for advanced consumers that need to have this control in their own hands. For normal use-cases then a consumer can use autoRelease true and then Camel will automatic release the exchange after routing.

      Parameters:
      autoRelease - whether to auto release the exchange when routing is complete via UnitOfWork
    • releaseExchange

      void releaseExchange(Exchange exchange, boolean autoRelease)
      Releases the Exchange when its completed processing and no longer needed.
      Parameters:
      exchange - the exchange
      autoRelease - whether the exchange was created with auto release
    • defaultConsumerCallback

      default @Nullable AsyncCallback defaultConsumerCallback(Exchange exchange, boolean autoRelease)
      The default callback to use with the consumer when calling the processor using asynchronous routing. This implementation will use ExceptionHandler to handle any exception on the exchange and afterwards release the exchange.
      Parameters:
      exchange - the exchange
      autoRelease - whether the exchange was created with auto release
      Returns:
      the default callback