[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using ExecutorService from JEE server

Hi Darius,
you need to implement ExecutorServiceManager[1] interface and delegate
to ExecutorService you looked up in Liberty and set that
implementation on CamelContext via setExecutorServiceManager[2]
method. If you're using Camel Spring XML support and
ExecutorServiceManager is available in the Spring application context
it will be picked up automatically[3].

This does not happen if you're using Camel support for Spring Boot
auto configuration. I've created CAMEL-12482[4] to make this on par in
Spring Boot support.

As a workaround you can invoke CamelContext::setExecutorServiceManager
as a part of your initialization. Also make note that certain
components use their own thread pools and will need additional
configuration depending on the component.


On Fri, May 4, 2018 at 5:27 AM, Darius Cooper <dariuscooper@xxxxxxxxx> wrote:
> The Camel In Action book says: "When you need to use a different thread
> pool provider (for example, a provider from a Java EE server), you can
> create a custom ExecutorServiceManager to work with the provider. "
> On IBM Liberty, by turning on the feature "concurrent/1.0" one can get an
> ExecutorService. I would like to use this ExecutorService.
> My understanding is that I can create a ThreadPoolFacotory that wraps this
> ExecutorService.
> As long as that ThreadPoolFactory is a Spring bean, Camel will find it and
> use it as the default.
> Is that correct? It does not appear to use the ExecutorService from
> Liberty. Does does it have to be set explicitly on the Camel context?

[1] https://github.com/apache/camel/blob/03e57c355f5ddeb48af51e9e066dcfd60c2bd62f/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
[2] https://github.com/apache/camel/blob/03e57c355f5ddeb48af51e9e066dcfd60c2bd62f/camel-core/src/main/java/org/apache/camel/CamelContext.java#L1665
[3] https://github.com/apache/camel/blob/03e57c355f5ddeb48af51e9e066dcfd60c2bd62f/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java#L1183-L1187
[4] https://issues.apache.org/jira/browse/CAMEL-12482
Zoran Regvart