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

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

commit 697e2c120d4e7e0497ba2f72f258489ef3f72ba3
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu May 2 21:54:31 2024 +0200

    CAMEL-20514: camel-model - Add support for bean constructors for beans in 
route templates or kamelets
---
 .../camel/catalog/models/templatedRoute.json       |  2 +-
 .../camel/catalog/models/templatedRouteBean.json   |  2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  4 ++--
 .../java/org/apache/camel/impl/DefaultModel.java   |  5 ++---
 .../org/apache/camel/model/templatedRoute.json     |  2 +-
 .../org/apache/camel/model/templatedRouteBean.json |  2 +-
 .../camel/model/TemplatedRouteBeanDefinition.java  |  1 +
 .../camel/model/TemplatedRouteDefinition.java      | 23 +++++++++++-----------
 .../java/org/apache/camel/xml/in/ModelParser.java  |  2 +-
 .../java/org/apache/camel/xml/out/ModelWriter.java |  2 +-
 .../org/apache/camel/yaml/out/ModelWriter.java     |  2 +-
 11 files changed, 24 insertions(+), 23 deletions(-)

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 6e72d6f6a60..4757d0c39b6 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.TemplatedRouteBeanDefinition>", 
"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.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" }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRouteBean.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRouteBean.json
index 04f6d78a1d9..d487b346f69 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRouteBean.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/templatedRouteBean.json
@@ -4,7 +4,7 @@
     "name": "templatedRouteBean",
     "title": "Templated Route Bean",
     "description": "A bean as input of a route template (local bean)",
-    "deprecated": false,
+    "deprecated": true,
     "label": "configuration",
     "javaType": "org.apache.camel.model.TemplatedRouteBeanDefinition",
     "abstract": false,
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 56c1a04480e..5a43bd3cac1 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
@@ -1945,7 +1945,7 @@ Defines a templated route (a route built from a route 
template)
     <xs:annotation>
       <xs:documentation xml:lang="en">
 <![CDATA[
-A bean as input of a route template (local bean)
+Deprecated: A bean as input of a route template (local bean)
 ]]>
       </xs:documentation>
     </xs:annotation>
@@ -13529,7 +13529,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:templatedRouteBeanDefinition">
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="bean" 
type="tns:registryBeanDefinition">
         <xs:annotation>
           <xs:documentation xml:lang="en">
 <![CDATA[
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 ea41f2587b4..8717282647a 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
@@ -47,7 +47,6 @@ import org.apache.camel.model.RouteFilters;
 import org.apache.camel.model.RouteTemplateDefinition;
 import org.apache.camel.model.RouteTemplateParameterDefinition;
 import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.model.TemplatedRouteBeanDefinition;
 import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.TemplatedRouteParameterDefinition;
 import org.apache.camel.model.ToDefinition;
@@ -557,9 +556,9 @@ public class DefaultModel implements Model {
 
         final RouteTemplateContext routeTemplateContext = 
toRouteTemplateContext(templatedRouteDefinition);
         // Bind the beans into the context
-        final List<TemplatedRouteBeanDefinition> beans = 
templatedRouteDefinition.getBeans();
+        final List<RegistryBeanDefinition<TemplatedRouteDefinition>> beans = 
templatedRouteDefinition.getBeans();
         if (beans != null) {
-            for (TemplatedRouteBeanDefinition beanDefinition : beans) {
+            for (RegistryBeanDefinition<TemplatedRouteDefinition> 
beanDefinition : beans) {
                 BeanModelHelper.bind(beanDefinition, routeTemplateContext);
             }
         }
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRoute.json
 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRoute.json
index 6e72d6f6a60..4757d0c39b6 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRoute.json
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/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.TemplatedRouteBeanDefinition>", 
"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.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" }
   }
 }
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRouteBean.json
 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRouteBean.json
index 04f6d78a1d9..d487b346f69 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRouteBean.json
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRouteBean.json
@@ -4,7 +4,7 @@
     "name": "templatedRouteBean",
     "title": "Templated Route Bean",
     "description": "A bean as input of a route template (local bean)",
-    "deprecated": false,
+    "deprecated": true,
     "label": "configuration",
     "javaType": "org.apache.camel.model.TemplatedRouteBeanDefinition",
     "abstract": false,
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteBeanDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteBeanDefinition.java
index feed846653a..a88081cd84c 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteBeanDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteBeanDefinition.java
@@ -28,6 +28,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "configuration")
 @XmlRootElement(name = "templatedRouteBean")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Deprecated
 public class TemplatedRouteBeanDefinition
         extends BeanFactoryDefinition<TemplatedRouteBeanDefinition, 
TemplatedRouteDefinition> {
 }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
