public class ProducerCache extends ServiceSupport
Producer
.shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
Constructor and Description |
---|
ProducerCache(Object source,
CamelContext camelContext) |
ProducerCache(Object source,
CamelContext camelContext,
int cacheSize) |
ProducerCache(Object source,
CamelContext camelContext,
Map<String,Producer> cache) |
ProducerCache(Object source,
CamelContext camelContext,
ServicePool<Endpoint,Producer> producerServicePool,
Map<String,Producer> cache) |
Modifier and Type | Method and Description |
---|---|
Producer |
acquireProducer(Endpoint endpoint)
Acquires a pooled producer which you must release back again after usage using the
releaseProducer(org.apache.camel.Endpoint, org.apache.camel.Producer) method. |
protected static LRUCache<String,Producer> |
createLRUCache(int cacheSize)
Creates the
LRUCache to be used. |
protected Producer |
doGetProducer(Endpoint endpoint,
boolean pooled) |
boolean |
doInAsyncProducer(Endpoint endpoint,
Exchange exchange,
ExchangePattern pattern,
AsyncCallback callback,
AsyncProducerCallback producerCallback)
Sends an exchange to an endpoint using a supplied callback supporting the asynchronous routing engine.
|
<T> T |
doInProducer(Endpoint endpoint,
Exchange exchange,
ExchangePattern pattern,
ProducerCallback<T> callback)
Sends an exchange to an endpoint using a supplied callback, using the synchronous processing.
|
protected void |
doStart()
Implementations override this method to support customized start/stop.
|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
CamelContext |
getCamelContext() |
int |
getCapacity()
Gets the maximum cache size (capacity).
|
long |
getEvicted()
Gets the cache evicted statistic
Will return -1 if it cannot determine this if a custom cache was used.
|
long |
getHits()
Gets the cache hits statistic
Will return -1 if it cannot determine this if a custom cache was used.
|
long |
getMisses()
Gets the cache misses statistic
Will return -1 if it cannot determine this if a custom cache was used.
|
Object |
getSource()
Gets the source which uses this cache
|
void |
purge()
Purges this cache
|
void |
releaseProducer(Endpoint endpoint,
Producer producer)
Releases an acquired producer back after usage.
|
void |
resetCacheStatistics()
Resets the cache statistics
|
void |
send(Endpoint endpoint,
Exchange exchange)
Sends the exchange to the given endpoint.
|
Exchange |
send(Endpoint endpoint,
ExchangePattern pattern,
Processor processor)
Sends an exchange to an endpoint using a supplied
Processor to populate the exchange |
Exchange |
send(Endpoint endpoint,
Processor processor)
Sends an exchange to an endpoint using a supplied
Processor to populate the exchange |
protected Exchange |
sendExchange(Endpoint endpoint,
ExchangePattern pattern,
Processor processor,
Exchange exchange) |
int |
size()
Returns the current size of the cache
|
void |
startProducer(Endpoint endpoint)
|
String |
toString() |
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
public ProducerCache(Object source, CamelContext camelContext)
public ProducerCache(Object source, CamelContext camelContext, int cacheSize)
public ProducerCache(Object source, CamelContext camelContext, Map<String,Producer> cache)
public ProducerCache(Object source, CamelContext camelContext, ServicePool<Endpoint,Producer> producerServicePool, Map<String,Producer> cache)
protected static LRUCache<String,Producer> createLRUCache(int cacheSize)
cacheSize
- the cache sizepublic CamelContext getCamelContext()
public Object getSource()
public Producer acquireProducer(Endpoint endpoint)
releaseProducer(org.apache.camel.Endpoint, org.apache.camel.Producer)
method.endpoint
- the endpointpublic void releaseProducer(Endpoint endpoint, Producer producer) throws Exception
endpoint
- the endpointproducer
- the producer to releaseException
- can be thrown if error stopping producer if that was needed.public void send(Endpoint endpoint, Exchange exchange)
This method will not throw an exception. If processing of the given Exchange failed then the exception is stored on the provided Exchange
endpoint
- the endpoint to send the exchange toexchange
- the exchange to sendpublic Exchange send(Endpoint endpoint, Processor processor)
Processor
to populate the exchange
This method will not throw an exception. If processing of the given Exchange failed then the exception is stored on the return Exchange
endpoint
- the endpoint to send the exchange toprocessor
- the transformer used to populate the new exchangeCamelExecutionException
- is thrown if sending failedpublic Exchange send(Endpoint endpoint, ExchangePattern pattern, Processor processor)
Processor
to populate the exchange
This method will not throw an exception. If processing of the given Exchange failed then the exception is stored on the return Exchange
endpoint
- the endpoint to send the exchange topattern
- the message ExchangePattern
such as
ExchangePattern.InOnly
or ExchangePattern.InOut
processor
- the transformer used to populate the new exchangepublic <T> T doInProducer(Endpoint endpoint, Exchange exchange, ExchangePattern pattern, ProducerCallback<T> callback)
endpoint
- the endpoint to send the exchange toexchange
- the exchange, can be null if so then create a new exchange from the producerpattern
- the exchange pattern, can be nullcallback
- the callbackdoInAsyncProducer(org.apache.camel.Endpoint, org.apache.camel.Exchange, org.apache.camel.ExchangePattern, org.apache.camel.AsyncCallback, org.apache.camel.AsyncProducerCallback)
public boolean doInAsyncProducer(Endpoint endpoint, Exchange exchange, ExchangePattern pattern, AsyncCallback callback, AsyncProducerCallback producerCallback)
endpoint
- the endpoint to send the exchange toexchange
- the exchange, can be null if so then create a new exchange from the producerpattern
- the exchange pattern, can be nullcallback
- the asynchronous callbackproducerCallback
- the producer template callback to be executedprotected Exchange sendExchange(Endpoint endpoint, ExchangePattern pattern, Processor processor, Exchange exchange)
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 int size()
public int getCapacity()
public long getHits()
public long getMisses()
public long getEvicted()
public void resetCacheStatistics()
public void purge()
Apache Camel