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/04/03 19:13:24 UTC

[camel] branch main updated (0118172f2ea -> 84cb7636ae6)

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 0118172f2ea optimized map iteration: entrySet() instead of keySet(). In one case loop was changed with parametrised constructor
     new 40c7ebf6e56 CAMEL-15105: added support for testing BootstrapCloseable for leaks
     new 9851e558350 CAMEL-15105: move RouteController ownership to the context extension
     new 8035189c401 CAMEL-15105: cleanup plugin initialization
     new 599b1e3d574 CAMEL-15105: removed unused method
     new 84cb7636ae6 CAMEL-15105: added missing overrides

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/impl/engine/AbstractCamelContext.java    | 49 +++++++++++++++-------
 .../impl/engine/DefaultCamelContextExtension.java  |  8 +++-
 .../camel/builder/AddRoutesAtRuntimeTest.java      | 10 ++---
 3 files changed, 46 insertions(+), 21 deletions(-)


[camel] 04/05: CAMEL-15105: removed unused method

Posted by or...@apache.org.
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 599b1e3d5741e5a3323decd9a1faf9c4f87e6a4d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Apr 3 19:31:39 2023 +0200

    CAMEL-15105: removed unused method
---
 .../java/org/apache/camel/impl/engine/AbstractCamelContext.java     | 6 +-----
 1 file changed, 1 insertion(+), 5 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 9a8e3a00d70..d7972055bb5 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
@@ -103,7 +103,6 @@ import org.apache.camel.spi.DebuggerFactory;
 import org.apache.camel.spi.DeferServiceFactory;
 import org.apache.camel.spi.EndpointRegistry;
 import org.apache.camel.spi.EndpointStrategy;
-import org.apache.camel.spi.EndpointUriFactory;
 import org.apache.camel.spi.EventNotifier;
 import org.apache.camel.spi.ExchangeFactory;
 import org.apache.camel.spi.ExchangeFactoryManager;
@@ -4111,6 +4110,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.setDescription(description);
     }
 
+    @Override
     public String getDescription() {
         return camelContextExtension.getDescription();
     }
@@ -4127,10 +4127,6 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.addInterceptStrategy(interceptStrategy);
     }
 
-    public EndpointUriFactory getEndpointUriFactory(String scheme) {
-        return camelContextExtension.getEndpointUriFactory(scheme);
-    }
-
     public StartupStepRecorder getStartupStepRecorder() {
         return camelContextExtension.getStartupStepRecorder();
     }


[camel] 05/05: CAMEL-15105: added missing overrides

Posted by or...@apache.org.
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 84cb7636ae6906acf47a67aedf25bf7ed2a25b1c
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Apr 3 19:39:46 2023 +0200

    CAMEL-15105: added missing overrides
---
 .../java/org/apache/camel/impl/engine/AbstractCamelContext.java   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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 d7972055bb5..9f056205b27 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
@@ -1409,6 +1409,7 @@ public abstract class AbstractCamelContext extends BaseService
         return null;
     }
 
+    @Override
     public String getComponentParameterJsonSchema(String componentName) throws IOException {
         // use the component factory finder to find the package name of the
         // component class, which is the location
@@ -1435,6 +1436,7 @@ public abstract class AbstractCamelContext extends BaseService
         return null;
     }
 
+    @Override
     public String getDataFormatParameterJsonSchema(String dataFormatName) throws IOException {
         // use the dataformat factory finder to find the package name of the
         // dataformat class, which is the location
@@ -1454,6 +1456,7 @@ public abstract class AbstractCamelContext extends BaseService
         return null;
     }
 
+    @Override
     public String getLanguageParameterJsonSchema(String languageName) throws IOException {
         // use the language factory finder to find the package name of the
         // language class, which is the location
@@ -1475,7 +1478,7 @@ public abstract class AbstractCamelContext extends BaseService
 
     // Helper methods
     // -----------------------------------------------------------------------
-
+    @Override
     public String getEipParameterJsonSchema(String eipName) throws IOException {
         // the eip json schema may be in some of the sub-packages so look until
         // we find it
@@ -3455,6 +3458,7 @@ public abstract class AbstractCamelContext extends BaseService
         this.modeline = modeline;
     }
 
+    @Override
     public Boolean isDevConsole() {
         return devConsole != null && devConsole;
     }
@@ -4094,6 +4098,7 @@ public abstract class AbstractCamelContext extends BaseService
 
     public abstract String getTestExcludeRoutes();
 
+    @Override
     public ExtendedCamelContext getCamelContextExtension() {
         return camelContextExtension;
     }
@@ -4102,6 +4107,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.setName(name);
     }
 
+    @Override
     public String getName() {
         return camelContextExtension.getName();
     }


[camel] 03/05: CAMEL-15105: cleanup plugin initialization

Posted by or...@apache.org.
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 8035189c401bc382a3963ac2650f3237602ffcd1
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Apr 3 19:22:34 2023 +0200

    CAMEL-15105: cleanup plugin initialization
---
 .../camel/impl/engine/AbstractCamelContext.java    | 23 ++++++++++++++--------
 1 file changed, 15 insertions(+), 8 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 79795930364..9a8e3a00d70 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
@@ -333,6 +333,21 @@ public abstract class AbstractCamelContext extends BaseService
 
         this.internalServiceManager = new InternalServiceManager(this, internalRouteStartupManager, startupListeners);
 
+        initPlugins();
+
+        if (build) {
+            try {
+                build();
+            } catch (Exception e) {
+                throw new RuntimeException("Error initializing CamelContext", e);
+            }
+        }
+    }
+
+    /**
+     * Called during object construction to initialize context plugins
+     */
+    protected void initPlugins() {
         camelContextExtension.addContextPlugin(CamelBeanPostProcessor.class, createBeanPostProcessor());
         camelContextExtension.addContextPlugin(CamelDependencyInjectionAnnotationFactory.class,
                 createDependencyInjectionAnnotationFactory());
@@ -369,14 +384,6 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.lazyAddContextPlugin(DeferServiceFactory.class, this::createDeferServiceFactory);
         camelContextExtension.lazyAddContextPlugin(AnnotationBasedProcessorFactory.class,
                 this::createAnnotationBasedProcessorFactory);
-
-        if (build) {
-            try {
-                build();
-            } catch (Exception e) {
-                throw new RuntimeException("Error initializing CamelContext", e);
-            }
-        }
     }
 
     protected static <T> T lookup(CamelContext context, String ref, Class<T> type) {


[camel] 01/05: CAMEL-15105: added support for testing BootstrapCloseable for leaks

Posted by or...@apache.org.
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 <an...@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();


[camel] 02/05: CAMEL-15105: move RouteController ownership to the context extension

Posted by or...@apache.org.
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 <an...@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