This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch kamelet-ctr5
in repository https://gitbox.apache.org/repos/asf/camel.git

commit d37e3815244b694a60f10734c5bc74c949a669f5
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri May 3 07:44:24 2024 +0200

    CAMEL-20514: camel-model - Add support for bean constructors for beans in 
route templates or kamelets
---
 .../org/apache/camel/catalog/models-app/beans.json |   2 +-
 .../org/apache/camel/catalog/models-app/camel.json |   2 +-
 .../apache/camel/catalog/models/routeTemplate.json |   2 +-
 .../camel/catalog/models/templatedRoute.json       |   2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  13 +-
 .../xml/blueprint/BlueprintXmlBeansHandler.java    |  40 ++--
 .../main/xml/spring/SpringXmlBeansHandler.java     |  24 +--
 .../{RegistryBeanDsl.kt => BeanFactoryDsl.kt}      |   6 +-
 .../main/kotlin/org/apache/camel/kotlin/RootDsl.kt |   8 +-
 .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java   |  12 +-
 .../dsl/yaml/deserializers/ModelDeserializers.java | 204 ++++++++++-----------
 .../deserializers/ModelDeserializersResolver.java  |   2 +-
 .../BeanFactoryDefinitionDeserializer.java         |   2 +-
 .../dsl/yaml/deserializers/BeansDeserializer.java  |  22 +--
 .../RouteTemplateDefinitionDeserializer.java       |   8 +-
 .../TemplatedRouteDefinitionDeserializer.java      |   8 +-
 .../generated/resources/schema/camelYamlDsl.json   |  92 +++++-----
 17 files changed, 221 insertions(+), 228 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/beans.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/beans.json
