public class DeferProducer extends ServiceSupport implements Producer, AsyncProcessor
Producer
that defers being started, until CamelContext
has been started, this
ensures that the producer is able to adapt to changes that may otherwise occur during starting
CamelContext. If we do not defer starting the producer it may not adapt to those changes, and
send messages to wrong endpoints.shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
Constructor and Description |
---|
DeferProducer(Endpoint endpoint) |
Modifier and Type | Method and Description |
---|---|
Exchange |
createExchange()
Creates a new exchange to send to this endpoint
|
Exchange |
createExchange(Exchange exchange)
Deprecated.
|
Exchange |
createExchange(ExchangePattern pattern)
Creates a new exchange of the given pattern to send to this endpoint
|
protected void |
doStart()
Implementations override this method to support customized start/stop.
|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
Endpoint |
getEndpoint()
Gets the endpoint associated with an object.
|
boolean |
isSingleton()
Whether this class supports being singleton or not.
|
void |
process(Exchange exchange)
Processes the message exchange
|
boolean |
process(Exchange exchange,
AsyncCallback callback)
Processes the message exchange.
|
String |
toString() |
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
public DeferProducer(Endpoint endpoint)
public Exchange createExchange()
Producer
createExchange
in interface Producer
public Exchange createExchange(ExchangePattern pattern)
Producer
createExchange
in interface Producer
pattern
- the exchange pattern@Deprecated public Exchange createExchange(Exchange exchange)
Producer
createExchange
in interface Producer
exchange
- the existing exchangepublic void process(Exchange exchange) throws Exception
Processor
public boolean process(Exchange exchange, AsyncCallback callback)
AsyncProcessor
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
.process
in interface AsyncProcessor
exchange
- the message exchangecallback
- 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.protected void doStart() throws Exception
ServiceSupport
ServiceSupport.doStop()
for more details.doStart
in class ServiceSupport
Exception
ServiceSupport.doStop()
protected void doStop() throws Exception
ServiceSupport
ServiceSupport.doStop()
method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext
is shutting down.doStop
in class ServiceSupport
Exception
ServiceSupport.doStart()
public boolean isSingleton()
IsSingleton
isSingleton
in interface IsSingleton
public Endpoint getEndpoint()
EndpointAware
Producer
or for consuming from for components like Consumer
or Route
getEndpoint
in interface EndpointAware
Apache Camel