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); }