index 6ad9426c225..dd801661b8a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/beans.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/beans.json
@@ -13,7 +13,7 @@
   },
   "properties": {
     "component-scan": { "index": 0, "kind": "element", "displayName": 
"Component-scan", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.app.ComponentScanDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component scanning that can auto-discover Camel route builders from the 
classpath." },
-    "bean": { "index": 1, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.app.RegistryBeanDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "List 
of bean" },
+    "bean": { "index": 1, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.BeanFactoryDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "List of bean" },
     "restConfiguration": { "index": 2, "kind": "element", "displayName": "Rest 
Configuration", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.rest.RestConfigurationDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Camel 
Rest DSL Configuration" },
     "rest": { "index": 3, "kind": "element", "displayName": "Rest", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.rest.RestDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Camel Rest DSL" },
     "routeConfiguration": { "index": 4, "kind": "element", "displayName": 
"Route Configuration", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.RouteConfigurationDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Camel 
route configurations" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/camel.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/camel.json
index 27ba4be86f7..6e1d82aef40 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/camel.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models-app/camel.json
@@ -13,7 +13,7 @@
   },
   "properties": {
     "component-scan": { "index": 0, "kind": "element", "displayName": 
"Component-scan", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.app.ComponentScanDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component scanning that can auto-discover Camel route builders from the 
classpath." },
-    "bean": { "index": 1, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.app.RegistryBeanDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "List 
of bean" },
+    "bean": { "index": 1, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.BeanFactoryDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "List of bean" },
     "restConfiguration": { "index": 2, "kind": "element", "displayName": "Rest 
Configuration", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.rest.RestConfigurationDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Camel 
Rest DSL Configuration" },
     "rest": { "index": 3, "kind": "element", "displayName": "Rest", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.rest.RestDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Camel Rest DSL" },
     "routeConfiguration": { "index": 4, "kind": "element", "displayName": 
"Route Configuration", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.RouteConfigurationDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Camel 
route configurations" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routeTemplate.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routeTemplate.json
index 92e66275376..ecb22b81b72 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routeTemplate.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routeTemplate.json
@@ -15,7 +15,7 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "kind": "attribute", "displayName": 
"Description", "group": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Sets the description of this node" },
     "templateParameter": { "index": 2, "kind": "element", "displayName": 
"Template Parameter", "group": "common", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.apache.camel.model.RouteTemplateParameterDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Adds 
a template parameter the route template uses" },
-    "templateBean": { "index": 3, "kind": "element", "displayName": "Template 
Bean", "group": "common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.app.RegistryBeanDefinition<org.apache.camel.model.RouteTemplateDefinition>>",
 "deprecated": false, "autowired": false, "secret": false, "description": "Adds 
a local bean the route template uses" },
+    "templateBean": { "index": 3, "kind": "element", "displayName": "Template 
Bean", "group": "common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.BeanFactoryDefinition<org.apache.camel.model.RouteTemplateDefinition>>",
 "deprecated": false, "autowired": false, "secret": false, "description": "Adds 
a local bean the route template uses" },
     "route": { "index": 4, "kind": "element", "displayName": "Route", "group": 
"common", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.RouteDefinition", "deprecated": false, "autowired": 
false, "secret": false, "description": "To define the route in the template" }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRoute.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRoute.json
index 4757d0c39b6..b3c0f06fbb9 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRoute.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRoute.json
@@ -16,6 +16,6 @@
     "routeId": { "index": 1, "kind": "attribute", "displayName": "Route Id", 
"group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the id of the route built from the route template." },
     "prefixId": { "index": 2, "kind": "attribute", "displayName": "Prefix Id", 
"group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets a prefix to use for all node ids (not route id)." },
     "parameter": { "index": 3, "kind": "element", "displayName": "Parameter", 
"group": "common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.TemplatedRouteParameterDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Adds 
an input parameter of the template to build the route" },
-    "bean": { "index": 4, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.app.RegistryBeanDefinition<org.apache.camel.model.TemplatedRouteDefinition>>",
 "deprecated": false, "autowired": false, "secret": false, "description": "Adds 
a local bean as input of the template to build the route" }
+    "bean": { "index": 4, "kind": "element", "displayName": "Bean", "group": 
"common", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.BeanFactoryDefinition<org.apache.camel.model.TemplatedRouteDefinition>>",
 "deprecated": false, "autowired": false, "secret": false, "description": "Adds 
a local bean as input of the template to build the route" }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 21fd2144c23..40781bb557c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -3998,7 +3998,7 @@ implementation. Default value: Singleton
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-  <xs:complexType abstract="true" name="beanFactoryDefinition">
+  <xs:complexType name="beanFactoryDefinition">
     <xs:sequence>
       <xs:element minOccurs="0" name="constructors" 
type="tns:beanConstructorsDefinition"/>
       <xs:element minOccurs="0" name="properties" 
type="tns:beanPropertiesDefinition"/>
@@ -12417,7 +12417,7 @@ Reference to the route templates in the xml dsl.
       <xs:extension base="tns:optionalIdentifiedDefinition">
         <xs:sequence>
           <xs:element maxOccurs="unbounded" minOccurs="0" 
ref="tns:templateParameter"/>
-          <xs:element maxOccurs="unbounded" minOccurs="0" name="templateBean" 
type="tns:registryBeanDefinition">
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="templateBean" 
type="tns:beanFactoryDefinition">
             <xs:annotation>
               <xs:documentation xml:lang="en">
 <![CDATA[
@@ -12471,13 +12471,6 @@ Description of the parameter.
       </xs:annotation>
     </xs:attribute>
   </xs:complexType>
-  <xs:complexType name="registryBeanDefinition">
-    <xs:complexContent>
-      <xs:extension base="tns:beanFactoryDefinition">
-        <xs:sequence/>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
   <xs:complexType name="routeTemplatesDefinition">
     <xs:complexContent>
       <xs:extension base="tns:optionalIdentifiedDefinition">
@@ -13410,7 +13403,7 @@ Adds an input parameter of the template to build the 
route.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element maxOccurs="unbounded" minOccurs="0" name="bean" 
type="tns:registryBeanDefinition">
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="bean" 
type="tns:beanFactoryDefinition">
         <xs:annotation>
           <xs:documentation xml:lang="en">
 <![CDATA[
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java
index e37db6baded..494f07eb4e2 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java
@@ -25,6 +25,7 @@ import java.util.TreeMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -40,7 +41,6 @@ import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.main.util.XmlHelper;
 import org.apache.camel.model.Model;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.ResourceLoader;
@@ -66,7 +66,7 @@ public class BlueprintXmlBeansHandler {
     // that's why some beans should be processed later
     private final Map<String, Node> delayedBeans = new LinkedHashMap<>();
     private final Map<String, Resource> resources = new LinkedHashMap<>();
-    private final List<RegistryBeanDefinition> delayedRegistrations = new 
ArrayList<>();
+    private final List<BeanFactoryDefinition<?>> delayedRegistrations = new 
ArrayList<>();
     private final Map<String, KeyValueHolder<Object, String>> beansToDestroy = 
new LinkedHashMap<>();
     private boolean transform;
 
@@ -109,7 +109,7 @@ public class BlueprintXmlBeansHandler {
         for (Map.Entry<String, Node> entry : delayedBeans.entrySet()) {
             String id = entry.getKey();
             Node n = entry.getValue();
-            RegistryBeanDefinition def = createBeanModel(camelContext, id, n);
+            BeanFactoryDefinition<?> def = createBeanModel(camelContext, id, 
n);
             if (transform) {
                 // transform mode should only discover and remember bean in 
model
                 LOG.debug("Discovered bean: {}", def.getName());
@@ -122,7 +122,7 @@ public class BlueprintXmlBeansHandler {
 
         if (!delayedRegistrations.isEmpty()) {
             // some of the beans were not available yet, so we have to try 
register them now
-            for (RegistryBeanDefinition def : delayedRegistrations) {
+            for (BeanFactoryDefinition<?> def : delayedRegistrations) {
                 LOG.debug("Creating bean (2nd-try): {}", def.getName());
                 registerAndCreateBean(camelContext, def, false);
             }
@@ -131,32 +131,32 @@ public class BlueprintXmlBeansHandler {
 
     }
 
-    private RegistryBeanDefinition createBeanModel(CamelContext camelContext, 
String name, Node node) {
-        RegistryBeanDefinition rrd = new RegistryBeanDefinition();
-        rrd.setResource(resources.get(name));
-        rrd.setType(XmlHelper.getAttribute(node, "class"));
-        rrd.setName(name);
+    private BeanFactoryDefinition<?> createBeanModel(CamelContext 
camelContext, String name, Node node) {
+        BeanFactoryDefinition<?> def = new BeanFactoryDefinition<>();
+        def.setResource(resources.get(name));
+        def.setType(XmlHelper.getAttribute(node, "class"));
+        def.setName(name);
 
         // factory bean/method
         String fb = XmlHelper.getAttribute(node, "factory-ref");
         if (fb != null) {
-            rrd.setFactoryBean(fb);
+            def.setFactoryBean(fb);
         }
         String fm = XmlHelper.getAttribute(node, "factory-method");
         if (fm != null) {
-            rrd.setFactoryMethod(fm);
+            def.setFactoryMethod(fm);
         }
         String im = XmlHelper.getAttribute(node, "init-method");
         if (im != null) {
-            rrd.setInitMethod(im);
+            def.setInitMethod(im);
         }
         String dm = XmlHelper.getAttribute(node, "destroy-method");
         if (dm != null) {
-            rrd.setDestroyMethod(dm);
+            def.setDestroyMethod(dm);
         }
         // constructor arguments
         Map<Integer, Object> constructors = new LinkedHashMap<>();
-        rrd.setConstructors(constructors);
+        def.setConstructors(constructors);
         NodeList props = node.getChildNodes();
         int index = 0;
         for (int i = 0; i < props.getLength(); i++) {
@@ -173,7 +173,7 @@ public class BlueprintXmlBeansHandler {
             }
         }
         if (!constructors.isEmpty()) {
-            rrd.setConstructors(constructors);
+            def.setConstructors(constructors);
         }
 
         // property values
@@ -215,10 +215,10 @@ public class BlueprintXmlBeansHandler {
             }
         }
         if (!properties.isEmpty()) {
-            rrd.setProperties(properties);
+            def.setProperties(properties);
         }
 
-        return rrd;
+        return def;
     }
 
     private static List<Node> getChildNodes(Node node, String name) {
@@ -432,7 +432,7 @@ public class BlueprintXmlBeansHandler {
     /**
      * Try to instantiate bean from the definition.
      */
-    private void registerAndCreateBean(CamelContext camelContext, 
RegistryBeanDefinition def, boolean delayIfFailed) {
+    private void registerAndCreateBean(CamelContext camelContext, 
BeanFactoryDefinition<?> def, boolean delayIfFailed) {
         String type = def.getType();
         String name = def.getName();
         if (name == null || name.isBlank()) {
@@ -487,7 +487,7 @@ public class BlueprintXmlBeansHandler {
         }
     }
 
-    protected void bindBean(CamelContext camelContext, RegistryBeanDefinition 
def, String name, Object target)
+    protected void bindBean(CamelContext camelContext, 
BeanFactoryDefinition<?> def, String name, Object target)
             throws Exception {
         // destroy and unbind any existing bean
         destroyBean(name, true);
@@ -508,7 +508,7 @@ public class BlueprintXmlBeansHandler {
         addBeanToCamelModel(camelContext, name, def);
     }
 
-    protected void addBeanToCamelModel(CamelContext camelContext, String name, 
RegistryBeanDefinition def) {
+    protected void addBeanToCamelModel(CamelContext camelContext, String name, 
BeanFactoryDefinition<?> def) {
         // register bean in model
         Model model = 
camelContext.getCamelContextExtension().getContextPlugin(Model.class);
         if (model != null) {
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java
index ff0ac2c8d14..a66d77cea26 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java
@@ -30,12 +30,12 @@ import java.util.function.Supplier;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.w3c.dom.Document;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.model.Model;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.spi.ResourceLoader;
 import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.util.StringHelper;
@@ -220,40 +220,40 @@ public class SpringXmlBeansHandler {
         // register bean into model (as a BeanRegistry that allows Camel DSL 
to know about these beans)
         Model model = 
camelContext.getCamelContextExtension().getContextPlugin(Model.class);
         if (model != null) {
-            RegistryBeanDefinition rrd = new RegistryBeanDefinition();
+            BeanFactoryDefinition<?> bean = new BeanFactoryDefinition<>();
             if (def instanceof GenericBeanDefinition gbd) {
                 // set camel resource to refer to the source file
                 Resource res = gbd.getResource();
                 if (res != null) {
                     String fn = res.getFilename();
                     if (fn != null) {
-                        
rrd.setResource(camelContext.getCamelContextExtension().getContextPlugin(ResourceLoader.class)
+                        
bean.setResource(camelContext.getCamelContextExtension().getContextPlugin(ResourceLoader.class)
                                 .resolveResource("file:" + fn));
                     }
                 }
             }
-            rrd.setType(def.getBeanClassName());
-            rrd.setName(name);
+            bean.setType(def.getBeanClassName());
+            bean.setName(name);
             LOG.debug("Adding Spring <beans> XML bean: {} to DSL model", name);
-            model.addRegistryBean(rrd);
+            model.addRegistryBean(bean);
 
             // factory bean/method
             if (def.getFactoryBeanName() != null) {
-                rrd.setFactoryBean(def.getFactoryBeanName());
+                bean.setFactoryBean(def.getFactoryBeanName());
             }
             if (def.getFactoryMethodName() != null) {
-                rrd.setFactoryMethod(def.getFactoryMethodName());
+                bean.setFactoryMethod(def.getFactoryMethodName());
             }
             if (def.getInitMethodName() != null) {
-                rrd.setInitMethod(def.getInitMethodName());
+                bean.setInitMethod(def.getInitMethodName());
             }
             if (def.getDestroyMethodName() != null) {
-                rrd.setDestroyMethod(def.getDestroyMethodName());
+                bean.setDestroyMethod(def.getDestroyMethodName());
             }
             // constructor arguments
             if (def.hasConstructorArgumentValues()) {
                 Map<Integer, Object> constructors = new LinkedHashMap<>();
-                rrd.setConstructors(constructors);
+                bean.setConstructors(constructors);
 
                 ConstructorArgumentValues ctrs = 
def.getConstructorArgumentValues();
                 for (int i = 0; i < ctrs.getArgumentCount(); i++) {
@@ -272,7 +272,7 @@ public class SpringXmlBeansHandler {
             // property values
             if (def.hasPropertyValues()) {
                 Map<String, Object> properties = new LinkedHashMap<>();
-                rrd.setProperties(properties);
+                bean.setProperties(properties);
 
                 MutablePropertyValues values = def.getPropertyValues();
                 for (PropertyValue v : values) {
diff --git 
a/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RegistryBeanDsl.kt
 
b/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/BeanFactoryDsl.kt
similarity index 90%
rename from 
dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RegistryBeanDsl.kt
rename to 
dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/BeanFactoryDsl.kt
index e641710d6cc..aea48b22b4b 100644
--- 
a/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RegistryBeanDsl.kt
+++ 
b/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/BeanFactoryDsl.kt
@@ -16,11 +16,11 @@
  */
 package org.apache.camel.kotlin
 
-import org.apache.camel.model.app.RegistryBeanDefinition
+import org.apache.camel.model.BeanFactoryDefinition
 
 @CamelDslMarker
-class RegistryBeanDsl(
-    val def: RegistryBeanDefinition<Any>
+class BeanFactoryDsl(
+    val def: BeanFactoryDefinition<Any>
 ) {
 
     init {
diff --git 
a/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RootDsl.kt 
b/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RootDsl.kt
index 68944d42db5..be1d590281a 100644
--- a/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RootDsl.kt
+++ b/dsl/camel-kotlin-api/src/main/kotlin/org/apache/camel/kotlin/RootDsl.kt
@@ -21,8 +21,8 @@ import org.apache.camel.kotlin.model.InterceptFromDsl
 import org.apache.camel.kotlin.model.InterceptSendToEndpointDsl
 import org.apache.camel.kotlin.model.OnExceptionDsl
 import org.apache.camel.kotlin.model.rest.RestDsl
+import org.apache.camel.model.BeanFactoryDefinition
 import org.apache.camel.model.ModelCamelContext
-import org.apache.camel.model.app.RegistryBeanDefinition
 import org.apache.camel.model.rest.RestConfigurationDefinition
 import org.apache.camel.support.PropertyBindingSupport
 import kotlin.reflect.KClass
@@ -57,9 +57,9 @@ class RootDsl(
         ctx.registry.bind(name, function())
     }
 
-    fun bean(i: RegistryBeanDsl.() -> Unit) {
-        val def = RegistryBeanDefinition<Any>()
-        RegistryBeanDsl(def).apply(i)
+    fun bean(i: BeanFactoryDsl.() -> Unit) {
+        val def = BeanFactoryDefinition<Any>()
+        BeanFactoryDsl(def).apply(i)
         val type = ctx.classResolver.resolveMandatoryClass(def.type)
         val instance = ctx.injector.newInstance(type)
         if (!def.properties.isNullOrEmpty()) {
diff --git 
a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
 
b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
index 44749a26354..0b668ff1e8e 100644
--- 
a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
+++ 
b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
@@ -33,6 +33,7 @@ import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.RouteConfigurationBuilder;
 import org.apache.camel.dsl.support.RouteBuilderLoaderSupport;
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.apache.camel.model.BeanModelHelper;
 import org.apache.camel.model.Model;
 import org.apache.camel.model.RouteConfigurationDefinition;
@@ -44,7 +45,6 @@ import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.TemplatedRoutesDefinition;
 import org.apache.camel.model.app.BeansDefinition;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
@@ -71,7 +71,7 @@ public class XmlRoutesBuilderLoader extends 
RouteBuilderLoaderSupport {
     private final Map<String, Resource> resourceCache = new 
ConcurrentHashMap<>();
     private final Map<String, XmlStreamInfo> xmlInfoCache = new 
ConcurrentHashMap<>();
     private final Map<String, BeansDefinition> camelAppCache = new 
ConcurrentHashMap<>();
-    private final List<RegistryBeanDefinition> delayedRegistrations = new 
ArrayList<>();
+    private final List<BeanFactoryDefinition<?>> delayedRegistrations = new 
ArrayList<>();
     private final Map<String, KeyValueHolder<Object, String>> beansToDestroy = 
new LinkedHashMap<>();
 
     private final AtomicInteger counter = new AtomicInteger(0);
@@ -172,7 +172,7 @@ public class XmlRoutesBuilderLoader extends 
RouteBuilderLoaderSupport {
             private void configureCamel(BeansDefinition app) {
                 if (!delayedRegistrations.isEmpty()) {
                     // some of the beans were not available yet, so we have to 
try register them now
-                    for (RegistryBeanDefinition def : delayedRegistrations) {
+                    for (BeanFactoryDefinition<?> def : delayedRegistrations) {
                         def.setResource(getResource());
                         registerBeanDefinition(def, false);
                     }
@@ -299,7 +299,7 @@ public class XmlRoutesBuilderLoader extends 
RouteBuilderLoaderSupport {
         PackageScanHelper.registerBeans(getCamelContext(), packagesToScan);
 
         // <bean>s - register Camel beans directly with Camel injection
-        for (RegistryBeanDefinition def : app.getBeans()) {
+        for (BeanFactoryDefinition<?> def : app.getBeans()) {
             def.setResource(resource);
             registerBeanDefinition(def, true);
         }
@@ -330,7 +330,7 @@ public class XmlRoutesBuilderLoader extends 
RouteBuilderLoaderSupport {
      * Try to instantiate bean from the definition. Depending on the stage 
({@link #preParseRoute} or
      * {@link #doLoadRouteBuilder}), a failure may lead to delayed 
registration.
      */
-    private void registerBeanDefinition(RegistryBeanDefinition def, boolean 
delayIfFailed) {
+    private void registerBeanDefinition(BeanFactoryDefinition<?> def, boolean 
delayIfFailed) {
         String name = def.getName();
         String type = def.getType();
         try {
@@ -347,7 +347,7 @@ public class XmlRoutesBuilderLoader extends 
RouteBuilderLoaderSupport {
         }
     }
 
-    protected void bindBean(RegistryBeanDefinition def, String name, Object 
target) throws Exception {
+    protected void bindBean(BeanFactoryDefinition<?> def, String name, Object 
target) throws Exception {
         // destroy and unbind any existing bean
         destroyBean(name, true);
         getCamelContext().getRegistry().unbind(name);
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 a851b04e890..5e2ed4e96fc 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
@@ -12,6 +12,7 @@ import 
org.apache.camel.dsl.yaml.common.YamlDeserializerEndpointAwareBase;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerSupport;
 import org.apache.camel.model.AggregateDefinition;
 import org.apache.camel.model.BeanDefinition;
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.apache.camel.model.CatchDefinition;
 import org.apache.camel.model.ChoiceDefinition;
 import org.apache.camel.model.CircuitBreakerDefinition;
@@ -109,7 +110,6 @@ import 
org.apache.camel.model.app.BeanConstructorsDefinition;
 import org.apache.camel.model.app.BeanPropertiesDefinition;
 import org.apache.camel.model.app.BeanPropertyDefinition;
 import org.apache.camel.model.app.ComponentScanDefinition;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import 
org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration;
 import 
org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration;
 import 
org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration;
@@ -1171,6 +1171,107 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            types = org.apache.camel.model.BeanFactoryDefinition.class,
+            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            properties = {
+                    @YamlProperty(name = "builderClass", type = "string"),
+                    @YamlProperty(name = "builderMethod", type = "string"),
+                    @YamlProperty(name = "constructors", type = "object"),
+                    @YamlProperty(name = "destroyMethod", type = "string"),
+                    @YamlProperty(name = "factoryBean", type = "string"),
+                    @YamlProperty(name = "factoryMethod", type = "string"),
+                    @YamlProperty(name = "initMethod", type = "string"),
+                    @YamlProperty(name = "name", type = "string", required = 
true),
+                    @YamlProperty(name = "properties", type = "object"),
+                    @YamlProperty(name = "script", type = "string"),
+                    @YamlProperty(name = "scriptLanguage", type = "string"),
+                    @YamlProperty(name = "type", type = "string", required = 
true)
+            }
+    )
+    public static class BeanFactoryDefinitionDeserializer extends 
YamlDeserializerBase<BeanFactoryDefinition> {
+        public BeanFactoryDefinitionDeserializer() {
+            super(BeanFactoryDefinition.class);
+        }
+
+        @Override
+        protected BeanFactoryDefinition newInstance() {
+            return new BeanFactoryDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(BeanFactoryDefinition target, String 
propertyKey,
+                String propertyName, Node node) {
+            propertyKey = 
org.apache.camel.util.StringHelper.dashToCamelCase(propertyKey);
+            switch(propertyKey) {
+                case "builderClass": {
+                    String val = asText(node);
+                    target.setBuilderClass(val);
+                    break;
+                }
+                case "builderMethod": {
+                    String val = asText(node);
+                    target.setBuilderMethod(val);
+                    break;
+                }
+                case "constructors": {
+                    java.util.Map val = asMap(node);
+                    target.setConstructors(val);
+                    break;
+                }
+                case "destroyMethod": {
+                    String val = asText(node);
+                    target.setDestroyMethod(val);
+                    break;
+                }
+                case "factoryBean": {
+                    String val = asText(node);
+                    target.setFactoryBean(val);
+                    break;
+                }
+                case "factoryMethod": {
+                    String val = asText(node);
+                    target.setFactoryMethod(val);
+                    break;
+                }
+                case "initMethod": {
+                    String val = asText(node);
+                    target.setInitMethod(val);
+                    break;
+                }
+                case "name": {
+                    String val = asText(node);
+                    target.setName(val);
+                    break;
+                }
+                case "properties": {
+                    java.util.Map val = asMap(node);
+                    target.setProperties(val);
+                    break;
+                }
+                case "script": {
+                    String val = asText(node);
+                    target.setScript(val);
+                    break;
+                }
+                case "scriptLanguage": {
+                    String val = asText(node);
+                    target.setScriptLanguage(val);
+                    break;
+                }
+                case "type": {
+                    String val = asText(node);
+                    target.setType(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.model.app.BeanPropertiesDefinition.class,
             order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -12870,107 +12971,6 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            types = org.apache.camel.model.app.RegistryBeanDefinition.class,
-            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = {
-                    @YamlProperty(name = "builderClass", type = "string"),
-                    @YamlProperty(name = "builderMethod", type = "string"),
-                    @YamlProperty(name = "constructors", type = "object"),
-                    @YamlProperty(name = "destroyMethod", type = "string"),
-                    @YamlProperty(name = "factoryBean", type = "string"),
-                    @YamlProperty(name = "factoryMethod", type = "string"),
-                    @YamlProperty(name = "initMethod", type = "string"),
-                    @YamlProperty(name = "name", type = "string", required = 
true),
-                    @YamlProperty(name = "properties", type = "object"),
-                    @YamlProperty(name = "script", type = "string"),
-                    @YamlProperty(name = "scriptLanguage", type = "string"),
-                    @YamlProperty(name = "type", type = "string", required = 
true)
-            }
-    )
-    public static class RegistryBeanDefinitionDeserializer extends 
YamlDeserializerBase<RegistryBeanDefinition> {
-        public RegistryBeanDefinitionDeserializer() {
-            super(RegistryBeanDefinition.class);
-        }
-
-        @Override
-        protected RegistryBeanDefinition newInstance() {
-            return new RegistryBeanDefinition();
-        }
-
-        @Override
-        protected boolean setProperty(RegistryBeanDefinition target, String 
propertyKey,
-                String propertyName, Node node) {
-            propertyKey = 
org.apache.camel.util.StringHelper.dashToCamelCase(propertyKey);
-            switch(propertyKey) {
-                case "builderClass": {
-                    String val = asText(node);
-                    target.setBuilderClass(val);
-                    break;
-                }
-                case "builderMethod": {
-                    String val = asText(node);
-                    target.setBuilderMethod(val);
-                    break;
-                }
-                case "constructors": {
-                    java.util.Map val = asMap(node);
-                    target.setConstructors(val);
-                    break;
-                }
-                case "destroyMethod": {
-                    String val = asText(node);
-                    target.setDestroyMethod(val);
-                    break;
-                }
-                case "factoryBean": {
-                    String val = asText(node);
-                    target.setFactoryBean(val);
-                    break;
-                }
-                case "factoryMethod": {
-                    String val = asText(node);
-                    target.setFactoryMethod(val);
-                    break;
-                }
-                case "initMethod": {
-                    String val = asText(node);
-                    target.setInitMethod(val);
-                    break;
-                }
-                case "name": {
-                    String val = asText(node);
-                    target.setName(val);
-                    break;
-                }
-                case "properties": {
-                    java.util.Map val = asMap(node);
-                    target.setProperties(val);
-                    break;
-                }
-                case "script": {
-                    String val = asText(node);
-                    target.setScript(val);
-                    break;
-                }
-                case "scriptLanguage": {
-                    String val = asText(node);
-                    target.setScriptLanguage(val);
-                    break;
-                }
-                case "type": {
-                    String val = asText(node);
-                    target.setType(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             nodes = {
                     "remove-header",
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 b26dafbf115..b00777a26dd 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
@@ -38,6 +38,7 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             case "org.apache.camel.model.app.BeanConstructorsDefinition": 
return new ModelDeserializers.BeanConstructorsDefinitionDeserializer();
             case "bean": return new 
ModelDeserializers.BeanDefinitionDeserializer();
             case "org.apache.camel.model.BeanDefinition": return new 
ModelDeserializers.BeanDefinitionDeserializer();
+            case "org.apache.camel.model.BeanFactoryDefinition": return new 
ModelDeserializers.BeanFactoryDefinitionDeserializer();
             case "org.apache.camel.model.app.BeanPropertiesDefinition": return 
new ModelDeserializers.BeanPropertiesDefinitionDeserializer();
             case "org.apache.camel.model.app.BeanPropertyDefinition": return 
new ModelDeserializers.BeanPropertyDefinitionDeserializer();
             case "beanio": return new 
ModelDeserializers.BeanioDataFormatDeserializer();
@@ -338,7 +339,6 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             case 
"org.apache.camel.model.errorhandler.RefErrorHandlerDefinition": return new 
ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
             case "ref": return new 
ModelDeserializers.RefExpressionDeserializer();
             case "org.apache.camel.model.language.RefExpression": return new 
ModelDeserializers.RefExpressionDeserializer();
-            case "org.apache.camel.model.app.RegistryBeanDefinition": return 
new ModelDeserializers.RegistryBeanDefinitionDeserializer();
             case "remove-header": return new 
ModelDeserializers.RemoveHeaderDefinitionDeserializer();
             case "removeHeader": return new 
ModelDeserializers.RemoveHeaderDefinitionDeserializer();
             case "org.apache.camel.model.RemoveHeaderDefinition": return new 
ModelDeserializers.RemoveHeaderDefinitionDeserializer();
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeanFactoryDefinitionDeserializer.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeanFactoryDefinitionDeserializer.java
index 5acaf6c01a9..14377812c29 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeanFactoryDefinitionDeserializer.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeanFactoryDefinitionDeserializer.java
@@ -28,7 +28,7 @@ import org.snakeyaml.engine.v2.nodes.Node;
  *
  * @param <T> the type of nodes that define a bean factory
  */
-public abstract class BeanFactoryDefinitionDeserializer<T extends 
BeanFactoryDefinition<?, ?>> extends YamlDeserializerBase<T> {
+public abstract class BeanFactoryDefinitionDeserializer<T extends 
BeanFactoryDefinition<?>> extends YamlDeserializerBase<T> {
 
     protected BeanFactoryDefinitionDeserializer(Class<T> clazz) {
         super(clazz);
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
index a54a0340877..c6ed2500a50 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
@@ -27,9 +27,9 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.dsl.yaml.common.YamlDeserializationContext;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerSupport;
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.apache.camel.model.BeanModelHelper;
 import org.apache.camel.model.Model;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.spi.CamelContextCustomizer;
 import org.apache.camel.spi.annotations.YamlIn;
 import org.apache.camel.spi.annotations.YamlProperty;
@@ -48,7 +48,7 @@ import org.snakeyaml.engine.v2.nodes.SequenceNode;
           order = YamlDeserializerResolver.ORDER_DEFAULT,
           properties = {
                   @YamlProperty(name = "__extends",
-                                type = 
"array:org.apache.camel.model.app.RegistryBeanDefinition")
+                                type = 
"array:org.apache.camel.model.BeanFactoryDefinition")
           })
 public class BeansDeserializer extends YamlDeserializerSupport implements 
ConstructNode {
 
@@ -66,7 +66,7 @@ public class BeansDeserializer extends 
YamlDeserializerSupport implements Constr
         for (Node item : sn.getValue()) {
             setDeserializationContext(item, dc);
 
-            RegistryBeanDefinition bean = asType(item, 
RegistryBeanDefinition.class);
+            BeanFactoryDefinition<?> bean = asType(item, 
BeanFactoryDefinition.class);
             if (dc != null) {
                 bean.setResource(dc.getResource());
             }
@@ -101,8 +101,8 @@ public class BeansDeserializer extends 
YamlDeserializerSupport implements Constr
 
     protected void registerBean(
             CamelContext camelContext,
-            List<RegistryBeanDefinition> delayedRegistrations,
-            RegistryBeanDefinition def, boolean delayIfFailed) {
+            List<BeanFactoryDefinition<?>> delayedRegistrations,
+            BeanFactoryDefinition<?> def, boolean delayIfFailed) {
 
         String name = def.getName();
         String type = def.getType();
@@ -122,22 +122,22 @@ public class BeansDeserializer extends 
YamlDeserializerSupport implements Constr
 
     private class BeansCustomizer implements CamelContextCustomizer {
 
-        private final List<RegistryBeanDefinition> delayedRegistrations = new 
ArrayList<>();
-        private final List<RegistryBeanDefinition> beans = new ArrayList<>();
+        private final List<BeanFactoryDefinition<?>> delayedRegistrations = 
new ArrayList<>();
+        private final List<BeanFactoryDefinition<?>> beans = new ArrayList<>();
 
-        public void addBean(RegistryBeanDefinition bean) {
+        public void addBean(BeanFactoryDefinition<?> bean) {
             beans.add(bean);
         }
 
         @Override
         public void configure(CamelContext camelContext) {
             // first-pass of creating beans
-            for (RegistryBeanDefinition bean : beans) {
+            for (BeanFactoryDefinition<?> bean : beans) {
                 registerBean(camelContext, delayedRegistrations, bean, true);
             }
             beans.clear();
             // second-pass of creating beans should fail if not possible
-            for (RegistryBeanDefinition bean : delayedRegistrations) {
+            for (BeanFactoryDefinition<?> bean : delayedRegistrations) {
                 registerBean(camelContext, delayedRegistrations, bean, false);
             }
             delayedRegistrations.clear();
@@ -145,7 +145,7 @@ public class BeansDeserializer extends 
YamlDeserializerSupport implements Constr
     }
 
     protected void bindBean(
-            CamelContext camelContext, RegistryBeanDefinition def,
+            CamelContext camelContext, BeanFactoryDefinition<?> def,
             String name, Object target)
             throws Exception {
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
index e841c2db6d9..148f742ffd7 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
@@ -20,10 +20,10 @@ import java.util.List;
 
 import org.apache.camel.dsl.yaml.common.YamlDeserializerBase;
 import org.apache.camel.dsl.yaml.common.exception.InvalidRouteException;
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RouteTemplateDefinition;
 import org.apache.camel.model.RouteTemplateParameterDefinition;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.spi.annotations.YamlIn;
 import org.apache.camel.spi.annotations.YamlProperty;
 import org.apache.camel.spi.annotations.YamlType;
@@ -46,7 +46,7 @@ import org.snakeyaml.engine.v2.nodes.Node;
                   @YamlProperty(name = "parameters",
                                 type = 
"array:org.apache.camel.model.RouteTemplateParameterDefinition"),
                   @YamlProperty(name = "beans",
-                                type = 
"array:org.apache.camel.model.app.RegistryBeanDefinition")
+                                type = 
"array:org.apache.camel.model.BeanFactoryDefinition")
           })
 public class RouteTemplateDefinitionDeserializer extends 
YamlDeserializerBase<RouteTemplateDefinition> {
 
@@ -93,8 +93,8 @@ public class RouteTemplateDefinitionDeserializer extends 
YamlDeserializerBase<Ro
                 break;
             }
             case "beans": {
-                List<RegistryBeanDefinition<RouteTemplateDefinition>> items
-                        = (List) asFlatList(node, 
RegistryBeanDefinition.class);
+                List<BeanFactoryDefinition<RouteTemplateDefinition>> items
+                        = (List) asFlatList(node, BeanFactoryDefinition.class);
                 target.setTemplateBeans(items);
                 break;
             }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/TemplatedRouteDefinitionDeserializer.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/TemplatedRouteDefinitionDeserializer.java
index a68c1618532..62d084c3562 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/TemplatedRouteDefinitionDeserializer.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/TemplatedRouteDefinitionDeserializer.java
@@ -19,9 +19,9 @@ package org.apache.camel.dsl.yaml.deserializers;
 import java.util.List;
 
 import org.apache.camel.dsl.yaml.common.YamlDeserializerBase;
+import org.apache.camel.model.BeanFactoryDefinition;
 import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.TemplatedRouteParameterDefinition;
-import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.spi.annotations.YamlIn;
 import org.apache.camel.spi.annotations.YamlProperty;
 import org.apache.camel.spi.annotations.YamlType;
@@ -43,7 +43,7 @@ import org.snakeyaml.engine.v2.nodes.Node;
                   @YamlProperty(name = "parameters",
                                 type = 
"array:org.apache.camel.model.TemplatedRouteParameterDefinition"),
                   @YamlProperty(name = "beans",
-                                type = 
"array:org.apache.camel.model.app.RegistryBeanDefinition")
+                                type = 
"array:org.apache.camel.model.BeanFactoryDefinition")
           })
 public class TemplatedRouteDefinitionDeserializer extends 
YamlDeserializerBase<TemplatedRouteDefinition> {
 
@@ -80,8 +80,8 @@ public class TemplatedRouteDefinitionDeserializer extends 
YamlDeserializerBase<T
                 break;
             }
             case "beans": {
-                List<RegistryBeanDefinition<TemplatedRouteDefinition>> items
-                        = (List) asFlatList(node, 
RegistryBeanDefinition.class);
+                List<BeanFactoryDefinition<TemplatedRouteDefinition>> items
+                        = (List) asFlatList(node, BeanFactoryDefinition.class);
                 target.setBeans(items);
                 break;
             }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index 5fda37d1ff8..bbefdae5a15 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -214,7 +214,7 @@
         "type" : "array",
         "additionalProperties" : false,
         "items" : {
-          "$ref" : 
"#/items/definitions/org.apache.camel.model.app.RegistryBeanDefinition"
+          "$ref" : 
"#/items/definitions/org.apache.camel.model.BeanFactoryDefinition"
         }
       },
       "org.apache.camel.dsl.yaml.deserializers.ErrorHandlerDeserializer" : {
@@ -567,6 +567,49 @@
           }
         } ]
       },
+      "org.apache.camel.model.BeanFactoryDefinition" : {
+        "type" : "object",
+        "additionalProperties" : false,
+        "properties" : {
+          "builderClass" : {
+            "type" : "string"
+          },
+          "builderMethod" : {
+            "type" : "string"
+          },
+          "constructors" : {
+            "type" : "object"
+          },
+          "destroyMethod" : {
+            "type" : "string"
+          },
+          "factoryBean" : {
+            "type" : "string"
+          },
+          "factoryMethod" : {
+            "type" : "string"
+          },
+          "initMethod" : {
+            "type" : "string"
+          },
+          "name" : {
+            "type" : "string"
+          },
+          "properties" : {
+            "type" : "object"
+          },
+          "script" : {
+            "type" : "string"
+          },
+          "scriptLanguage" : {
+            "type" : "string"
+          },
+          "type" : {
+            "type" : "string"
+          }
+        },
+        "required" : [ "name", "type" ]
+      },
       "org.apache.camel.model.CatchDefinition" : {
         "title" : "Do Catch",
         "description" : "Catches exceptions as part of a try, catch, finally 
block",
@@ -5194,7 +5237,7 @@
           "beans" : {
             "type" : "array",
             "items" : {
-              "$ref" : 
"#/items/definitions/org.apache.camel.model.app.RegistryBeanDefinition"
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.BeanFactoryDefinition"
             }
           },
           "description" : {
@@ -6632,7 +6675,7 @@
           "beans" : {
             "type" : "array",
             "items" : {
-              "$ref" : 
"#/items/definitions/org.apache.camel.model.app.RegistryBeanDefinition"
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.BeanFactoryDefinition"
             }
           },
           "parameters" : {
@@ -8385,49 +8428,6 @@
           }
         }
       },
-      "org.apache.camel.model.app.RegistryBeanDefinition" : {
-        "type" : "object",
-        "additionalProperties" : false,
-        "properties" : {
-          "builderClass" : {
-            "type" : "string"
-          },
-          "builderMethod" : {
-            "type" : "string"
-          },
-          "constructors" : {
-            "type" : "object"
-          },
-          "destroyMethod" : {
-            "type" : "string"
-          },
-          "factoryBean" : {
-            "type" : "string"
-          },
-          "factoryMethod" : {
-            "type" : "string"
-          },
-          "initMethod" : {
-            "type" : "string"
-          },
-          "name" : {
-            "type" : "string"
-          },
-          "properties" : {
-            "type" : "object"
-          },
-          "script" : {
-            "type" : "string"
-          },
-          "scriptLanguage" : {
-            "type" : "string"
-          },
-          "type" : {
-            "type" : "string"
-          }
-        },
-        "required" : [ "name", "type" ]
-      },
       
"org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration" : 
{
         "title" : "Blacklist Service Filter",
         "deprecated" : true,

Reply via email to