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,