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