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 1af7be28e1d8fcb06926549c4d5fc5e6db334fa4
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu May 2 22:02:03 2024 +0200

    CAMEL-20514: camel-model - Add support for bean constructors for beans in 
route templates or kamelets
---
 .../org/apache/camel/model/templatedRouteBean.json | 28 ---------
 .../services/org/apache/camel/model.properties     |  1 -
 .../resources/org/apache/camel/model/jaxb.index    |  1 -
 .../camel/model/TemplatedRouteBeanDefinition.java  | 34 -----------
 .../java/org/apache/camel/xml/in/ModelParser.java  | 71 +++++++++++-----------
 .../java/org/apache/camel/xml/out/ModelWriter.java |  9 ---
 .../org/apache/camel/yaml/out/ModelWriter.java     |  9 ---
 7 files changed, 34 insertions(+), 119 deletions(-)

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
deleted file mode 100644
index d487b346f69..00000000000
--- 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/templatedRouteBean.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "model": {
-    "kind": "model",
-    "name": "templatedRouteBean",
-    "title": "Templated Route Bean",
-    "description": "A bean as input of a route template (local bean)",
-    "deprecated": true,
-    "label": "configuration",
-    "javaType": "org.apache.camel.model.TemplatedRouteBeanDefinition",
-    "abstract": false,
-    "input": false,
-    "output": false
-  },
-  "properties": {
-    "name": { "index": 0, "kind": "attribute", "displayName": "Name", "group": 
"common", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
name of the bean (bean id)" },
-    "type": { "index": 1, "kind": "attribute", "displayName": "Type", "group": 
"common", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
class name (fully qualified) of the bean" },
-    "initMethod": { "index": 2, "kind": "attribute", "displayName": "Init 
Method", "group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "The name of the custom initialization method to invoke after 
setting bean properties. The method must have no arguments, but may throw any 
exception." },
-    "destroyMethod": { "index": 3, "kind": "attribute", "displayName": 
"Destroy Method", "group": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The name of the custom destroy method to 
invoke on bean shutdown, such as when Camel is shutting down. The method must 
have no arguments, but may throw any exception." },
-    "factoryMethod": { "index": 4, "kind": "attribute", "displayName": 
"Factory Method", "group": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Name of method to invoke when creating the 
bean via a factory bean." },
-    "factoryBean": { "index": 5, "kind": "attribute", "displayName": "Factory 
Bean", "group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Name of factory bean (bean id) to use for creating the bean." },
-    "builderClass": { "index": 6, "kind": "attribute", "displayName": "Builder 
Class", "group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Fully qualified class name of builder class to use for creating 
and configuring the bean. The builder will use the properties values to 
configure the bean." },
-    "builderMethod": { "index": 7, "kind": "attribute", "displayName": 
"Builder Method", "group": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "build", "description": "Name of method when 
using builder class. This method is invoked after configuring to create the 
actual bean. This method is often named build (used by default)." },
-    "scriptLanguage": { "index": 8, "kind": "attribute", "displayName": 
"Script Language", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The script language to use 
when using inlined script for creating the bean, such as groovy, java, 
javascript etc." },
-    "constructors": { "index": 9, "kind": "element", "displayName": 
"Constructors", "group": "common", "required": false, "type": "object", 
"javaType": "java.util.Map<java.lang.Integer, java.lang.Object>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Optional 
constructor arguments for creating the bean. Arguments correspond to specific 
index of the constructor argument list, starting from zero." },
-    "properties": { "index": 10, "kind": "element", "displayName": 
"Properties", "group": "common", "required": false, "type": "object", 
"javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Optional properties 
to set on the created bean." },
-    "script": { "index": 11, "kind": "element", "displayName": "Script", 
"group": "advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The script to execute that creates the bean 
when using scripting languages. If the script use the prefix resource: such as 
resource:classpath:com\/foo\/myscript.groovy, 
resource:file:\/var\/myscript.groovy, then its loaded from the ex [...]
-  }
-}
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
 
b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
index e58e8efc4ee..85aabd5069c 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
@@ -193,7 +193,6 @@ syslog
 tarFile
 templateParameter
 templatedRoute
-templatedRouteBean
 templatedRouteParameter
 templatedRoutes
 threadPoolProfile
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
index 551d455421c..5ff0c2477d3 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
@@ -92,7 +92,6 @@ SortDefinition
 SplitDefinition
 StepDefinition
 StopDefinition
-TemplatedRouteBeanDefinition
 TemplatedRouteDefinition
 TemplatedRouteParameterDefinition
 TemplatedRoutesDefinition
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
deleted file mode 100644
index a88081cd84c..00000000000
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteBeanDefinition.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model;
-
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-
-import org.apache.camel.spi.Metadata;
-
-/**
- * A bean as input of a route template (local bean)
- */
-@Metadata(label = "configuration")
-@XmlRootElement(name = "templatedRouteBean")
-@XmlAccessorType(XmlAccessType.FIELD)
-@Deprecated
-public class TemplatedRouteBeanDefinition
-        extends BeanFactoryDefinition<TemplatedRouteBeanDefinition, 
TemplatedRouteDefinition> {
-}
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 1c8833dd7f4..ebaa69a555c 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
@@ -1078,43 +1078,6 @@ public class ModelParser extends BaseParser {
     protected StopDefinition doParseStopDefinition() throws IOException, 
XmlPullParserException {
         return doParse(new StopDefinition(), 
processorDefinitionAttributeHandler(), 
optionalIdentifiedDefinitionElementHandler(), noValueHandler());
     }
-    protected TemplatedRouteBeanDefinition 
doParseTemplatedRouteBeanDefinition() throws IOException, 
XmlPullParserException {
-        return doParse(new TemplatedRouteBeanDefinition(), 
beanFactoryDefinitionAttributeHandler(), beanFactoryDefinitionElementHandler(), 
noValueHandler());
-    }
-    protected <T extends BeanFactoryDefinition> AttributeHandler<T> 
beanFactoryDefinitionAttributeHandler() {
-        return (def, key, val) -> switch (key) {
-            case "builderClass": def.setBuilderClass(val); yield true;
-            case "builderMethod": def.setBuilderMethod(val); yield true;
-            case "destroyMethod": def.setDestroyMethod(val); yield true;
-            case "factoryBean": def.setFactoryBean(val); yield true;
-            case "factoryMethod": def.setFactoryMethod(val); yield true;
-            case "initMethod": def.setInitMethod(val); yield true;
-            case "name": def.setName(val); yield true;
-            case "scriptLanguage": def.setScriptLanguage(val); yield true;
-            case "type": def.setType(val); yield true;
-            default: yield false;
-        };
-    }
-    protected <T extends BeanFactoryDefinition> ElementHandler<T> 
beanFactoryDefinitionElementHandler() {
-        return (def, key) -> switch (key) {
-            case "constructors": def.setConstructors(new 
BeanConstructorsAdapter().unmarshal(doParseBeanConstructorsDefinition())); 
yield true;
-            case "properties": def.setProperties(new 
BeanPropertiesAdapter().unmarshal(doParseBeanPropertiesDefinition())); yield 
true;
-            case "script": def.setScript(doParseText()); yield true;
-            default: yield false;
-        };
-    }
-    protected BeanConstructorsDefinition doParseBeanConstructorsDefinition() 
throws IOException, XmlPullParserException {
-        return doParse(new BeanConstructorsDefinition(), noAttributeHandler(), 
(def, key) -> switch (key) {
-                case "constructor": doAdd(doParseBeanConstructorDefinition(), 
def.getConstructors(), def::setConstructors); yield true;
-                default: yield false;
-            }, noValueHandler());
-    }
-    protected BeanPropertiesDefinition doParseBeanPropertiesDefinition() 
throws IOException, XmlPullParserException {
-        return doParse(new BeanPropertiesDefinition(), noAttributeHandler(), 
(def, key) -> switch (key) {
-                case "property": doAdd(doParseBeanPropertyDefinition(), 
def.getProperties(), def::setProperties); yield true;
-                default: yield false;
-            }, noValueHandler());
-    }
     protected TemplatedRouteDefinition doParseTemplatedRouteDefinition() 
throws IOException, XmlPullParserException {
         return doParse(new TemplatedRouteDefinition(), (def, key, val) -> 
switch (key) {
                 case "prefixId": def.setPrefixId(val); yield true;
@@ -1391,6 +1354,18 @@ public class ModelParser extends BaseParser {
                 default: yield false;
             }, noElementHandler(), noValueHandler());
     }
+    protected BeanConstructorsDefinition doParseBeanConstructorsDefinition() 
throws IOException, XmlPullParserException {
+        return doParse(new BeanConstructorsDefinition(), noAttributeHandler(), 
(def, key) -> switch (key) {
+                case "constructor": doAdd(doParseBeanConstructorDefinition(), 
def.getConstructors(), def::setConstructors); yield true;
+                default: yield false;
+            }, noValueHandler());
+    }
+    protected BeanPropertiesDefinition doParseBeanPropertiesDefinition() 
throws IOException, XmlPullParserException {
+        return doParse(new BeanPropertiesDefinition(), noAttributeHandler(), 
(def, key) -> switch (key) {
+                case "property": doAdd(doParseBeanPropertyDefinition(), 
def.getProperties(), def::setProperties); yield true;
+                default: yield false;
+            }, noValueHandler());
+    }
     protected BeanPropertyDefinition doParseBeanPropertyDefinition() throws 
IOException, XmlPullParserException {
         return doParse(new BeanPropertyDefinition(), (def, key, val) -> switch 
(key) {
                 case "key": def.setKey(val); yield true;
@@ -1401,6 +1376,28 @@ public class ModelParser extends BaseParser {
                 default: yield false;
             }, noValueHandler());
     }
+    protected <T extends BeanFactoryDefinition> AttributeHandler<T> 
beanFactoryDefinitionAttributeHandler() {
+        return (def, key, val) -> switch (key) {
+            case "builderClass": def.setBuilderClass(val); yield true;
+            case "builderMethod": def.setBuilderMethod(val); yield true;
+            case "destroyMethod": def.setDestroyMethod(val); yield true;
+            case "factoryBean": def.setFactoryBean(val); yield true;
+            case "factoryMethod": def.setFactoryMethod(val); yield true;
+            case "initMethod": def.setInitMethod(val); yield true;
+            case "name": def.setName(val); yield true;
+            case "scriptLanguage": def.setScriptLanguage(val); yield true;
+            case "type": def.setType(val); yield true;
+            default: yield false;
+        };
+    }
+    protected <T extends BeanFactoryDefinition> ElementHandler<T> 
beanFactoryDefinitionElementHandler() {
+        return (def, key) -> switch (key) {
+            case "constructors": def.setConstructors(new 
BeanConstructorsAdapter().unmarshal(doParseBeanConstructorsDefinition())); 
yield true;
+            case "properties": def.setProperties(new 
BeanPropertiesAdapter().unmarshal(doParseBeanPropertiesDefinition())); yield 
true;
+            case "script": def.setScript(doParseText()); yield true;
+            default: yield false;
+        };
+    }
     protected BlacklistServiceCallServiceFilterConfiguration 
doParseBlacklistServiceCallServiceFilterConfiguration() throws IOException, 
XmlPullParserException {
         return doParse(new BlacklistServiceCallServiceFilterConfiguration(), 
identifiedTypeAttributeHandler(), (def, key) -> switch (key) {
                 case "servers": doAdd(doParseText(), def.getServers(), 
def::setServers); yield true;
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 b8cd80175f7..bae84909145 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
@@ -303,9 +303,6 @@ public class ModelWriter extends BaseWriter {
     public void writeStopDefinition(StopDefinition def) throws IOException {
         doWriteStopDefinition("stop", def);
     }
-    public void writeTemplatedRouteBeanDefinition(TemplatedRouteBeanDefinition 
def) throws IOException {
-        doWriteTemplatedRouteBeanDefinition("templatedRouteBean", def);
-    }
     public void writeTemplatedRouteDefinition(TemplatedRouteDefinition def) 
throws IOException {
         doWriteTemplatedRouteDefinition("templatedRoute", def);
     }
@@ -1727,12 +1724,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         endElement(name);
     }
-    protected void doWriteTemplatedRouteBeanDefinition(String name, 
TemplatedRouteBeanDefinition def) throws IOException {
-        startElement(name);
-        doWriteBeanFactoryDefinitionAttributes(def);
-        doWriteBeanFactoryDefinitionElements(def);
-        endElement(name);
-    }
     protected void doWriteTemplatedRouteDefinition(String name, 
TemplatedRouteDefinition def) throws IOException {
         startElement(name);
         doWriteAttribute("routeId", def.getRouteId());
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 6a1e6fc3a1d..51a66d56caf 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
@@ -303,9 +303,6 @@ public class ModelWriter extends BaseWriter {
     public void writeStopDefinition(StopDefinition def) throws IOException {
         doWriteStopDefinition("stop", def);
     }
-    public void writeTemplatedRouteBeanDefinition(TemplatedRouteBeanDefinition 
def) throws IOException {
-        doWriteTemplatedRouteBeanDefinition("templatedRouteBean", def);
-    }
     public void writeTemplatedRouteDefinition(TemplatedRouteDefinition def) 
throws IOException {
         doWriteTemplatedRouteDefinition("templatedRoute", def);
     }
@@ -1727,12 +1724,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         endElement(name);
     }
-    protected void doWriteTemplatedRouteBeanDefinition(String name, 
TemplatedRouteBeanDefinition def) throws IOException {
-        startElement(name);
-        doWriteBeanFactoryDefinitionAttributes(def);
-        doWriteBeanFactoryDefinitionElements(def);
-        endElement(name);
-    }
     protected void doWriteTemplatedRouteDefinition(String name, 
TemplatedRouteDefinition def) throws IOException {
         startElement(name);
         doWriteAttribute("routeId", def.getRouteId());

Reply via email to