You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/09/24 14:07:39 UTC
[camel] branch master updated: CAMEL-15573: camel-main: support
LambdaRouteBuilder
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new f17e883 CAMEL-15573: camel-main: support LambdaRouteBuilder
f17e883 is described below
commit f17e883b80eaa1f7b39f123eb841b124f4a31fc5
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Thu Sep 24 11:39:04 2020 +0200
CAMEL-15573: camel-main: support LambdaRouteBuilder
---
.../camel/main/MainConfigurationProperties.java | 22 +++++++++++++++++
.../camel/main/MainLambdaRouteBuilderTest.java | 28 ++++++++++++++++------
2 files changed, 43 insertions(+), 7 deletions(-)
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
index 360d27a..5aeaa8a 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
@@ -20,6 +20,8 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.LambdaRouteBuilder;
+import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spi.Configurer;
/**
@@ -363,6 +365,18 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
setRoutesBuilderClasses(existing);
}
+ /**
+ * Add an additional {@link LambdaRouteBuilder} object to the known list of builders.
+ */
+ public void addLambdaRouteBuilder(LambdaRouteBuilder routeBuilder) {
+ this.routesBuilders.add(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ routeBuilder.accept(this);
+ }
+ });
+ }
+
// fluent builders
// --------------------------------------------------------------
@@ -559,4 +573,12 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
addRoutesBuilder(builders);
return this;
}
+
+ /**
+ * Add an additional {@link LambdaRouteBuilder} object to the known list of builders.
+ */
+ public MainConfigurationProperties withAdditionalLambdaRouteBuilder(LambdaRouteBuilder builder) {
+ addLambdaRouteBuilder(builder);
+ return this;
+ }
}
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/MainLambdaRouteBuilderTest.java b/core/camel-main/src/test/java/org/apache/camel/main/MainLambdaRouteBuilderTest.java
index e2c492d..40c77be 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/MainLambdaRouteBuilderTest.java
+++ b/core/camel-main/src/test/java/org/apache/camel/main/MainLambdaRouteBuilderTest.java
@@ -25,25 +25,39 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class MainLambdaRouteBuilderTest {
+ private static final LambdaRouteBuilder BUILDER = rb -> rb.from("direct:start").to("mock:results");
@Test
- public void testMainRoutesCollector() throws Exception {
+ public void testBindLambdaRouteBuilder() throws Exception {
Main main = new Main();
- main.bind("myBarRoute", (LambdaRouteBuilder) rb -> rb.from("direct:start").to("mock:results"));
+ main.bind("myBarRoute", BUILDER);
main.start();
- CamelContext camelContext = main.getCamelContext();
+ doTest(main.camelContext);
+
+ main.stop();
+ }
+
+ @Test
+ public void testAddLambdaRouteBuilder() throws Exception {
+ Main main = new Main();
+ main.configure().addLambdaRouteBuilder(BUILDER);
+ main.start();
+
+ doTest(main.camelContext);
+
+ main.stop();
+ }
+
+ private static void doTest(CamelContext camelContext) throws Exception {
assertNotNull(camelContext);
assertEquals(1, camelContext.getRoutes().size());
MockEndpoint endpoint = camelContext.getEndpoint("mock:results", MockEndpoint.class);
endpoint.expectedBodiesReceived("Hello World");
- main.getCamelTemplate().sendBody("direct:start", "Hello World");
+ camelContext.createProducerTemplate().sendBody("direct:start", "Hello World");
endpoint.assertIsSatisfied();
-
- main.stop();
}
-
}