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:52 UTC
[camel] 04/06: CAMEL-19998: cleanup route controller 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 76db106418efec4b9a5fc3cd1d4a261daac1b25f
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Oct 17 09:15:55 2023 +0200
CAMEL-19998: cleanup route controller API
---
.../camel/impl/engine/AbstractCamelContext.java | 18 +++++-------------
.../impl/engine/DefaultCamelContextExtension.java | 20 ++++++++++++++++++++
2 files changed, 25 insertions(+), 13 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 db0c9e47f0a..e4f86be0781 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
@@ -263,7 +263,6 @@ public abstract class AbstractCamelContext extends BaseService
private Map<String, String> globalOptions = new HashMap<>();
private volatile ShutdownStrategy shutdownStrategy;
private volatile ExecutorServiceManager executorServiceManager;
- private volatile RouteController routeController;
private EndpointRegistry<NormalizedUri> endpoints;
private RuntimeEndpointRegistry runtimeEndpointRegistry;
private ShutdownRoute shutdownRoute = ShutdownRoute.Default;
@@ -922,19 +921,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public RouteController getRouteController() {
- if (routeController == null) {
- synchronized (lock) {
- if (routeController == null) {
- setRouteController(createRouteController());
- }
- }
- }
- return routeController;
+ return camelContextExtension.getRouteController();
}
@Override
public void setRouteController(RouteController routeController) {
- this.routeController = internalServiceManager.addService(routeController);
+ camelContextExtension.setRouteController(routeController);
}
@Override
@@ -2130,7 +2122,7 @@ public abstract class AbstractCamelContext extends BaseService
StartupStep step = startupStepRecorder.beginStep(CamelContext.class, null, "Init CamelContext");
// init the route controller
- this.routeController = getRouteController();
+ final RouteController routeController = getRouteController();
if (startupSummaryLevel == StartupSummaryLevel.Verbose) {
// verbose startup should let route controller do the route startup logging
if (routeController.getLoggingLevel().ordinal() < LoggingLevel.INFO.ordinal()) {
@@ -2372,7 +2364,7 @@ public abstract class AbstractCamelContext extends BaseService
stopWatch.restart();
// Start the route controller
- startService(this.routeController);
+ startService(camelContextExtension.getRouteController());
doNotStartRoutesOnFirstStart = !firstStartDone && !isAutoStartup();
@@ -2759,7 +2751,7 @@ public abstract class AbstractCamelContext extends BaseService
EventHelper.notifyCamelContextRoutesStopping(this);
// Stop the route controller
- ServiceHelper.stopAndShutdownService(this.routeController);
+ camelContextExtension.stopAndShutdownRouteController();
// stop route inputs in the same order as they were started, so we stop
// the very first inputs at first
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 f7ff8da84d4..7fe9c766e05 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
@@ -124,6 +124,7 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
private volatile ValidatorRegistry<ValidatorKey> validatorRegistry;
private volatile TypeConverterRegistry typeConverterRegistry;
private volatile TypeConverter typeConverter;
+ private volatile RouteController routeController;
private volatile Injector injector;
@@ -852,6 +853,25 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.injector = camelContext.getInternalServiceManager().addService(injector);
}
+ void stopAndShutdownRouteController() {
+ ServiceHelper.stopAndShutdownService(this.routeController);
+ }
+
+ RouteController getRouteController() {
+ if (routeController == null) {
+ synchronized (lock) {
+ if (routeController == null) {
+ setRouteController(camelContext.createRouteController());
+ }
+ }
+ }
+ return routeController;
+ }
+
+ void setRouteController(RouteController routeController) {
+ this.routeController = camelContext.getInternalServiceManager().addService(routeController);
+ }
+
@Override
public RouteController getInternalRouteController() {
return internalRouteController;