This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 2cf7930 CAMEL-16608: Kamelet local bean - Using script should allow
to define return type of created bean
2cf7930 is described below
commit 2cf7930245fcad2db1ccac600493c220ae327a08
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri May 14 08:20:06 2021 +0200
CAMEL-16608: Kamelet local bean - Using script should allow to define
return type of created bean
---
.../camel/model/RouteTemplateBeanDefinition.java | 3 ++-
.../camel/builder/RouteTemplateLocalBeanTest.java | 31 ++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanDefinition.java
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanDefinition.java
index 31fbbdb..95767f0 100644
---
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanDefinition.java
+++
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanDefinition.java
@@ -202,7 +202,8 @@ public class RouteTemplateBeanDefinition {
* section, such as using groovy.
*/
public RouteTemplateBeanDefinition type(String type) {
- if (!type.startsWith("#type:") && !type.startsWith("#class:")) {
+ if (!type.startsWith("#")) {
+ // use #class as default
type = "#class:" + type;
}
setType(type);
diff --git
a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java
b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java
index 0f9dbe5..83337fb0 100644
---
a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateLocalBeanTest.java
@@ -579,6 +579,37 @@ public class RouteTemplateLocalBeanTest extends
ContextTestSupport {
context.stop();
}
+ @Test
+ public void testLocalBeanClassAsString() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+
routeTemplate("myTemplate").templateParameter("foo").templateParameter("bar")
+
.templateBean("myBar").type(BuilderProcessor.class.getName()).end()
+ .from("direct:{{foo}}")
+ .to("bean:{{bar}}");
+ }
+ });
+
+ context.start();
+
+ TemplatedRouteBuilder.builder(context, "myTemplate")
+ .parameter("foo", "one")
+ .parameter("bar", "myBar")
+ .routeId("myRoute")
+ .add();
+
+ assertEquals(1, context.getRoutes().size());
+
+ Object out = template.requestBody("direct:one", "World");
+ assertEquals("Builder World", out);
+
+ // should not be a global bean
+ assertNull(context.getRegistry().lookupByName("myBar"));
+
+ context.stop();
+ }
+
public static class BuilderProcessor implements Processor {
@Override