index 6d1b728e9cd..e5f09bcd1aa 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
@@ -32,6 +32,7 @@ import jakarta.xml.bind.annotation.XmlType;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.RouteTemplateContext;
+import org.apache.camel.model.app.RegistryBeanDefinition;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.ResourceAware;
@@ -61,7 +62,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
     private List<TemplatedRouteParameterDefinition> parameters;
     @XmlElement(name = "bean")
     @Metadata(description = "Adds a local bean as input of the template to 
build the route")
-    private List<TemplatedRouteBeanDefinition> beans;
+    private List<RegistryBeanDefinition<TemplatedRouteDefinition>> beans;
 
     public String getRouteTemplateRef() {
         return routeTemplateRef;
@@ -79,11 +80,11 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         this.parameters = parameters;
     }
 
-    public List<TemplatedRouteBeanDefinition> getBeans() {
+    public List<RegistryBeanDefinition<TemplatedRouteDefinition>> getBeans() {
         return beans;
     }
 
-    public void setBeans(List<TemplatedRouteBeanDefinition> beans) {
+    public void 
setBeans(List<RegistryBeanDefinition<TemplatedRouteDefinition>> beans) {
         this.beans = beans;
     }
 
@@ -157,7 +158,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         def.setBeanType(type);
         beans.add(def);
@@ -175,7 +176,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         if (bean instanceof RouteTemplateContext.BeanSupplier) {
             def.setBeanSupplier((RouteTemplateContext.BeanSupplier<Object>) 
bean);
@@ -201,7 +202,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         def.setBeanSupplier(ctx -> ((Supplier<?>) bean).get());
         beans.add(def);
@@ -219,7 +220,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         def.setBeanType(type);
         def.setBeanSupplier(bean);
@@ -238,7 +239,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         def.setType(language);
         def.setScript(script);
@@ -258,7 +259,7 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setName(name);
         def.setBeanType(type);
         def.setType(language);
@@ -273,11 +274,11 @@ public class TemplatedRouteDefinition implements 
CamelContextAware, ResourceAwar
      * @param  name the name of the bean
      * @return      fluent builder to choose which language and script to use 
for creating the bean
      */
-    public TemplatedRouteBeanDefinition bean(String name) {
+    public RegistryBeanDefinition<TemplatedRouteDefinition> bean(String name) {
         if (beans == null) {
             beans = new ArrayList<>();
         }
-        TemplatedRouteBeanDefinition def = new TemplatedRouteBeanDefinition();
+        RegistryBeanDefinition<TemplatedRouteDefinition> def = new 
RegistryBeanDefinition<>();
         def.setParent(this);
         def.setName(name);
         beans.add(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 c48f006aaaf..1c8833dd7f4 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
@@ -1122,7 +1122,7 @@ public class ModelParser extends BaseParser {
                 case "routeTemplateRef": def.setRouteTemplateRef(val); yield 
true;
                 default: yield false;
             }, (def, key) -> switch (key) {
-                case "bean": doAdd(doParseTemplatedRouteBeanDefinition(), 
def.getBeans(), def::setBeans); yield true;
+                case "bean": doAdd(doParseRegistryBeanDefinition(), 
def.getBeans(), def::setBeans); yield true;
                 case "parameter": 
doAdd(doParseTemplatedRouteParameterDefinition(), def.getParameters(), 
def::setParameters); yield true;
                 default: yield false;
             }, noValueHandler());
diff --git 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
index 11d23552707..b8cd80175f7 100644
--- 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
+++ 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
@@ -1738,7 +1738,7 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("routeId", def.getRouteId());
         doWriteAttribute("routeTemplateRef", def.getRouteTemplateRef());
         doWriteAttribute("prefixId", def.getPrefixId());
-        doWriteList(null, "bean", def.getBeans(), 
this::doWriteTemplatedRouteBeanDefinition);
+        doWriteList(null, "bean", def.getBeans(), 
this::doWriteRegistryBeanDefinition);
         doWriteList(null, "parameter", def.getParameters(), 
this::doWriteTemplatedRouteParameterDefinition);
         endElement(name);
     }
diff --git 
a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
 
b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
index fd3e89c23d8..6a1e6fc3a1d 100644
--- 
a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
+++ 
b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
@@ -1738,7 +1738,7 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("routeId", def.getRouteId());
         doWriteAttribute("routeTemplateRef", def.getRouteTemplateRef());
         doWriteAttribute("prefixId", def.getPrefixId());
-        doWriteList(null, "bean", def.getBeans(), 
this::doWriteTemplatedRouteBeanDefinition);
+        doWriteList(null, "bean", def.getBeans(), 
this::doWriteRegistryBeanDefinition);
         doWriteList(null, "parameter", def.getParameters(), 
this::doWriteTemplatedRouteParameterDefinition);
         endElement(name);
     }

Reply via email to