This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch init-bean in repository https://gitbox.apache.org/repos/asf/camel.git
commit f08bb1dd23647d608ba6a2a83868e63005121eff Author: Claus Ibsen <[email protected]> AuthorDate: Tue Sep 26 14:25:54 2023 +0200 CAMEL-19808: camel-core-model - Add init and destroy method to <bean> --- .../camel/model/app/RegistryBeanDefinition.java | 20 ++++++++++++++++++++ .../java/org/apache/camel/xml/in/ModelParser.java | 2 ++ .../java/org/apache/camel/xml/out/ModelWriter.java | 2 ++ .../org/apache/camel/xml/LwModelToXMLDumper.java | 6 ++++++ .../apache/camel/xml/jaxb/JaxbModelToXMLDumper.java | 7 ++++++- .../java/org/apache/camel/yaml/out/ModelWriter.java | 2 ++ .../org/apache/camel/yaml/LwModelToYAMLDumper.java | 6 ++++++ .../main/xml/blueprint/BlueprintXmlBeansHandler.java | 8 ++++++++ .../camel/main/xml/spring/SpringXmlBeansHandler.java | 6 ++++++ .../dsl/yaml/deserializers/ModelDeserializers.java | 12 ++++++++++++ .../src/generated/resources/schema/camelYamlDsl.json | 6 ++++++ 11 files changed, 76 insertions(+), 1 deletion(-) diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java index 70100e769cd..ad764a8aa71 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java @@ -47,6 +47,10 @@ public class RegistryBeanDefinition implements ResourceAware { @XmlAttribute(required = true) private String type; @XmlAttribute + private String initMethod; + @XmlAttribute + private String destroyMethod; + @XmlAttribute private String factoryMethod; @XmlAttribute private String factoryBean; @@ -73,6 +77,22 @@ public class RegistryBeanDefinition implements ResourceAware { this.type = type; } + public String getInitMethod() { + return initMethod; + } + + public void setInitMethod(String initMethod) { + this.initMethod = initMethod; + } + + public String getDestroyMethod() { + return destroyMethod; + } + + public void setDestroyMethod(String destroyMethod) { + this.destroyMethod = destroyMethod; + } + public String getFactoryMethod() { return factoryMethod; } 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 7dcff72a36b..3e06002b2b6 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 @@ -1634,8 +1634,10 @@ public class ModelParser extends BaseParser { protected RegistryBeanDefinition doParseRegistryBeanDefinition() throws IOException, XmlPullParserException { return doParse(new RegistryBeanDefinition(), (def, key, val) -> { switch (key) { + case "destroyMethod": def.setDestroyMethod(val); break; case "factoryBean": def.setFactoryBean(val); break; case "factoryMethod": def.setFactoryMethod(val); break; + case "initMethod": def.setInitMethod(val); break; case "name": def.setName(val); break; case "type": def.setType(val); break; default: return false; 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 4e228274c16..275afafab9c 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 @@ -2567,7 +2567,9 @@ public class ModelWriter extends BaseWriter { throws IOException { startElement(name); doWriteAttribute("factoryMethod", def.getFactoryMethod()); + doWriteAttribute("initMethod", def.getInitMethod()); doWriteAttribute("name", def.getName()); + doWriteAttribute("destroyMethod", def.getDestroyMethod()); doWriteAttribute("type", def.getType()); doWriteAttribute("factoryBean", def.getFactoryBean()); doWriteElement("constructors", new BeanConstructorsAdapter().marshal(def.getConstructors()), this::doWriteBeanConstructorsDefinition); diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java index 7cec1ce562b..9ad46e95510 100644 --- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java +++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java @@ -331,6 +331,12 @@ public class LwModelToXMLDumper implements ModelToXMLDumper { if (b.getFactoryMethod() != null) { buffer.write(String.format(" factory-method=\"%s\"", b.getFactoryMethod())); } + if (b.getInitMethod() != null) { + buffer.write(String.format(" init-method=\"%s\"", b.getInitMethod())); + } + if (b.getDestroyMethod() != null) { + buffer.write(String.format(" destroy-method=\"%s\"", b.getDestroyMethod())); + } buffer.write(">\n"); if (b.getConstructors() != null && !b.getConstructors().isEmpty()) { buffer.write(String.format(" <constructors>%n")); diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java index 02e3078c6b1..6e6a1abe149 100644 --- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java +++ b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java @@ -338,13 +338,18 @@ public class JaxbModelToXMLDumper implements ModelToXMLDumper { type = type.substring(7); } buffer.write(String.format(" <bean name=\"%s\" type=\"%s\"", b.getName(), type)); - String factoryMethod = b.getFactoryMethod(); if (b.getFactoryBean() != null) { buffer.write(String.format(" factory-bean=\"%s\"", b.getFactoryBean())); } if (b.getFactoryMethod() != null) { buffer.write(String.format(" factory-method=\"%s\"", b.getFactoryMethod())); } + if (b.getInitMethod() != null) { + buffer.write(String.format(" init-method=\"%s\"", b.getInitMethod())); + } + if (b.getDestroyMethod() != null) { + buffer.write(String.format(" destroy-method=\"%s\"", b.getDestroyMethod())); + } buffer.write(">\n"); if (b.getConstructors() != null && !b.getConstructors().isEmpty()) { buffer.write(String.format(" <constructors>%n")); 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 08c098e8cf0..cd2bdb66105 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 @@ -2567,7 +2567,9 @@ public class ModelWriter extends BaseWriter { throws IOException { startElement(name); doWriteAttribute("factoryMethod", def.getFactoryMethod()); + doWriteAttribute("initMethod", def.getInitMethod()); doWriteAttribute("name", def.getName()); + doWriteAttribute("destroyMethod", def.getDestroyMethod()); doWriteAttribute("type", def.getType()); doWriteAttribute("factoryBean", def.getFactoryBean()); doWriteElement("constructors", new BeanConstructorsAdapter().marshal(def.getConstructors()), this::doWriteBeanConstructorsDefinition); diff --git a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java index 2507043724a..46decad3e35 100644 --- a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java +++ b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java @@ -320,6 +320,12 @@ public class LwModelToYAMLDumper implements ModelToYAMLDumper { if (b.getFactoryMethod() != null) { buffer.write(String.format(" factoryMethod: \"%s\"%n", b.getFactoryMethod())); } + if (b.getInitMethod() != null) { + buffer.write(String.format(" initMethod: \"%s\"%n", b.getInitMethod())); + } + if (b.getDestroyMethod() != null) { + buffer.write(String.format(" destroyMethod: \"%s\"%n", b.getDestroyMethod())); + } if (b.getConstructors() != null && !b.getConstructors().isEmpty()) { buffer.write(String.format(" constructors:%n")); int counter = 0; 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 cba1329dd65..c5037814ebb 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 @@ -116,6 +116,14 @@ public class BlueprintXmlBeansHandler { if (fm != null) { rrd.setFactoryMethod(fm); } + String im = XmlHelper.getAttribute(node, "init-method"); + if (im != null) { + rrd.setInitMethod(fm); + } + String dm = XmlHelper.getAttribute(node, "destroy-method"); + if (dm != null) { + rrd.setDestroyMethod(dm); + } // constructor arguments Map<Integer, Object> constructors = new LinkedHashMap<>(); rrd.setConstructors(constructors); 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 b371c5a2ac0..7fc231df481 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 @@ -243,6 +243,12 @@ public class SpringXmlBeansHandler { if (def.getFactoryMethodName() != null) { rrd.setFactoryMethod(def.getFactoryMethodName()); } + if (def.getInitMethodName() != null) { + rrd.setInitMethod(def.getInitMethodName()); + } + if (def.getDestroyMethodName() != null) { + rrd.setDestroyMethod(def.getDestroyMethodName()); + } // constructor arguments if (def.hasConstructorArgumentValues()) { Map<Integer, Object> constructors = new LinkedHashMap<>(); 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 45c0068500c..05674840b1e 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 @@ -12349,8 +12349,10 @@ public final class ModelDeserializers extends YamlDeserializerSupport { order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, properties = { @YamlProperty(name = "constructors", type = "object"), + @YamlProperty(name = "destroy-method", type = "string"), @YamlProperty(name = "factory-bean", type = "string"), @YamlProperty(name = "factory-method", type = "string"), + @YamlProperty(name = "init-method", type = "string"), @YamlProperty(name = "name", type = "string", required = true), @YamlProperty(name = "properties", type = "object"), @YamlProperty(name = "type", type = "string", required = true) @@ -12375,6 +12377,11 @@ public final class ModelDeserializers extends YamlDeserializerSupport { target.setConstructors(val); break; } + case "destroy-method": { + String val = asText(node); + target.setDestroyMethod(val); + break; + } case "factory-bean": { String val = asText(node); target.setFactoryBean(val); @@ -12385,6 +12392,11 @@ public final class ModelDeserializers extends YamlDeserializerSupport { target.setFactoryMethod(val); break; } + case "init-method": { + String val = asText(node); + target.setInitMethod(val); + break; + } case "name": { String val = asText(node); target.setName(val); 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 4c298bdbda4..cc9133aad35 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 @@ -8026,12 +8026,18 @@ "constructors" : { "type" : "object" }, + "destroyMethod" : { + "type" : "string" + }, "factoryBean" : { "type" : "string" }, "factoryMethod" : { "type" : "string" }, + "initMethod" : { + "type" : "string" + }, "name" : { "type" : "string" },
