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 9851e558350330451e9e59372be4fb745d366bec
Author: Otavio Rodolfo Piske <angusyo...@gmail.com>
AuthorDate: Mon Apr 3 18:51:39 2023 +0200

    CAMEL-15105: move RouteController ownership to the context extension
---
 .../org/apache/camel/impl/engine/AbstractCamelContext.java     |  1 -
 .../apache/camel/impl/engine/DefaultCamelContextExtension.java |  4 +++-
 .../java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java  | 10 +++++-----
 3 files changed, 8 insertions(+), 7 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 3c8728517f5..79795930364 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
@@ -199,7 +199,6 @@ public abstract class AbstractCamelContext extends 
BaseService
 
     protected final InternalServiceManager internalServiceManager;
 
-    final RouteController internalRouteController = new 
InternalRouteController(this);
     volatile StartupStepRecorder startupStepRecorder = new 
DefaultStartupStepRecorder();
     int defaultRouteStartupOrder = 1000;
 
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 06a7f54ca6b..dc728c9faec 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
@@ -78,6 +78,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
     private final Map<String, FactoryFinder> bootstrapFactories = new 
ConcurrentHashMap<>();
     private final Set<LogListener> logListeners = new LinkedHashSet<>();
     private final PluginManager pluginManager = new 
DefaultContextPluginManager();
+    private final RouteController internalRouteController;
 
     // start auto assigning route ids using numbering 1000 and upwards
     private final List<BootstrapCloseable> bootstraps = new 
CopyOnWriteArrayList<>();
@@ -104,6 +105,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
 
     public DefaultCamelContextExtension(AbstractCamelContext camelContext) {
         this.camelContext = camelContext;
+        this.internalRouteController = new 
InternalRouteController(camelContext);
     }
 
     @Override
@@ -536,7 +538,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
 
     @Override
     public RouteController getInternalRouteController() {
-        return camelContext.internalRouteController;
+        return internalRouteController;
     }
 
     @Override
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java
index e28606849e9..5ade2f876cd 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java
@@ -16,13 +16,12 @@
  */
 package org.apache.camel.builder;
 
-import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.impl.engine.AbstractCamelContext;
-import org.apache.camel.util.ReflectionHelper;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -47,8 +46,9 @@ public class AddRoutesAtRuntimeTest extends 
ContextTestSupport {
         assertEquals(2, context.getRoutes().size());
 
         // use reflection to test that we do not leak bootstraps when dynamic 
adding routes
-        Field f = AbstractCamelContext.class.getDeclaredField("bootstraps");
-        Assertions.assertEquals(0, ((List) ReflectionHelper.getField(f, 
context)).size());
+        Method m = 
AbstractCamelContext.class.getDeclaredMethod("getBootstraps");
+        m.setAccessible(true);
+        Assertions.assertEquals(0, ((List) m.invoke(context)).size());
 
         getMockEndpoint("mock:bar").expectedMessageCount(1);
         context.addRoutes(new MyDynamcRouteBuilder(context, "direct:bar", 
"mock:bar"));
@@ -57,7 +57,7 @@ public class AddRoutesAtRuntimeTest extends 
ContextTestSupport {
         assertEquals(3, context.getRoutes().size());
 
         // use reflection to test that we do not leak bootstraps when dynamic 
adding routes
-        Assertions.assertEquals(0, ((List) ReflectionHelper.getField(f, 
context)).size());
+        Assertions.assertEquals(0, ((List) m.invoke(context)).size());
     }
 
     @Override

Reply via email to