This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 611590e2c86f6a18faa81ece73c373b6b261ddab Author: Claus Ibsen <[email protected]> AuthorDate: Thu Jun 13 10:26:28 2019 +0200 CAMEL-13636: camel3 - SPI for ReactiveHelper so we can plugin different reactive engines --- apache-camel/pom.xml | 6 +++++- apache-camel/src/main/descriptors/common-bin.xml | 1 + .../java/org/apache/camel/impl/engine/AbstractCamelContext.java | 7 ++++++- core/camel-reactive-executor-vertx/pom.xml | 5 +++++ .../org/apache/camel/reactive/vertx/VertXReactiveExecutor.java | 4 ++++ .../src/test/java/org/apache/camel/reactive/SimpleMockTest.java | 1 - examples/camel-example-main/pom.xml | 4 ++++ parent/pom.xml | 5 +++++ 8 files changed, 30 insertions(+), 3 deletions(-) diff --git a/apache-camel/pom.xml b/apache-camel/pom.xml index 7de3b89..f28438e 100644 --- a/apache-camel/pom.xml +++ b/apache-camel/pom.xml @@ -100,7 +100,11 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-main</artifactId> </dependency> - + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-reactive-executor-vertx</artifactId> + </dependency> + <!-- NOTE: auto-generated list of components when building camel catalog --> <!-- camel components: START --> <dependency> diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml index f40548a..2e74e8f 100644 --- a/apache-camel/src/main/descriptors/common-bin.xml +++ b/apache-camel/src/main/descriptors/common-bin.xml @@ -374,6 +374,7 @@ <include>org.apache.camel:camel-route-parser</include> <include>org.apache.camel:camel-headersmap</include> <include>org.apache.camel:camel-caffeine-lrucache</include> + <include>org.apache.camel:camel-reactive-executor-vertx</include> </includes> </dependencySet> diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index d52a395..7519bcd 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -2581,7 +2581,12 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext getHeadersMapFactory()); } - log.info("Using ReactiveExecutor: {}", getReactiveExecutor()); + // lets log at INFO level if we are not using the default reactive executor + if (!getReactiveExecutor().getClass().getSimpleName().equals("DefaultReactiveExecutor")) { + log.info("Using ReactiveExecutor: {}", getReactiveExecutor()); + } else { + log.debug("Using ReactiveExecutor: {}", getReactiveExecutor()); + } // start routes if (doNotStartRoutesOnFirstStart) { diff --git a/core/camel-reactive-executor-vertx/pom.xml b/core/camel-reactive-executor-vertx/pom.xml index bfa6ccd..0ae3475 100644 --- a/core/camel-reactive-executor-vertx/pom.xml +++ b/core/camel-reactive-executor-vertx/pom.xml @@ -41,6 +41,11 @@ <dependency> <groupId>org.apache.camel</groupId> + <artifactId>meta-annotations</artifactId> + <optional>true</optional> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> </dependency> diff --git a/core/camel-reactive-executor-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXReactiveExecutor.java b/core/camel-reactive-executor-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXReactiveExecutor.java index 298875c..47bd7b4 100644 --- a/core/camel-reactive-executor-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXReactiveExecutor.java +++ b/core/camel-reactive-executor-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXReactiveExecutor.java @@ -18,6 +18,7 @@ package org.apache.camel.reactive.vertx; import io.vertx.core.Vertx; import org.apache.camel.StaticService; +import org.apache.camel.meta.Experimental; import org.apache.camel.spi.ReactiveExecutor; import org.apache.camel.support.service.ServiceSupport; import org.slf4j.Logger; @@ -25,7 +26,10 @@ import org.slf4j.LoggerFactory; /** * A VertX based {@link ReactiveExecutor} that uses Vert X event loop. + * <p/> + * NOTE: This is an experimental implementation (use with care) */ +@Experimental public class VertXReactiveExecutor extends ServiceSupport implements ReactiveExecutor, StaticService { private static final Logger LOG = LoggerFactory.getLogger(VertXReactiveExecutor.class); diff --git a/core/camel-reactive-executor-vertx/src/test/java/org/apache/camel/reactive/SimpleMockTest.java b/core/camel-reactive-executor-vertx/src/test/java/org/apache/camel/reactive/SimpleMockTest.java index 3383e73..0fb845f 100644 --- a/core/camel-reactive-executor-vertx/src/test/java/org/apache/camel/reactive/SimpleMockTest.java +++ b/core/camel-reactive-executor-vertx/src/test/java/org/apache/camel/reactive/SimpleMockTest.java @@ -27,7 +27,6 @@ public class SimpleMockTest extends CamelTestSupport { @Override protected CamelContext createCamelContext() throws Exception { - // TODO: should detect from classpath CamelContext context = super.createCamelContext(); context.setReactiveExecutor(new VertXReactiveExecutor()); return context; diff --git a/examples/camel-example-main/pom.xml b/examples/camel-example-main/pom.xml index 43d1ee8..d33e285 100644 --- a/examples/camel-example-main/pom.xml +++ b/examples/camel-example-main/pom.xml @@ -51,6 +51,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-quartz2</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-reactive-executor-vertx</artifactId> + </dependency> <!-- logging --> <dependency> diff --git a/parent/pom.xml b/parent/pom.xml index 87a6f35..d6a24f3 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -859,6 +859,11 @@ <artifactId>camel-main</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-reactive-executor-vertx</artifactId> + <version>${project.version}</version> + </dependency> <!-- NOTE: auto-generated list of components when building camel catalog --> <!-- camel components: START -->
