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();

Reply via email to