This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 96aa85ccfb1 CAMEL-20799: camel-catalog - Model schema for setHeaders
and setVariables does not include array of element
96aa85ccfb1 is described below
commit 96aa85ccfb119cd77d0f3edae9d273bc17a6a757
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 29 11:00:20 2024 +0200
CAMEL-20799: camel-catalog - Model schema for setHeaders and setVariables
does not include array of element
---
.../apache/camel/catalog/models/setHeaders.json | 3 +-
.../apache/camel/catalog/models/setVariables.json | 3 +-
.../org/apache/camel/model/setHeaders.json | 3 +-
.../org/apache/camel/model/setVariables.json | 3 +-
.../camel/maven/packaging/SchemaGeneratorMojo.java | 53 ++++++++++++++++++++++
5 files changed, 61 insertions(+), 4 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeaders.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeaders.json
index b9413382276..8ec35e4365a 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeaders.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeaders.json
@@ -14,6 +14,7 @@
"properties": {
"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" },
- "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." }
+ "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." },
+ "headers": { "index": 3, "kind": "element", "displayName": "Headers",
"group": "common", "required": true, "type": "array", "javaType":
"java.util.List<org.apache.camel.model.SetHeaderDefinition>", "oneOf": [
"setHeader" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Contains the headers to be set" }
}
}
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariables.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariables.json
index e574b6e13ac..7d678beeef0 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariables.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariables.json
@@ -14,6 +14,7 @@
"properties": {
"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" },
- "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." }
+ "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." },
+ "variables": { "index": 3, "kind": "element", "displayName": "Variables",
"group": "common", "required": true, "type": "array", "javaType":
"java.util.List<org.apache.camel.model.SetVariableDefinition>", "oneOf": [
"setVariable" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Contains the variables to be set" }
}
}
diff --git
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeaders.json
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeaders.json
index b9413382276..8ec35e4365a 100644
---
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeaders.json
+++
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeaders.json
@@ -14,6 +14,7 @@
"properties": {
"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" },
- "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." }
+ "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." },
+ "headers": { "index": 3, "kind": "element", "displayName": "Headers",
"group": "common", "required": true, "type": "array", "javaType":
"java.util.List<org.apache.camel.model.SetHeaderDefinition>", "oneOf": [
"setHeader" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Contains the headers to be set" }
}
}
diff --git
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariables.json
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariables.json
index e574b6e13ac..7d678beeef0 100644
---
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariables.json
+++
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariables.json
@@ -14,6 +14,7 @@
"properties": {
"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" },
- "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." }
+ "disabled": { "index": 2, "kind": "attribute", "displayName": "Disabled",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether to disable this
EIP from the route during build time. Once an EIP has been disabled then it
cannot be enabled later at runtime." },
+ "variables": { "index": 3, "kind": "element", "displayName": "Variables",
"group": "common", "required": true, "type": "array", "javaType":
"java.util.List<org.apache.camel.model.SetVariableDefinition>", "oneOf": [
"setVariable" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Contains the variables to be set" }
}
}
diff --git
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaGeneratorMojo.java
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaGeneratorMojo.java
index 56dfa613657..30883ef8ba4 100644
---
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaGeneratorMojo.java
+++
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SchemaGeneratorMojo.java
@@ -444,6 +444,9 @@ public class SchemaGeneratorMojo extends
AbstractGeneratorMojo {
processRefExpression(originalClassType, classElement,
elementRef, fieldElement, fieldName, eipOptions,
prefix);
+ // special for setHeaders/setVariables
+ processSetHeadersOrSetVariables(modelName,
originalClassType, elementRef, fieldElement, fieldName,
+ eipOptions, prefix);
}
}
@@ -981,6 +984,56 @@ public class SchemaGeneratorMojo extends
AbstractGeneratorMojo {
}
}
+ /**
+ * Special for processing an SetHeaders/SetVariables
+ */
+ private void processSetHeadersOrSetVariables(
+ String modelName,
+ Class<?> originalClassType,
+ XmlElementRef elementRef,
+ Field fieldElement, String fieldName,
+ Set<EipOptionModel> eipOptions,
+ String prefix) {
+
+ if (!"setHeaders".equals(modelName) &&
!"setVariables".equals(modelName)) {
+ // only for these two EIPs
+ return;
+ }
+
+ if ("headers".equals(fieldName) || "variables".equals(fieldName)) {
+ String name = fetchName(elementRef.name(), fieldName, prefix);
+ String typeName =
getTypeName(GenericsUtil.resolveType(originalClassType, fieldElement));
+
+ Set<String> oneOfTypes;
+ if ("headers".equals(fieldName)) {
+ oneOfTypes = Set.of("setHeader");
+ } else {
+ oneOfTypes = Set.of("setVariable");
+ }
+ String displayName = null;
+ Metadata metadata = fieldElement.getAnnotation(Metadata.class);
+ if (metadata != null) {
+ displayName = metadata.displayName();
+ }
+ boolean deprecated = fieldElement.getAnnotation(Deprecated.class)
!= null;
+ String deprecationNote = null;
+ if (metadata != null) {
+ deprecationNote = metadata.deprecationNote();
+ }
+ String label = null;
+ if (metadata != null) {
+ label = metadata.label();
+ }
+
+ String kind = "element";
+ EipOptionModel ep
+ = createOption(name, displayName, kind, typeName, true,
"", label,
+ "Contains the " + fieldName + " to be set",
deprecated, deprecationNote,
+ false, null, oneOfTypes, false, false);
+ eipOptions.add(ep);
+ }
+ }
+
/**
* Special for processing an @XmlElementRef outputs field
*/