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