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 89efe5c  CAMEL-16600: kamelet local bean - Better DSL for YAML DSL
89efe5c is described below

commit 89efe5c41b8cdd1fc67dd1a049d5e28f399ec8fb
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue May 11 09:43:46 2021 +0200

    CAMEL-16600: kamelet local bean - Better DSL for YAML DSL
---
 .../java/org/apache/camel/impl/DefaultModel.java   |  13 +-
 .../resources/org/apache/camel/model/jaxb.index    |   1 -
 .../org/apache/camel/model/templateBean.json       |   4 +-
 .../camel/model/RouteTemplateBeanDefinition.java   | 150 +++++++++++++++---
 .../model/RouteTemplateBeanFactoryDefinition.java  | 175 ---------------------
 .../camel/model/RouteTemplateDefinition.java       |  15 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  |  17 +-
 .../dsl/yaml/deserializers/ModelDeserializers.java |  52 +-----
 .../deserializers/ModelDeserializersResolver.java  |   2 -
 .../src/generated/resources/camel-yaml-dsl.json    |  20 +--
 10 files changed, 151 insertions(+), 298 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
index a915aa2..a9dd0ce 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
@@ -336,22 +336,17 @@ public class DefaultModel implements Model {
 
     private void addTemplateBeans(RouteTemplateContext routeTemplateContext, 
RouteTemplateDefinition target) throws Exception {
         for (RouteTemplateBeanDefinition b : target.getTemplateBeans()) {
-            if (b.getBeanType() != null) {
-                // could be created via XML DSL where you cannot program in 
Java and can only specify the bean as fqn classname
-                Class<?> clazz = 
camelContext.getClassResolver().resolveMandatoryClass(b.getBeanType());
-                routeTemplateContext.bind(b.getName(), clazz, () -> 
camelContext.getInjector().newInstance(clazz));
-            } else if (b.getBeanSupplier() != null) {
+            if (b.getBeanSupplier() != null) {
                 // bean class is optional for supplier
                 if (b.getBeanClass() != null) {
                     routeTemplateContext.bind(b.getName(), b.getBeanClass(), 
b.getBeanSupplier());
                 } else {
                     routeTemplateContext.bind(b.getName(), 
b.getBeanSupplier());
                 }
-            } else if (b.getBeanFactory() != null) {
-                final String script = b.getBeanFactory().getScript();
+            } else if (b.getScript() != null) {
+                final String script = b.getScript();
+                final Language lan = 
camelContext.resolveLanguage(b.getLanguage());
                 final Class<?> clazz = b.getBeanClass() != null ? 
b.getBeanClass() : Object.class;
-
-                final Language lan = 
camelContext.resolveLanguage(b.getBeanFactory().getLanguage());
                 final ScriptingLanguage slan = lan instanceof 
ScriptingLanguage ? (ScriptingLanguage) lan : null;
                 if (slan != null) {
                     // scripting language should be evaluated with route 
template context as binding
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
index 844ed11..88bee1b 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
@@ -66,7 +66,6 @@ RouteBuilderDefinition
 RouteContextRefDefinition
 RouteDefinition
 RouteTemplateBeanDefinition
-RouteTemplateBeanFactoryDefinition
 RouteTemplateContextRefDefinition
 RouteTemplateDefinition
 RouteTemplateParameterDefinition
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/templateBean.json
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/templateBean.json
index 807dc49..d2b0b7c 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/templateBean.json
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/templateBean.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "name": { "kind": "attribute", "displayName": "Name", "required": true, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Bean name" },
-    "beanType": { "kind": "attribute", "displayName": "Bean Type", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the Class of the 
bean" },
-    "beanFactory": { "kind": "element", "displayName": "Bean Factory", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.RouteTemplateBeanFactoryDefinition", "deprecated": 
false, "autowired": false, "secret": false, "description": "Bean factory that 
uses a scripting language to create the local bean" }
+    "language": { "kind": "attribute", "displayName": "Language", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "bean", 
"groovy", "joor", "language", "mvel", "ognl" ], "deprecated": false, 
"autowired": false, "secret": false, "description": "The language to use for 
creating the bean (such as groovy, joor)" },
+    "script": { "kind": "value", "displayName": "Script", "required": true, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The script to execute that 
creates the bean. If the script use the prefix resource: such as 
resource:classpath:com\/foo\/myscript.groovy, 
resource:file:\/var\/myscript.groovy, then its loaded from the external 
resource." }
   }
 }
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 5b7a07f..dcb104c 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
@@ -19,9 +19,9 @@ package org.apache.camel.model;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlValue;
 
 import org.apache.camel.RouteTemplateContext;
 import org.apache.camel.spi.Metadata;
@@ -33,16 +33,22 @@ import org.apache.camel.spi.Metadata;
 @XmlRootElement(name = "templateBean")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RouteTemplateBeanDefinition {
+    @XmlTransient
+    private RouteTemplateDefinition parent;
     @XmlAttribute(required = true)
     String name;
-    @XmlAttribute
-    private String beanType;
     @XmlTransient
     private Class<?> beanClass;
+    // it only makes sense to use the languages that are general purpose 
scripting languages
+    @XmlAttribute(required = true)
+    @Metadata(enums = "bean,groovy,joor,language,mvel,ognl")
+    private String language;
+    @XmlValue
+    @Metadata(required = true)
+    private String script;
+    // special for java-dsl to allow using lambda style
     @XmlTransient
     private RouteTemplateContext.BeanSupplier<Object> beanSupplier;
-    @XmlElement
-    private RouteTemplateBeanFactoryDefinition beanFactory;
 
     public RouteTemplateBeanDefinition() {
     }
@@ -51,6 +57,10 @@ public class RouteTemplateBeanDefinition {
         this.name = name;
     }
 
+    public RouteTemplateBeanDefinition(RouteTemplateDefinition parent) {
+        this.parent = parent;
+    }
+
     public String getName() {
         return name;
     }
@@ -62,26 +72,37 @@ public class RouteTemplateBeanDefinition {
         this.name = name;
     }
 
-    public String getBeanType() {
-        return beanType;
+    public Class<?> getBeanClass() {
+        return beanClass;
+    }
+
+    public void setBeanType(Class<?> beanType) {
+        this.beanClass = beanType;
+    }
+
+    public String getLanguage() {
+        return language;
     }
 
     /**
-     * Sets the Class of the bean
+     * The language to use for creating the bean (such as groovy, joor)
      */
-    public void setBeanType(String beanType) {
-        this.beanType = beanType;
+    public void setLanguage(String language) {
+        this.language = language;
     }
 
-    public Class<?> getBeanClass() {
-        return beanClass;
+    public String getScript() {
+        return script;
     }
 
     /**
-     * Sets the Class of the bean
+     * The script to execute that creates the bean.
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
      */
-    public void setBeanType(Class<?> beanType) {
-        this.beanClass = beanType;
+    public void setScript(String script) {
+        this.script = script;
     }
 
     public RouteTemplateContext.BeanSupplier<Object> getBeanSupplier() {
@@ -95,14 +116,103 @@ public class RouteTemplateBeanDefinition {
         this.beanSupplier = beanSupplier;
     }
 
-    public RouteTemplateBeanFactoryDefinition getBeanFactory() {
-        return beanFactory;
+    // fluent builders
+    // ----------------------------------------------------
+
+    /**
+     * Calls a method on a bean for creating the local template bean
+     *
+     * @param type the bean class to call
+     */
+    public RouteTemplateDefinition bean(Class<?> type) {
+        return bean(type, null);
+    }
+
+    /**
+     * Calls a method on a bean for creating the local template bean
+     *
+     * @param type   the bean class to call
+     * @param method the name of the method to call
+     */
+    public RouteTemplateDefinition bean(Class<?> type, String method) {
+        setLanguage("bean");
+        if (method != null) {
+            setScript(type.getName() + "?method=" + method);
+        } else {
+            setScript(type.getName());
+        }
+        return parent;
+    }
+
+    /**
+     * Calls a groovy script for creating the local template bean
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
+     *
+     * @param script the script
+     */
+    public RouteTemplateDefinition groovy(String script) {
+        setLanguage("groovy");
+        setScript(script);
+        return parent;
+    }
+
+    /**
+     * Calls joor script (Java source that is runtime compiled to Java 
bytecode) for creating the local template bean
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
+     *
+     * @param script the script
+     */
+    public RouteTemplateDefinition joor(String script) {
+        setLanguage("joor");
+        setScript(script);
+        return parent;
+    }
+
+    /**
+     * Calls a custom language for creating the local template bean
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
+     *
+     * @param language the custom language (a language not provided out of the 
box from Camel)
+     * @param script   the script
+     */
+    public RouteTemplateDefinition language(String language, String script) {
+        setLanguage(language);
+        setScript(script);
+        return parent;
+    }
+
+    /**
+     * Calls a MvEL script for creating the local template bean
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
+     *
+     * @param script the script
+     */
+    public RouteTemplateDefinition mvel(String script) {
+        setLanguage("mvel");
+        setScript(script);
+        return parent;
     }
 
     /**
-     * Bean factory that uses a scripting language to create the local bean
+     * Calls a OGNL script for creating the local template bean
+     *
+     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
+     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
+     *
+     * @param script the script
      */
-    public void setBeanFactory(RouteTemplateBeanFactoryDefinition beanFactory) 
{
-        this.beanFactory = beanFactory;
+    public RouteTemplateDefinition ognl(String script) {
+        setLanguage("ognl");
+        setScript(script);
+        return parent;
     }
+
 }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanFactoryDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanFactoryDefinition.java
deleted file mode 100644
index cd6f2ec..0000000
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateBeanFactoryDefinition.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlValue;
-
-import org.apache.camel.spi.Metadata;
-
-/**
- * A route template bean factory (local bean)
- */
-@Metadata(label = "configuration")
-@XmlRootElement(name = "templateBeanFactory")
-@XmlAccessorType(XmlAccessType.FIELD)
-public class RouteTemplateBeanFactoryDefinition {
-    @XmlTransient
-    private RouteTemplateDefinition parent;
-    // it only makes sense to use the languages that are general purpose 
scripting languages
-    @XmlAttribute(required = true)
-    @Metadata(enums = "bean,groovy,joor,language,mvel,ognl")
-    private String language;
-    @XmlValue
-    private String script;
-
-    public RouteTemplateBeanFactoryDefinition() {
-    }
-
-    public RouteTemplateBeanFactoryDefinition(RouteTemplateDefinition parent) {
-        this.parent = parent;
-    }
-
-    public String getLanguage() {
-        return language;
-    }
-
-    /**
-     * The language to use for creating the bean (such as groovy, joor)
-     */
-    public void setLanguage(String language) {
-        this.language = language;
-    }
-
-    public String getScript() {
-        return script;
-    }
-
-    /**
-     * The script to execute that creates the bean.
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     */
-    public void setScript(String script) {
-        this.script = script;
-    }
-
-    // fluent builders
-    // ----------------------------------------------------
-
-    /**
-     * Calls a method on a bean for creating the local template bean
-     *
-     * @param type the bean class to call
-     */
-    public RouteTemplateDefinition bean(Class<?> type) {
-        return bean(type, null);
-    }
-
-    /**
-     * Calls a method on a bean for creating the local template bean
-     *
-     * @param type   the bean class to call
-     * @param method the name of the method to call
-     */
-    public RouteTemplateDefinition bean(Class<?> type, String method) {
-        setLanguage("bean");
-        if (method != null) {
-            setScript(type.getName() + "?method=" + method);
-        } else {
-            setScript(type.getName());
-        }
-        return parent;
-    }
-
-    /**
-     * Calls a groovy script for creating the local template bean
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     *
-     * @param script the script
-     */
-    public RouteTemplateDefinition groovy(String script) {
-        setLanguage("groovy");
-        setScript(script);
-        return parent;
-    }
-
-    /**
-     * Calls joor script (Java source that is runtime compiled to Java 
bytecode) for creating the local template bean
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     *
-     * @param script the script
-     */
-    public RouteTemplateDefinition joor(String script) {
-        setLanguage("joor");
-        setScript(script);
-        return parent;
-    }
-
-    /**
-     * Calls a custom language for creating the local template bean
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     *
-     * @param language the custom language (a language not provided out of the 
box from Camel)
-     * @param script   the script
-     */
-    public RouteTemplateDefinition language(String language, String script) {
-        setLanguage(language);
-        setScript(script);
-        return parent;
-    }
-
-    /**
-     * Calls a MvEL script for creating the local template bean
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     *
-     * @param script the script
-     */
-    public RouteTemplateDefinition mvel(String script) {
-        setLanguage("mvel");
-        setScript(script);
-        return parent;
-    }
-
-    /**
-     * Calls a OGNL script for creating the local template bean
-     *
-     * If the script use the prefix <tt>resource:</tt> such as 
<tt>resource:classpath:com/foo/myscript.groovy</tt>,
-     * <tt>resource:file:/var/myscript.groovy</tt>, then its loaded from the 
external resource.
-     *
-     * @param script the script
-     */
-    public RouteTemplateDefinition ognl(String script) {
-        setLanguage("ognl");
-        setScript(script);
-        return parent;
-    }
-
-}
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
index 8d8cf40..8d60711 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
@@ -212,7 +212,6 @@ public class RouteTemplateDefinition extends 
OptionalIdentifiedDefinition {
             def.setBeanSupplier(ctx -> ((Supplier<?>) bean).get());
         } else {
             def.setBeanSupplier(ctx -> bean);
-            def.setBeanType(bean.getClass());
         }
         templateBeans.add(def);
         return this;
@@ -267,10 +266,8 @@ public class RouteTemplateDefinition extends 
OptionalIdentifiedDefinition {
         }
         RouteTemplateBeanDefinition def = new RouteTemplateBeanDefinition();
         def.setName(name);
-        RouteTemplateBeanFactoryDefinition bf = new 
RouteTemplateBeanFactoryDefinition();
-        bf.setLanguage(language);
-        bf.setScript(script);
-        def.setBeanFactory(bf);
+        def.setLanguage(language);
+        def.setScript(script);
         templateBeans.add(def);
         return this;
     }
@@ -281,16 +278,14 @@ public class RouteTemplateDefinition extends 
OptionalIdentifiedDefinition {
      * @param  name the name of the bean
      * @return      fluent builder to choose which language and script to use 
for creating the bean
      */
-    public RouteTemplateBeanFactoryDefinition templateBean(String name) {
+    public RouteTemplateBeanDefinition templateBean(String name) {
         if (templateBeans == null) {
             templateBeans = new ArrayList<>();
         }
-        RouteTemplateBeanDefinition def = new RouteTemplateBeanDefinition();
+        RouteTemplateBeanDefinition def = new 
RouteTemplateBeanDefinition(this);
         def.setName(name);
-        RouteTemplateBeanFactoryDefinition bf = new 
RouteTemplateBeanFactoryDefinition(this);
-        def.setBeanFactory(bf);
         templateBeans.add(def);
-        return bf;
+        return def;
     }
 
     /**
diff --git 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 45fb667..df6ce58 100644
--- 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -1023,26 +1023,11 @@ public class ModelParser extends BaseParser {
     protected RouteTemplateBeanDefinition doParseRouteTemplateBeanDefinition() 
throws IOException, XmlPullParserException {
         return doParse(new RouteTemplateBeanDefinition(), (def, key, val) -> {
             switch (key) {
-                case "beanType": def.setBeanType(val); break;
+                case "language": def.setLanguage(val); break;
                 case "name": def.setName(val); break;
                 default: return false;
             }
             return true;
-        }, (def, key) -> {
-            if ("beanFactory".equals(key)) {
-                
def.setBeanFactory(doParseRouteTemplateBeanFactoryDefinition());
-                return true;
-            }
-            return false;
-        }, noValueHandler());
-    }
-    protected RouteTemplateBeanFactoryDefinition 
doParseRouteTemplateBeanFactoryDefinition() throws IOException, 
XmlPullParserException {
-        return doParse(new RouteTemplateBeanFactoryDefinition(), (def, key, 
val) -> {
-            if ("language".equals(key)) {
-                def.setLanguage(val);
-                return true;
-            }
-            return false;
         }, noElementHandler(), (def, val) -> def.setScript(val));
     }
     protected RouteTemplateContextRefDefinition 
doParseRouteTemplateContextRefDefinition() throws IOException, 
XmlPullParserException {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index dc002bf..b681d4a 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -72,7 +72,6 @@ import org.apache.camel.model.RouteBuilderDefinition;
 import org.apache.camel.model.RouteContextRefDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RouteTemplateBeanDefinition;
-import org.apache.camel.model.RouteTemplateBeanFactoryDefinition;
 import org.apache.camel.model.RouteTemplateParameterDefinition;
 import org.apache.camel.model.RoutingSlipDefinition;
 import org.apache.camel.model.SagaActionUriDefinition;
@@ -11740,9 +11739,9 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
             order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
             nodes = "template-bean",
             properties = {
-                    @YamlProperty(name = "template-bean-factory", type = 
"object:org.apache.camel.model.RouteTemplateBeanFactoryDefinition"),
-                    @YamlProperty(name = "bean-type", type = "string"),
-                    @YamlProperty(name = "name", type = "string", required = 
true)
+                    @YamlProperty(name = "language", type = "string", required 
= true),
+                    @YamlProperty(name = "name", type = "string", required = 
true),
+                    @YamlProperty(name = "script", type = "string", required = 
true)
             }
     )
     public static class RouteTemplateBeanDefinitionDeserializer extends 
YamlDeserializerBase<RouteTemplateBeanDefinition> {
@@ -11764,14 +11763,9 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
         protected boolean setProperty(RouteTemplateBeanDefinition target, 
String propertyKey,
                 String propertyName, Node node) {
             switch(propertyKey) {
-                case "template-bean-factory": {
-                    org.apache.camel.model.RouteTemplateBeanFactoryDefinition 
val = asType(node, 
org.apache.camel.model.RouteTemplateBeanFactoryDefinition.class);
-                    target.setBeanFactory(val);
-                    break;
-                }
-                case "bean-type": {
+                case "language": {
                     String val = asText(node);
-                    target.setBeanType(val);
+                    target.setLanguage(val);
                     break;
                 }
                 case "name": {
@@ -11779,42 +11773,6 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
                     target.setName(val);
                     break;
                 }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
-    @YamlType(
-            types = 
org.apache.camel.model.RouteTemplateBeanFactoryDefinition.class,
-            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            nodes = "template-bean-factory",
-            properties = {
-                    @YamlProperty(name = "language", type = "string", required 
= true),
-                    @YamlProperty(name = "script", type = "string")
-            }
-    )
-    public static class RouteTemplateBeanFactoryDefinitionDeserializer extends 
YamlDeserializerBase<RouteTemplateBeanFactoryDefinition> {
-        public RouteTemplateBeanFactoryDefinitionDeserializer() {
-            super(RouteTemplateBeanFactoryDefinition.class);
-        }
-
-        @Override
-        protected RouteTemplateBeanFactoryDefinition newInstance() {
-            return new RouteTemplateBeanFactoryDefinition();
-        }
-
-        @Override
-        protected boolean setProperty(RouteTemplateBeanFactoryDefinition 
target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "language": {
-                    String val = asText(node);
-                    target.setLanguage(val);
-                    break;
-                }
                 case "script": {
                     String val = asText(node);
                     target.setScript(val);
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index df0fe5b98..10d3065 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -294,8 +294,6 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             case "org.apache.camel.model.RouteDefinition": return new 
ModelDeserializers.RouteDefinitionDeserializer();
             case "template-bean": return new 
ModelDeserializers.RouteTemplateBeanDefinitionDeserializer();
             case "org.apache.camel.model.RouteTemplateBeanDefinition": return 
new ModelDeserializers.RouteTemplateBeanDefinitionDeserializer();
-            case "template-bean-factory": return new 
ModelDeserializers.RouteTemplateBeanFactoryDefinitionDeserializer();
-            case "org.apache.camel.model.RouteTemplateBeanFactoryDefinition": 
return new ModelDeserializers.RouteTemplateBeanFactoryDefinitionDeserializer();
             case "template-parameter": return new 
ModelDeserializers.RouteTemplateParameterDefinitionDeserializer();
             case "org.apache.camel.model.RouteTemplateParameterDefinition": 
return new ModelDeserializers.RouteTemplateParameterDefinitionDeserializer();
             case "routing-slip": return new 
ModelDeserializers.RoutingSlipDefinitionDeserializer();
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index 53b5ec7..99d1e9b 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -2065,30 +2065,18 @@
         }, {
           "type" : "object",
           "properties" : {
-            "bean-type" : {
+            "language" : {
               "type" : "string"
             },
             "name" : {
               "type" : "string"
             },
-            "template-bean-factory" : {
-              "$ref" : 
"#/items/definitions/org.apache.camel.model.RouteTemplateBeanFactoryDefinition"
+            "script" : {
+              "type" : "string"
             }
           }
         } ],
-        "required" : [ "name" ]
-      },
-      "org.apache.camel.model.RouteTemplateBeanFactoryDefinition" : {
-        "type" : "object",
-        "properties" : {
-          "language" : {
-            "type" : "string"
-          },
-          "script" : {
-            "type" : "string"
-          }
-        },
-        "required" : [ "language" ]
+        "required" : [ "language", "name", "script" ]
       },
       "org.apache.camel.model.RouteTemplateDefinition" : {
         "type" : "object",

Reply via email to