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 40c7ebf6e56123c67c995cc5ec24e4a7d0666ae8 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Mon Apr 3 18:16:34 2023 +0200 CAMEL-15105: added support for testing BootstrapCloseable for leaks --- .../org/apache/camel/impl/engine/AbstractCamelContext.java | 11 +++++++++++ .../camel/impl/engine/DefaultCamelContextExtension.java | 4 ++++ 2 files changed, 15 insertions(+) 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 18b2e0d0d9f..3c8728517f5 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 @@ -83,6 +83,7 @@ import org.apache.camel.spi.AsyncProcessorAwaitManager; import org.apache.camel.spi.BeanIntrospection; import org.apache.camel.spi.BeanProcessorFactory; import org.apache.camel.spi.BeanProxyFactory; +import org.apache.camel.spi.BootstrapCloseable; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelContextNameStrategy; import org.apache.camel.spi.CamelContextTracker; @@ -4215,4 +4216,14 @@ public abstract class AbstractCamelContext extends BaseService InternalServiceManager getInternalServiceManager() { return internalServiceManager; } + + /* + * This method exists for testing purposes only: we need to make sure we don't leak bootstraps. + * This allows us to check for leaks without compromising the visibility/access on the DefaultCamelContextExtension. + * Check the test AddRoutesAtRuntimeTest for details. + */ + @SuppressWarnings("unused") + private List<BootstrapCloseable> getBootstraps() { + return camelContextExtension.getBootstraps(); + } } 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 e04796e6482..06a7f54ca6b 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 @@ -215,6 +215,10 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { bootstraps.clear(); } + List<BootstrapCloseable> getBootstraps() { + return bootstraps; + } + @Override public List<Service> getServices() { return camelContext.getInternalServiceManager().getServices();