You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/10/17 11:20:54 UTC
[camel] 06/06: CAMEL-19998: cleanup executor service manager API
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 29566baad543eff2ca69b69b10b31589cf186dfc
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Oct 17 09:44:28 2023 +0200
CAMEL-19998: cleanup executor service manager API
---
.../camel/impl/engine/AbstractCamelContext.java | 17 +++--------------
.../impl/engine/DefaultCamelContextExtension.java | 19 +++++++++++++++++++
2 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 38423b8f153..21546e539e2 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -201,7 +201,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile StartupStepRecorder startupStepRecorder = new DefaultStartupStepRecorder();
int defaultRouteStartupOrder = 1000;
- private final Object lock = new Object();
private final DefaultCamelContextExtension camelContextExtension = new DefaultCamelContextExtension(this);
private final AtomicInteger endpointKeyCounter = new AtomicInteger();
private final List<EndpointStrategy> endpointStrategies = new ArrayList<>();
@@ -261,7 +260,6 @@ public abstract class AbstractCamelContext extends BaseService
private Boolean autowiredEnabled = Boolean.TRUE;
private Long delay;
private Map<String, String> globalOptions = new HashMap<>();
- private volatile ExecutorServiceManager executorServiceManager;
private EndpointRegistry<NormalizedUri> endpoints;
private RuntimeEndpointRegistry runtimeEndpointRegistry;
private ShutdownRoute shutdownRoute = ShutdownRoute.Default;
@@ -2860,7 +2858,7 @@ public abstract class AbstractCamelContext extends BaseService
// the route back as before
// shutdown executor service, reactive executor last
- InternalServiceManager.shutdownServices(this, executorServiceManager);
+ InternalServiceManager.shutdownServices(this, camelContextExtension.getExecutorServiceManager());
InternalServiceManager.shutdownServices(this, camelContextExtension.getReactiveExecutor());
// shutdown type converter and registry as late as possible
@@ -3551,21 +3549,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public ExecutorServiceManager getExecutorServiceManager() {
- if (executorServiceManager == null) {
- synchronized (lock) {
- if (executorServiceManager == null) {
- setExecutorServiceManager(createExecutorServiceManager());
- }
- }
- }
- return this.executorServiceManager;
+ return camelContextExtension.getExecutorServiceManager();
}
@Override
public void setExecutorServiceManager(ExecutorServiceManager executorServiceManager) {
- // special for executorServiceManager as want to stop it manually so
- // false in stopOnShutdown
- this.executorServiceManager = internalServiceManager.addService(executorServiceManager, false);
+ camelContextExtension.setExecutorServiceManager(executorServiceManager);
}
@Override
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index c9206743d5b..208c56d61d6 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -47,6 +47,7 @@ import org.apache.camel.spi.EndpointUriFactory;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.ExchangeFactoryManager;
+import org.apache.camel.spi.ExecutorServiceManager;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.HeadersMapFactory;
import org.apache.camel.spi.InflightRepository;
@@ -127,6 +128,7 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
private volatile TypeConverter typeConverter;
private volatile RouteController routeController;
private volatile ShutdownStrategy shutdownStrategy;
+ private volatile ExecutorServiceManager executorServiceManager;
private volatile Injector injector;
@@ -889,6 +891,23 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.shutdownStrategy = camelContext.getInternalServiceManager().addService(shutdownStrategy);
}
+ ExecutorServiceManager getExecutorServiceManager() {
+ if (executorServiceManager == null) {
+ synchronized (lock) {
+ if (executorServiceManager == null) {
+ setExecutorServiceManager(camelContext.createExecutorServiceManager());
+ }
+ }
+ }
+ return this.executorServiceManager;
+ }
+
+ void setExecutorServiceManager(ExecutorServiceManager executorServiceManager) {
+ // special for executorServiceManager as want to stop it manually so
+ // false in stopOnShutdown
+ this.executorServiceManager = camelContext.getInternalServiceManager().addService(executorServiceManager, false);
+ }
+
@Override
public RouteController getInternalRouteController() {
return internalRouteController;