This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch xmlio in repository https://gitbox.apache.org/repos/asf/camel.git
commit 478f17f8fac6d7899e2f1c6ce858bed087758d27 Author: Claus Ibsen <[email protected]> AuthorDate: Thu May 15 09:27:34 2025 +0200 CAMEL-22064: camel-xml-io - Generate XSD schema --- .../org/apache/camel/catalog/models.properties | 7 + .../camel/catalog/models/customTransformer.json | 22 ++ .../camel/catalog/models/customValidator.json | 19 ++ .../catalog/models/dataFormatTransformer.json | 21 ++ .../camel/catalog/models/endpointTransformer.json | 22 ++ .../camel/catalog/models/endpointValidator.json | 19 ++ .../camel/catalog/models/loadTransformer.json | 22 ++ .../camel/catalog/models/predicateValidator.json | 18 ++ .../apache/camel/catalog/schemas/camel-spring.xsd | 251 ++++++++++++++++++--- .../camel/model/transformer/customTransformer.json | 22 ++ .../model/transformer/dataFormatTransformer.json | 21 ++ .../model/transformer/endpointTransformer.json | 22 ++ .../camel/model/transformer/loadTransformer.json | 22 ++ .../camel/model/validator/customValidator.json | 19 ++ .../camel/model/validator/endpointValidator.json | 19 ++ .../camel/model/validator/predicateValidator.json | 18 ++ .../services/org/apache/camel/model.properties | 7 + .../transformer/CustomTransformerDefinition.java | 7 +- .../DataFormatTransformerDefinition.java | 4 +- .../transformer/EndpointTransformerDefinition.java | 10 +- .../transformer/LoadTransformerDefinition.java | 7 +- .../model/transformer/TransformerDefinition.java | 10 +- .../model/validator/CustomValidatorDefinition.java | 7 +- .../validator/EndpointValidatorDefinition.java | 12 +- .../validator/PredicateValidatorDefinition.java | 10 +- .../camel/model/validator/ValidatorDefinition.java | 14 +- .../java/org/apache/camel/xml/out/ModelWriter.java | 21 ++ .../org/apache/camel/yaml/out/ModelWriter.java | 21 ++ .../dsl/yaml/deserializers/ModelDeserializers.java | 109 ++++++--- .../deserializers/ModelDeserializersResolver.java | 14 ++ .../generated/resources/schema/camelYamlDsl.json | 131 ++++++++--- .../camel/maven/packaging/SchemaGeneratorMojo.java | 2 - 32 files changed, 787 insertions(+), 143 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties index 49abd461346..f0fe91022df 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties @@ -31,6 +31,9 @@ csv custom customLoadBalancer customServiceFilter +customTransformer +customValidator +dataFormatTransformer dataFormats datasonnet deadLetterChannel @@ -44,6 +47,8 @@ doCatch doFinally doTry dynamicRouter +endpointTransformer +endpointValidator enrich errorHandler exchangeProperty @@ -93,6 +98,7 @@ langChain4jWordTokenizer language loadBalance loadBalancerConfiguration +loadTransformer log loop lzf @@ -126,6 +132,7 @@ policy poll pollEnrich post +predicateValidator process property propertyExpression diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customTransformer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customTransformer.json new file mode 100644 index 00000000000..911145794eb --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "customTransformer", + "title": "Custom Transformer", + "description": "To use a custom transformer on a route level.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.CustomTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a bean reference of the Transformer" }, + "className": { "index": 1, "kind": "attribute", "displayName": "Class Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a class name of the Transformer" }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customValidator.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customValidator.json new file mode 100644 index 00000000000..078809ee1d3 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customValidator.json @@ -0,0 +1,19 @@ +{ + "model": { + "kind": "model", + "name": "customValidator", + "title": "Custom Validator", + "description": "To use a custom validator on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.CustomValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a bean reference of the Validator" }, + "className": { "index": 1, "kind": "attribute", "displayName": "Class Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a class name of the Validator" }, + "type": { "index": 2, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dataFormatTransformer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dataFormatTransformer.json new file mode 100644 index 00000000000..3214b3b8e14 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dataFormatTransformer.json @@ -0,0 +1,21 @@ +{ + "model": { + "kind": "model", + "name": "dataFormatTransformer", + "title": "Data Format Transformer", + "description": "Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be specified.", + "deprecated": false, + "label": "dataformat,transformation", + "javaType": "org.apache.camel.model.transformer.DataFormatTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "dataFormatType": { "index": 0, "kind": "element", "displayName": "Data Format Type", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.DataFormatDefinition", "oneOf": [ "asn1", "avro", "barcode", "base64", "beanio", "bindy", "cbor", "crypto", "csv", "custom", "fhirJson", "fhirXml", "flatpack", "fury", "grok", "gzipDeflater", "hl7", "ical", "jacksonXml", "jaxb", "json", "jsonApi", "lzf", "mimeMultipart", "parquetAvro", "pgp", "protobuf", "rss" [...] + "scheme": { "index": 1, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 2, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 3, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 4, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointTransformer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointTransformer.json new file mode 100644 index 00000000000..e29ff9da6b3 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "endpointTransformer", + "title": "Endpoint Transformer", + "description": "To use a Camel endpoint to perform transformation on the route level.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.EndpointTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the reference of the Endpoint." }, + "uri": { "index": 1, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the URI of the Endpoint." }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointValidator.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointValidator.json new file mode 100644 index 00000000000..679527bb869 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/endpointValidator.json @@ -0,0 +1,19 @@ +{ + "model": { + "kind": "model", + "name": "endpointValidator", + "title": "Endpoint Validator", + "description": "To use a Camel endpoint to perform validation on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.EndpointValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the reference of the Endpoint." }, + "uri": { "index": 1, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the URI of the Endpoint." }, + "type": { "index": 2, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadTransformer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadTransformer.json new file mode 100644 index 00000000000..05a436c7a46 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "loadTransformer", + "title": "Load Transformer", + "description": "To load custom transformers from classpath scanning to be used for route level transformations.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.LoadTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "packageScan": { "index": 0, "kind": "attribute", "displayName": "Package Scan", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the classpath location to scan for annotated transformers." }, + "defaults": { "index": 1, "kind": "attribute", "displayName": "Defaults", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable loading of default transformers." }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json new file mode 100644 index 00000000000..72636450c47 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json @@ -0,0 +1,18 @@ +{ + "model": { + "kind": "model", + "name": "predicateValidator", + "title": "Predicate Validator", + "description": "To use a predicate to perform validation on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.PredicateValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...] + "type": { "index": 1, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} 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 66e6dabae28..6d2fe783428 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 @@ -341,6 +341,35 @@ To use a custom load balancer implementation. <xs:documentation xml:lang="en"> <![CDATA[ Deprecated: null +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="customTransformer" type="tns:customTransformerDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To use a custom transformer on a route level. +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="customValidator" type="tns:customValidatorDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To use a custom validator on the route level. +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="dataFormatTransformer" type="tns:dataFormatTransformerDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages +org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be +specified. ]]> </xs:documentation> </xs:annotation> @@ -467,6 +496,24 @@ Route messages based on dynamic rules <xs:documentation xml:lang="en"> <![CDATA[ Camel endpoint configuration +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="endpointTransformer" type="tns:endpointTransformerDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To use a Camel endpoint to perform transformation on the route level. +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="endpointValidator" type="tns:endpointValidatorDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To use a Camel endpoint to perform validation on the route level. ]]> </xs:documentation> </xs:annotation> @@ -943,6 +990,15 @@ Balances message processing among a number of nodes <xs:documentation xml:lang="en"> <![CDATA[ Deprecated: null +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="loadTransformer" type="tns:loadTransformerDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To load custom transformers from classpath scanning to be used for route level transformations. ]]> </xs:documentation> </xs:annotation> @@ -1245,6 +1301,15 @@ Enriches messages with data polled from a secondary resource <xs:documentation xml:lang="en"> <![CDATA[ Rest POST command +]]> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="predicateValidator" type="tns:predicateValidatorDefinition"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +To use a predicate to perform validation on the route level. ]]> </xs:documentation> </xs:annotation> @@ -17689,23 +17754,78 @@ Sets the component name that this definition will apply to. </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="customTransformer"> + <xs:complexType name="customTransformerDefinition"> <xs:complexContent> <xs:extension base="tns:transformer"> <xs:sequence/> - <xs:attribute name="ref" type="xs:string"/> - <xs:attribute name="className" type="xs:string"/> + <xs:attribute name="ref" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set a bean reference of the Transformer. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="className" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set a class name of the Transformer. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType abstract="true" name="transformer"> <xs:sequence/> - <xs:attribute name="scheme" type="xs:string"/> - <xs:attribute name="name" type="xs:string"/> - <xs:attribute name="fromType" type="xs:string"/> - <xs:attribute name="toType" type="xs:string"/> + <xs:attribute name="scheme" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' +from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="name" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the transformer name under which the transformer gets referenced when specifying the input/output data type on +routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up +for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched +transformer exists. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fromType" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. +If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="toType" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is +'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or +'json:DEF'. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> - <xs:complexType name="dataFormatTransformer"> + <xs:complexType name="dataFormatTransformerDefinition"> <xs:complexContent> <xs:extension base="tns:transformer"> <xs:sequence> @@ -17758,57 +17878,130 @@ Sets the component name that this definition will apply to. </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="endpointTransformer"> + <xs:complexType name="endpointTransformerDefinition"> <xs:complexContent> <xs:extension base="tns:transformer"> <xs:sequence/> - <xs:attribute name="ref" type="xs:string"/> - <xs:attribute name="uri" type="xs:string"/> + <xs:attribute name="ref" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the reference of the Endpoint. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="uri" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the URI of the Endpoint. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="loadTransformer"> + <xs:complexType name="loadTransformerDefinition"> <xs:complexContent> <xs:extension base="tns:transformer"> <xs:sequence/> - <xs:attribute name="packageScan" type="xs:string"/> - <xs:attribute name="defaults" type="xs:string"/> + <xs:attribute name="packageScan" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the classpath location to scan for annotated transformers. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="defaults" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Enable loading of default transformers. Default value: false +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="transformersDefinition"> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> - <xs:element name="dataFormatTransformer" type="tns:dataFormatTransformer"/> - <xs:element name="endpointTransformer" type="tns:endpointTransformer"/> - <xs:element name="loadTransformer" type="tns:loadTransformer"/> - <xs:element name="customTransformer" type="tns:customTransformer"/> + <xs:element ref="tns:dataFormatTransformer"/> + <xs:element ref="tns:endpointTransformer"/> + <xs:element ref="tns:loadTransformer"/> + <xs:element ref="tns:customTransformer"/> </xs:choice> </xs:sequence> </xs:complexType> - <xs:complexType name="customValidator"> + <xs:complexType name="customValidatorDefinition"> <xs:complexContent> <xs:extension base="tns:validator"> <xs:sequence/> - <xs:attribute name="ref" type="xs:string"/> - <xs:attribute name="className" type="xs:string"/> + <xs:attribute name="ref" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set a bean reference of the Validator. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="className" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set a class name of the Validator. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType abstract="true" name="validator"> <xs:sequence/> - <xs:attribute name="type" type="xs:string"/> + <xs:attribute name="type" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you +specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> - <xs:complexType name="endpointValidator"> + <xs:complexType name="endpointValidatorDefinition"> <xs:complexContent> <xs:extension base="tns:validator"> <xs:sequence/> - <xs:attribute name="ref" type="xs:string"/> - <xs:attribute name="uri" type="xs:string"/> + <xs:attribute name="ref" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the reference of the Endpoint. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="uri" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en"> +<![CDATA[ +Set the URI of the Endpoint. +]]> + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="predicateValidator"> + <xs:complexType name="predicateValidatorDefinition"> <xs:complexContent> <xs:extension base="tns:validator"> <xs:choice> @@ -17846,9 +18039,9 @@ Sets the component name that this definition will apply to. <xs:complexType name="validatorsDefinition"> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> - <xs:element name="endpointValidator" type="tns:endpointValidator"/> - <xs:element name="predicateValidator" type="tns:predicateValidator"/> - <xs:element name="customValidator" type="tns:customValidator"/> + <xs:element ref="tns:endpointValidator"/> + <xs:element ref="tns:predicateValidator"/> + <xs:element ref="tns:customValidator"/> </xs:choice> </xs:sequence> </xs:complexType> diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/customTransformer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/customTransformer.json new file mode 100644 index 00000000000..911145794eb --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/customTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "customTransformer", + "title": "Custom Transformer", + "description": "To use a custom transformer on a route level.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.CustomTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a bean reference of the Transformer" }, + "className": { "index": 1, "kind": "attribute", "displayName": "Class Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a class name of the Transformer" }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/dataFormatTransformer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/dataFormatTransformer.json new file mode 100644 index 00000000000..3214b3b8e14 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/dataFormatTransformer.json @@ -0,0 +1,21 @@ +{ + "model": { + "kind": "model", + "name": "dataFormatTransformer", + "title": "Data Format Transformer", + "description": "Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be specified.", + "deprecated": false, + "label": "dataformat,transformation", + "javaType": "org.apache.camel.model.transformer.DataFormatTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "dataFormatType": { "index": 0, "kind": "element", "displayName": "Data Format Type", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.DataFormatDefinition", "oneOf": [ "asn1", "avro", "barcode", "base64", "beanio", "bindy", "cbor", "crypto", "csv", "custom", "fhirJson", "fhirXml", "flatpack", "fury", "grok", "gzipDeflater", "hl7", "ical", "jacksonXml", "jaxb", "json", "jsonApi", "lzf", "mimeMultipart", "parquetAvro", "pgp", "protobuf", "rss" [...] + "scheme": { "index": 1, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 2, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 3, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 4, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/endpointTransformer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/endpointTransformer.json new file mode 100644 index 00000000000..e29ff9da6b3 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/endpointTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "endpointTransformer", + "title": "Endpoint Transformer", + "description": "To use a Camel endpoint to perform transformation on the route level.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.EndpointTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the reference of the Endpoint." }, + "uri": { "index": 1, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the URI of the Endpoint." }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/loadTransformer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/loadTransformer.json new file mode 100644 index 00000000000..05a436c7a46 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformer/loadTransformer.json @@ -0,0 +1,22 @@ +{ + "model": { + "kind": "model", + "name": "loadTransformer", + "title": "Load Transformer", + "description": "To load custom transformers from classpath scanning to be used for route level transformations.", + "deprecated": false, + "label": "transformation", + "javaType": "org.apache.camel.model.transformer.LoadTransformerDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "packageScan": { "index": 0, "kind": "attribute", "displayName": "Package Scan", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the classpath location to scan for annotated transformers." }, + "defaults": { "index": 1, "kind": "attribute", "displayName": "Defaults", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable loading of default transformers." }, + "scheme": { "index": 2, "kind": "attribute", "displayName": "Scheme", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from\/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, + "name": { "index": 3, "kind": "attribute", "displayName": "Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the transformer name under which the transformer gets referenced when specifying the input\/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from\/t [...] + "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, + "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/customValidator.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/customValidator.json new file mode 100644 index 00000000000..078809ee1d3 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/customValidator.json @@ -0,0 +1,19 @@ +{ + "model": { + "kind": "model", + "name": "customValidator", + "title": "Custom Validator", + "description": "To use a custom validator on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.CustomValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a bean reference of the Validator" }, + "className": { "index": 1, "kind": "attribute", "displayName": "Class Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a class name of the Validator" }, + "type": { "index": 2, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/endpointValidator.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/endpointValidator.json new file mode 100644 index 00000000000..679527bb869 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/endpointValidator.json @@ -0,0 +1,19 @@ +{ + "model": { + "kind": "model", + "name": "endpointValidator", + "title": "Endpoint Validator", + "description": "To use a Camel endpoint to perform validation on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.EndpointValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "ref": { "index": 0, "kind": "attribute", "displayName": "Ref", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the reference of the Endpoint." }, + "uri": { "index": 1, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the URI of the Endpoint." }, + "type": { "index": 2, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json new file mode 100644 index 00000000000..72636450c47 --- /dev/null +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json @@ -0,0 +1,18 @@ +{ + "model": { + "kind": "model", + "name": "predicateValidator", + "title": "Predicate Validator", + "description": "To use a predicate to perform validation on the route level.", + "deprecated": false, + "label": "validation", + "javaType": "org.apache.camel.model.validator.PredicateValidatorDefinition", + "abstract": false, + "input": false, + "output": false + }, + "properties": { + "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...] + "type": { "index": 1, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } + } +} 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 48eb30d4271..fc37cee42a0 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 @@ -32,6 +32,9 @@ csv custom customLoadBalancer customServiceFilter +customTransformer +customValidator +dataFormatTransformer dataFormats datasonnet deadLetterChannel @@ -45,6 +48,8 @@ doCatch doFinally doTry dynamicRouter +endpointTransformer +endpointValidator enrich errorHandler exchangeProperty @@ -94,6 +99,7 @@ langChain4jWordTokenizer language loadBalance loadBalancerConfiguration +loadTransformer log loop lzf @@ -127,6 +133,7 @@ policy poll pollEnrich post +predicateValidator process property propertyExpression diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/CustomTransformerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/CustomTransformerDefinition.java index 04fca5ecd7b..1aeb1204f0b 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/CustomTransformerDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/CustomTransformerDefinition.java @@ -19,17 +19,16 @@ package org.apache.camel.model.transformer; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.Transformer; /** - * Represents a CustomTransformer. One of the bean reference (ref) or fully qualified class name (type) of the custom - * {@link Transformer} needs to be specified. + * To use a custom transformer on a route level. */ @Metadata(label = "transformation") -@XmlType(name = "customTransformer") +@XmlRootElement(name = "customTransformer") @XmlAccessorType(XmlAccessType.FIELD) public class CustomTransformerDefinition extends TransformerDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/DataFormatTransformerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/DataFormatTransformerDefinition.java index b8449a0afa4..9d8e9342470 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/DataFormatTransformerDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/DataFormatTransformerDefinition.java @@ -20,7 +20,7 @@ import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlElements; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.model.dataformat.ASN1DataFormat; @@ -74,7 +74,7 @@ import org.apache.camel.spi.Metadata; * needs to be specified. */ @Metadata(label = "dataformat,transformation") -@XmlType(name = "dataFormatTransformer") +@XmlRootElement(name = "dataFormatTransformer") @XmlAccessorType(XmlAccessType.FIELD) public class DataFormatTransformerDefinition extends TransformerDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/EndpointTransformerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/EndpointTransformerDefinition.java index 7501cbc3f2e..6f94ae9b593 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/EndpointTransformerDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/EndpointTransformerDefinition.java @@ -19,19 +19,15 @@ package org.apache.camel.model.transformer; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.spi.Metadata; /** - * Represents an endpoint {@link org.apache.camel.spi.Transformer} which leverages camel - * {@link org.apache.camel.Endpoint} to perform transformation. A - * {@link org.apache.camel.processor.transformer.ProcessorTransformer} will be created internally with a - * {@link org.apache.camel.processor.SendProcessor} which forwards the message to the specified Endpoint. One of the - * Endpoint 'ref' or 'uri' needs to be specified. + * To use a Camel endpoint to perform transformation on the route level. */ @Metadata(label = "transformation") -@XmlType(name = "endpointTransformer") +@XmlRootElement(name = "endpointTransformer") @XmlAccessorType(XmlAccessType.FIELD) public class EndpointTransformerDefinition extends TransformerDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/LoadTransformerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/LoadTransformerDefinition.java index 3b93b4f0d76..f32e10e035d 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/LoadTransformerDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/LoadTransformerDefinition.java @@ -19,16 +19,15 @@ package org.apache.camel.model.transformer; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.spi.Metadata; /** - * Loads one to many {@link org.apache.camel.spi.Transformer} via {@link org.apache.camel.spi.TransformerLoader}. - * Supports classpath scan to load transformer implementations configured for instance via annotation configuration. + * To load custom transformers from classpath scanning to be used for route level transformations. */ @Metadata(label = "transformation") -@XmlType(name = "loadTransformer") +@XmlRootElement(name = "loadTransformer") @XmlAccessorType(XmlAccessType.FIELD) public class LoadTransformerDefinition extends TransformerDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/TransformerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/TransformerDefinition.java index d49cf958169..9f84b07a29b 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/TransformerDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/transformer/TransformerDefinition.java @@ -22,22 +22,20 @@ import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlType; import org.apache.camel.model.CopyableDefinition; -import org.apache.camel.model.InputTypeDefinition; -import org.apache.camel.model.OutputTypeDefinition; import org.apache.camel.spi.DataType; import org.apache.camel.spi.Metadata; /** - * Represents a {@link org.apache.camel.spi.Transformer} which declarative transforms message content according to the - * input type declared by {@link InputTypeDefinition} and/or output type declared by {@link OutputTypeDefinition}. + * A transformer which declarative transforms message content according to the input and/or output type declared on the + * route level. * * If you specify from='java:com.example.ABC' and to='xml:XYZ', the transformer will be picked up when current message * type is 'java:com.example.ABC' and expected message type is 'xml:XYZ'. If you specify from='java' to='xml', then it * will be picked up for all of Java to xml transformation. * * Also, it's possible to specify a transformer name that identifies the transformer. Usually the name is a combination - * of a scheme and a name that represents the supported data type name. The declared {@link InputTypeDefinition} and/or - * {@link OutputTypeDefinition} can then reference the transformer by its name. + * of a scheme and a name that represents the supported data type name. The declared input and/or output can then + * reference the transformer by its name. * * In case the transformer name should represent a data type scheme such as name='xml' that specific transformer will * also be picked up for all of Java to xml and xml to Java transformation as a fallback when no matching transformer is diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/CustomValidatorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/CustomValidatorDefinition.java index 5bccfc5d307..aead5495937 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/CustomValidatorDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/CustomValidatorDefinition.java @@ -19,17 +19,16 @@ package org.apache.camel.model.validator; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.Validator; /** - * Represents a CustomValidator. One of the bean reference (ref) or fully qualified class name (className) of the custom - * {@link Validator} needs to be specified. {@see ValidatorDefinition} {@see Validator} + * To use a custom validator on the route level. */ @Metadata(label = "validation") -@XmlType(name = "customValidator") +@XmlRootElement(name = "customValidator") @XmlAccessorType(XmlAccessType.FIELD) public class CustomValidatorDefinition extends ValidatorDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/EndpointValidatorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/EndpointValidatorDefinition.java index c8eab4cd60b..e4565338721 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/EndpointValidatorDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/EndpointValidatorDefinition.java @@ -19,21 +19,15 @@ package org.apache.camel.model.validator; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.spi.Metadata; -import org.apache.camel.spi.Validator; /** - * Represents an endpoint {@link Validator} which leverages camel validator component such as - * <a href="http://camel.apache.org/validation.html">Validator Component</a> and - * <a href="http://camel.apache.org/bean-validation.html">Bean Validator Component</a> to perform content validation. A - * {@link org.apache.camel.processor.validator.ProcessorValidator} will be created internally with a - * {@link org.apache.camel.processor.SendProcessor} which forwards the message to the validator Endpoint. - * {@see ValidatorDefinition} {@see Validator} + * To use a Camel endpoint to perform validation on the route level. */ @Metadata(label = "validation") -@XmlType(name = "endpointValidator") +@XmlRootElement(name = "endpointValidator") @XmlAccessorType(XmlAccessType.FIELD) public class EndpointValidatorDefinition extends ValidatorDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/PredicateValidatorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/PredicateValidatorDefinition.java index d191827f0bc..a5f52fab805 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/PredicateValidatorDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/PredicateValidatorDefinition.java @@ -19,22 +19,18 @@ package org.apache.camel.model.validator; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlElementRef; -import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlRootElement; import org.apache.camel.Expression; import org.apache.camel.model.ExpressionNodeHelper; import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.spi.Metadata; -import org.apache.camel.spi.Validator; /** - * Represents a predicate {@link Validator} which leverages expression or predicates to perform content validation. A - * {@link org.apache.camel.processor.validator.ProcessorValidator} will be created internally with a - * {@link org.apache.camel.processor.validation.PredicateValidatingProcessor} which validates the message according to - * specified expression/predicates. {@see ValidatorDefinition} {@see Validator} + * To use a predicate to perform validation on the route level. */ @Metadata(label = "validation") -@XmlType(name = "predicateValidator") +@XmlRootElement(name = "predicateValidator") @XmlAccessorType(XmlAccessType.FIELD) public class PredicateValidatorDefinition extends ValidatorDefinition { diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/ValidatorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/ValidatorDefinition.java index f16b3b920dd..6b050cee162 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/validator/ValidatorDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/validator/ValidatorDefinition.java @@ -22,21 +22,15 @@ import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlType; import org.apache.camel.model.CopyableDefinition; -import org.apache.camel.model.InputTypeDefinition; -import org.apache.camel.model.OutputTypeDefinition; import org.apache.camel.spi.DataType; import org.apache.camel.spi.Metadata; -import org.apache.camel.spi.Validator; /** - * <p> - * Represents a {@link Validator} which declaratively validates message content according to the input type declared by - * {@link InputTypeDefinition} and/or output type declared by {@link OutputTypeDefinition}. - * </p> - * <p> + * A validator which declaratively validates message content according to the input type declared by input and/or output + * type on the route leve. + * * If you specify type='xml:ABC', the validator will be picked up when current message type is 'xml:ABC'. If you specify - * type='json', then it will be picked up for all of json validation. {@see Validator} {@see InputTypeDefinition} - * {@see OutputTypeDefinition} + * type='json', then it will be picked up for all of json validation. */ @Metadata(label = "validation") @XmlType(name = "validator") 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 fece6320ea7..b2796e1d20b 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 @@ -784,9 +784,30 @@ public class ModelWriter extends BaseWriter { public void writeLangChain4jWordTokenizerDefinition(LangChain4jWordTokenizerDefinition def) throws IOException { doWriteLangChain4jWordTokenizerDefinition("langChain4jWordTokenizer", def); } + public void writeCustomTransformerDefinition(CustomTransformerDefinition def) throws IOException { + doWriteCustomTransformerDefinition("customTransformer", def); + } + public void writeDataFormatTransformerDefinition(DataFormatTransformerDefinition def) throws IOException { + doWriteDataFormatTransformerDefinition("dataFormatTransformer", def); + } + public void writeEndpointTransformerDefinition(EndpointTransformerDefinition def) throws IOException { + doWriteEndpointTransformerDefinition("endpointTransformer", def); + } + public void writeLoadTransformerDefinition(LoadTransformerDefinition def) throws IOException { + doWriteLoadTransformerDefinition("loadTransformer", def); + } public void writeTransformersDefinition(TransformersDefinition def) throws IOException { doWriteTransformersDefinition("transformers", def); } + public void writeCustomValidatorDefinition(CustomValidatorDefinition def) throws IOException { + doWriteCustomValidatorDefinition("customValidator", def); + } + public void writeEndpointValidatorDefinition(EndpointValidatorDefinition def) throws IOException { + doWriteEndpointValidatorDefinition("endpointValidator", def); + } + public void writePredicateValidatorDefinition(PredicateValidatorDefinition def) throws IOException { + doWritePredicateValidatorDefinition("predicateValidator", def); + } public void writeValidatorsDefinition(ValidatorsDefinition def) throws IOException { doWriteValidatorsDefinition("validators", def); } 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 2a54d21d23c..1b2ab34c649 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 @@ -784,9 +784,30 @@ public class ModelWriter extends BaseWriter { public void writeLangChain4jWordTokenizerDefinition(LangChain4jWordTokenizerDefinition def) throws IOException { doWriteLangChain4jWordTokenizerDefinition("langChain4jWordTokenizer", def); } + public void writeCustomTransformerDefinition(CustomTransformerDefinition def) throws IOException { + doWriteCustomTransformerDefinition("customTransformer", def); + } + public void writeDataFormatTransformerDefinition(DataFormatTransformerDefinition def) throws IOException { + doWriteDataFormatTransformerDefinition("dataFormatTransformer", def); + } + public void writeEndpointTransformerDefinition(EndpointTransformerDefinition def) throws IOException { + doWriteEndpointTransformerDefinition("endpointTransformer", def); + } + public void writeLoadTransformerDefinition(LoadTransformerDefinition def) throws IOException { + doWriteLoadTransformerDefinition("loadTransformer", def); + } public void writeTransformersDefinition(TransformersDefinition def) throws IOException { doWriteTransformersDefinition("transformers", def); } + public void writeCustomValidatorDefinition(CustomValidatorDefinition def) throws IOException { + doWriteCustomValidatorDefinition("customValidator", def); + } + public void writeEndpointValidatorDefinition(EndpointValidatorDefinition def) throws IOException { + doWriteEndpointValidatorDefinition("endpointValidator", def); + } + public void writePredicateValidatorDefinition(PredicateValidatorDefinition def) throws IOException { + doWritePredicateValidatorDefinition("predicateValidator", def); + } public void writeValidatorsDefinition(ValidatorsDefinition def) throws IOException { doWriteValidatorsDefinition("validators", def); } 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 9406b99a9ae..c9c852602a6 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 @@ -3380,15 +3380,22 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "custom-transformer", + "customTransformer" + }, types = org.apache.camel.model.transformer.CustomTransformerDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Custom Transformer", + description = "To use a custom transformer on a route level.", + deprecated = false, properties = { - @YamlProperty(name = "className", type = "string"), - @YamlProperty(name = "fromType", type = "string"), - @YamlProperty(name = "name", type = "string"), - @YamlProperty(name = "ref", type = "string"), - @YamlProperty(name = "scheme", type = "string"), - @YamlProperty(name = "toType", type = "string") + @YamlProperty(name = "className", type = "string", description = "Set a class name of the Transformer", displayName = "Class Name"), + @YamlProperty(name = "fromType", type = "string", description = "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'.", displayName = "From Type"), + @YamlProperty(name = "name", type = "string", description = "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Name"), + @YamlProperty(name = "ref", type = "string", description = "Set a bean reference of the Transformer", displayName = "Ref"), + @YamlProperty(name = "scheme", type = "string", description = "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Scheme"), + @YamlProperty(name = "toType", type = "string", description = "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'.", displayName = "To Type") } ) public static class CustomTransformerDefinitionDeserializer extends YamlDeserializerBase<CustomTransformerDefinition> { @@ -3445,12 +3452,19 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "custom-validator", + "customValidator" + }, types = org.apache.camel.model.validator.CustomValidatorDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Custom Validator", + description = "To use a custom validator on the route level.", + deprecated = false, properties = { - @YamlProperty(name = "className", type = "string"), - @YamlProperty(name = "ref", type = "string"), - @YamlProperty(name = "type", type = "string") + @YamlProperty(name = "className", type = "string", description = "Set a class name of the Validator", displayName = "Class Name"), + @YamlProperty(name = "ref", type = "string", description = "Set a bean reference of the Validator", displayName = "Ref"), + @YamlProperty(name = "type", type = "string", description = "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'.", displayName = "Type") } ) public static class CustomValidatorDefinitionDeserializer extends YamlDeserializerBase<CustomValidatorDefinition> { @@ -3525,8 +3539,15 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "data-format-transformer", + "dataFormatTransformer" + }, types = org.apache.camel.model.transformer.DataFormatTransformerDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Data Format Transformer", + description = "Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be specified.", + deprecated = false, properties = { @YamlProperty(name = "asn1", type = "object:org.apache.camel.model.dataformat.ASN1DataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "avro", type = "object:org.apache.camel.model.dataformat.AvroDataFormat", oneOf = "dataFormatType"), @@ -3541,7 +3562,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport { @YamlProperty(name = "fhirJson", type = "object:org.apache.camel.model.dataformat.FhirJsonDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "fhirXml", type = "object:org.apache.camel.model.dataformat.FhirXmlDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "flatpack", type = "object:org.apache.camel.model.dataformat.FlatpackDataFormat", oneOf = "dataFormatType"), - @YamlProperty(name = "fromType", type = "string"), + @YamlProperty(name = "fromType", type = "string", description = "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'.", displayName = "From Type"), @YamlProperty(name = "fury", type = "object:org.apache.camel.model.dataformat.FuryDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "grok", type = "object:org.apache.camel.model.dataformat.GrokDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "gzipDeflater", type = "object:org.apache.camel.model.dataformat.GzipDeflaterDataFormat", oneOf = "dataFormatType"), @@ -3553,12 +3574,12 @@ public final class ModelDeserializers extends YamlDeserializerSupport { @YamlProperty(name = "jsonApi", type = "object:org.apache.camel.model.dataformat.JsonApiDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "lzf", type = "object:org.apache.camel.model.dataformat.LZFDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "mimeMultipart", type = "object:org.apache.camel.model.dataformat.MimeMultipartDataFormat", oneOf = "dataFormatType"), - @YamlProperty(name = "name", type = "string"), + @YamlProperty(name = "name", type = "string", description = "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Name"), @YamlProperty(name = "parquetAvro", type = "object:org.apache.camel.model.dataformat.ParquetAvroDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "pgp", type = "object:org.apache.camel.model.dataformat.PGPDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "protobuf", type = "object:org.apache.camel.model.dataformat.ProtobufDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "rss", type = "object:org.apache.camel.model.dataformat.RssDataFormat", oneOf = "dataFormatType"), - @YamlProperty(name = "scheme", type = "string"), + @YamlProperty(name = "scheme", type = "string", description = "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Scheme"), @YamlProperty(name = "smooks", type = "object:org.apache.camel.model.dataformat.SmooksDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "soap", type = "object:org.apache.camel.model.dataformat.SoapDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "swiftMt", type = "object:org.apache.camel.model.dataformat.SwiftMtDataFormat", oneOf = "dataFormatType"), @@ -3567,7 +3588,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport { @YamlProperty(name = "tarFile", type = "object:org.apache.camel.model.dataformat.TarFileDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "thrift", type = "object:org.apache.camel.model.dataformat.ThriftDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "tidyMarkup", type = "object:org.apache.camel.model.dataformat.TidyMarkupDataFormat", oneOf = "dataFormatType"), - @YamlProperty(name = "toType", type = "string"), + @YamlProperty(name = "toType", type = "string", description = "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'.", displayName = "To Type"), @YamlProperty(name = "univocityCsv", type = "object:org.apache.camel.model.dataformat.UniVocityCsvDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "univocityFixed", type = "object:org.apache.camel.model.dataformat.UniVocityFixedDataFormat", oneOf = "dataFormatType"), @YamlProperty(name = "univocityTsv", type = "object:org.apache.camel.model.dataformat.UniVocityTsvDataFormat", oneOf = "dataFormatType"), @@ -5186,15 +5207,22 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "endpoint-transformer", + "endpointTransformer" + }, types = org.apache.camel.model.transformer.EndpointTransformerDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Endpoint Transformer", + description = "To use a Camel endpoint to perform transformation on the route level.", + deprecated = false, properties = { - @YamlProperty(name = "fromType", type = "string"), - @YamlProperty(name = "name", type = "string"), - @YamlProperty(name = "ref", type = "string"), - @YamlProperty(name = "scheme", type = "string"), - @YamlProperty(name = "toType", type = "string"), - @YamlProperty(name = "uri", type = "string") + @YamlProperty(name = "fromType", type = "string", description = "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'.", displayName = "From Type"), + @YamlProperty(name = "name", type = "string", description = "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Name"), + @YamlProperty(name = "ref", type = "string", description = "Set the reference of the Endpoint.", displayName = "Ref"), + @YamlProperty(name = "scheme", type = "string", description = "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Scheme"), + @YamlProperty(name = "toType", type = "string", description = "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'.", displayName = "To Type"), + @YamlProperty(name = "uri", type = "string", description = "Set the URI of the Endpoint.", displayName = "Uri") } ) public static class EndpointTransformerDefinitionDeserializer extends YamlDeserializerBase<EndpointTransformerDefinition> { @@ -5251,12 +5279,19 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "endpoint-validator", + "endpointValidator" + }, types = org.apache.camel.model.validator.EndpointValidatorDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Endpoint Validator", + description = "To use a Camel endpoint to perform validation on the route level.", + deprecated = false, properties = { - @YamlProperty(name = "ref", type = "string"), - @YamlProperty(name = "type", type = "string"), - @YamlProperty(name = "uri", type = "string") + @YamlProperty(name = "ref", type = "string", description = "Set the reference of the Endpoint.", displayName = "Ref"), + @YamlProperty(name = "type", type = "string", description = "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'.", displayName = "Type"), + @YamlProperty(name = "uri", type = "string", description = "Set the URI of the Endpoint.", displayName = "Uri") } ) public static class EndpointValidatorDefinitionDeserializer extends YamlDeserializerBase<EndpointValidatorDefinition> { @@ -9430,15 +9465,22 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "load-transformer", + "loadTransformer" + }, types = org.apache.camel.model.transformer.LoadTransformerDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Load Transformer", + description = "To load custom transformers from classpath scanning to be used for route level transformations.", + deprecated = false, properties = { - @YamlProperty(name = "defaults", type = "boolean"), - @YamlProperty(name = "fromType", type = "string"), - @YamlProperty(name = "name", type = "string"), - @YamlProperty(name = "packageScan", type = "string"), - @YamlProperty(name = "scheme", type = "string"), - @YamlProperty(name = "toType", type = "string") + @YamlProperty(name = "defaults", type = "boolean", description = "Enable loading of default transformers.", displayName = "Defaults"), + @YamlProperty(name = "fromType", type = "string", description = "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'.", displayName = "From Type"), + @YamlProperty(name = "name", type = "string", description = "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Name"), + @YamlProperty(name = "packageScan", type = "string", description = "Set the classpath location to scan for annotated transformers.", displayName = "Package Scan"), + @YamlProperty(name = "scheme", type = "string", description = "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists.", displayName = "Scheme"), + @YamlProperty(name = "toType", type = "string", description = "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'.", displayName = "To Type") } ) public static class LoadTransformerDefinitionDeserializer extends YamlDeserializerBase<LoadTransformerDefinition> { @@ -12440,11 +12482,18 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( + nodes = { + "predicate-validator", + "predicateValidator" + }, types = org.apache.camel.model.validator.PredicateValidatorDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, + displayName = "Predicate Validator", + description = "To use a predicate to perform validation on the route level.", + deprecated = false, properties = { - @YamlProperty(name = "expression", type = "object:org.apache.camel.model.language.ExpressionDefinition", oneOf = "expression"), - @YamlProperty(name = "type", type = "string") + @YamlProperty(name = "expression", type = "object:org.apache.camel.model.language.ExpressionDefinition", displayName = "Expression", oneOf = "expression"), + @YamlProperty(name = "type", type = "string", description = "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'.", displayName = "Type") } ) public static class PredicateValidatorDefinitionDeserializer extends YamlDeserializerBase<PredicateValidatorDefinition> { 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 bfb3c48e4d8..9f447a8933a 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 @@ -107,9 +107,15 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve case "custom-service-filter": return new ModelDeserializers.CustomServiceCallServiceFilterConfigurationDeserializer(); case "customServiceFilter": return new ModelDeserializers.CustomServiceCallServiceFilterConfigurationDeserializer(); case "org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration": return new ModelDeserializers.CustomServiceCallServiceFilterConfigurationDeserializer(); + case "custom-transformer": return new ModelDeserializers.CustomTransformerDefinitionDeserializer(); + case "customTransformer": return new ModelDeserializers.CustomTransformerDefinitionDeserializer(); case "org.apache.camel.model.transformer.CustomTransformerDefinition": return new ModelDeserializers.CustomTransformerDefinitionDeserializer(); + case "custom-validator": return new ModelDeserializers.CustomValidatorDefinitionDeserializer(); + case "customValidator": return new ModelDeserializers.CustomValidatorDefinitionDeserializer(); case "org.apache.camel.model.validator.CustomValidatorDefinition": return new ModelDeserializers.CustomValidatorDefinitionDeserializer(); case "org.apache.camel.model.DataFormatDefinition": return new ModelDeserializers.DataFormatDefinitionDeserializer(); + case "data-format-transformer": return new ModelDeserializers.DataFormatTransformerDefinitionDeserializer(); + case "dataFormatTransformer": return new ModelDeserializers.DataFormatTransformerDefinitionDeserializer(); case "org.apache.camel.model.transformer.DataFormatTransformerDefinition": return new ModelDeserializers.DataFormatTransformerDefinitionDeserializer(); case "data-formats": return new ModelDeserializers.DataFormatsDefinitionDeserializer(); case "dataFormats": return new ModelDeserializers.DataFormatsDefinitionDeserializer(); @@ -137,7 +143,11 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve case "dynamic-router": return new ModelDeserializers.DynamicRouterDefinitionDeserializer(); case "dynamicRouter": return new ModelDeserializers.DynamicRouterDefinitionDeserializer(); case "org.apache.camel.model.DynamicRouterDefinition": return new ModelDeserializers.DynamicRouterDefinitionDeserializer(); + case "endpoint-transformer": return new ModelDeserializers.EndpointTransformerDefinitionDeserializer(); + case "endpointTransformer": return new ModelDeserializers.EndpointTransformerDefinitionDeserializer(); case "org.apache.camel.model.transformer.EndpointTransformerDefinition": return new ModelDeserializers.EndpointTransformerDefinitionDeserializer(); + case "endpoint-validator": return new ModelDeserializers.EndpointValidatorDefinitionDeserializer(); + case "endpointValidator": return new ModelDeserializers.EndpointValidatorDefinitionDeserializer(); case "org.apache.camel.model.validator.EndpointValidatorDefinition": return new ModelDeserializers.EndpointValidatorDefinitionDeserializer(); case "enrich": return new ModelDeserializers.EnrichDefinitionDeserializer(); case "org.apache.camel.model.EnrichDefinition": return new ModelDeserializers.EnrichDefinitionDeserializer(); @@ -259,6 +269,8 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve case "load-balance": return new ModelDeserializers.LoadBalanceDefinitionDeserializer(); case "loadBalance": return new ModelDeserializers.LoadBalanceDefinitionDeserializer(); case "org.apache.camel.model.LoadBalanceDefinition": return new ModelDeserializers.LoadBalanceDefinitionDeserializer(); + case "load-transformer": return new ModelDeserializers.LoadTransformerDefinitionDeserializer(); + case "loadTransformer": return new ModelDeserializers.LoadTransformerDefinitionDeserializer(); case "org.apache.camel.model.transformer.LoadTransformerDefinition": return new ModelDeserializers.LoadTransformerDefinitionDeserializer(); case "log": return new ModelDeserializers.LogDefinitionDeserializer(); case "org.apache.camel.model.LogDefinition": return new ModelDeserializers.LogDefinitionDeserializer(); @@ -340,6 +352,8 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve case "org.apache.camel.model.PollEnrichDefinition": return new ModelDeserializers.PollEnrichDefinitionDeserializer(); case "post": return new ModelDeserializers.PostDefinitionDeserializer(); case "org.apache.camel.model.rest.PostDefinition": return new ModelDeserializers.PostDefinitionDeserializer(); + case "predicate-validator": return new ModelDeserializers.PredicateValidatorDefinitionDeserializer(); + case "predicateValidator": return new ModelDeserializers.PredicateValidatorDefinitionDeserializer(); case "org.apache.camel.model.validator.PredicateValidatorDefinition": return new ModelDeserializers.PredicateValidatorDefinitionDeserializer(); case "process": return new ModelDeserializers.ProcessDefinitionDeserializer(); case "org.apache.camel.model.ProcessDefinition": return new ModelDeserializers.ProcessDefinitionDeserializer(); 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 1f32e52b89a..ebce8be6734 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 @@ -16217,30 +16217,46 @@ "required" : [ "maxOverlap", "maxTokens" ] }, "org.apache.camel.model.transformer.CustomTransformerDefinition" : { + "title" : "Custom Transformer", + "description" : "To use a custom transformer on a route level.", "type" : "object", "additionalProperties" : false, "properties" : { "className" : { - "type" : "string" + "type" : "string", + "title" : "Class Name", + "description" : "Set a class name of the Transformer" }, "fromType" : { - "type" : "string" + "type" : "string", + "title" : "From Type", + "description" : "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, "name" : { - "type" : "string" + "type" : "string", + "title" : "Name", + "description" : "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "ref" : { - "type" : "string" + "type" : "string", + "title" : "Ref", + "description" : "Set a bean reference of the Transformer" }, "scheme" : { - "type" : "string" + "type" : "string", + "title" : "Scheme", + "description" : "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "toType" : { - "type" : "string" + "type" : "string", + "title" : "To Type", + "description" : "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } } }, "org.apache.camel.model.transformer.DataFormatTransformerDefinition" : { + "title" : "Data Format Transformer", + "description" : "Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be specified.", "type" : "object", "additionalProperties" : false, "anyOf" : [ { @@ -16682,16 +16698,24 @@ } ], "properties" : { "fromType" : { - "type" : "string" + "type" : "string", + "title" : "From Type", + "description" : "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, "name" : { - "type" : "string" + "type" : "string", + "title" : "Name", + "description" : "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "scheme" : { - "type" : "string" + "type" : "string", + "title" : "Scheme", + "description" : "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "toType" : { - "type" : "string" + "type" : "string", + "title" : "To Type", + "description" : "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." }, "asn1" : { }, "avro" : { }, @@ -16739,50 +16763,78 @@ } }, "org.apache.camel.model.transformer.EndpointTransformerDefinition" : { + "title" : "Endpoint Transformer", + "description" : "To use a Camel endpoint to perform transformation on the route level.", "type" : "object", "additionalProperties" : false, "properties" : { "fromType" : { - "type" : "string" + "type" : "string", + "title" : "From Type", + "description" : "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, "name" : { - "type" : "string" + "type" : "string", + "title" : "Name", + "description" : "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "ref" : { - "type" : "string" + "type" : "string", + "title" : "Ref", + "description" : "Set the reference of the Endpoint." }, "scheme" : { - "type" : "string" + "type" : "string", + "title" : "Scheme", + "description" : "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "toType" : { - "type" : "string" + "type" : "string", + "title" : "To Type", + "description" : "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." }, "uri" : { - "type" : "string" + "type" : "string", + "title" : "Uri", + "description" : "Set the URI of the Endpoint." } } }, "org.apache.camel.model.transformer.LoadTransformerDefinition" : { + "title" : "Load Transformer", + "description" : "To load custom transformers from classpath scanning to be used for route level transformations.", "type" : "object", "additionalProperties" : false, "properties" : { "defaults" : { - "type" : "boolean" + "type" : "boolean", + "title" : "Defaults", + "description" : "Enable loading of default transformers." }, "fromType" : { - "type" : "string" + "type" : "string", + "title" : "From Type", + "description" : "Set the 'from' data type name. If you specify 'xml:XYZ', the transformer will be picked up if source type is 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of 'xml' source type like 'xml:ABC' or 'xml:DEF'." }, "name" : { - "type" : "string" + "type" : "string", + "title" : "Name", + "description" : "Set the transformer name under which the transformer gets referenced when specifying the input/output data type on routes. If you specify a transformer name that matches a data type scheme like 'csv' the transformer will be picked up for all of 'csv:' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "packageScan" : { - "type" : "string" + "type" : "string", + "title" : "Package Scan", + "description" : "Set the classpath location to scan for annotated transformers." }, "scheme" : { - "type" : "string" + "type" : "string", + "title" : "Scheme", + "description" : "Set a scheme name supported by the transformer. If you specify 'csv', the transformer will be picked up for all of 'csv' from/to Java transformation. Note that the scheme matching is performed only when no exactly matched transformer exists." }, "toType" : { - "type" : "string" + "type" : "string", + "title" : "To Type", + "description" : "Set the 'to' data type name. If you specify 'json:XYZ', the transformer will be picked up if destination type is 'json:XYZ'. If you specify just 'json', the transformer matches with all of 'json' destination type like 'json:ABC' or 'json:DEF'." } } }, @@ -16807,36 +16859,54 @@ } }, "org.apache.camel.model.validator.CustomValidatorDefinition" : { + "title" : "Custom Validator", + "description" : "To use a custom validator on the route level.", "type" : "object", "additionalProperties" : false, "properties" : { "className" : { - "type" : "string" + "type" : "string", + "title" : "Class Name", + "description" : "Set a class name of the Validator" }, "ref" : { - "type" : "string" + "type" : "string", + "title" : "Ref", + "description" : "Set a bean reference of the Validator" }, "type" : { - "type" : "string" + "type" : "string", + "title" : "Type", + "description" : "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." } } }, "org.apache.camel.model.validator.EndpointValidatorDefinition" : { + "title" : "Endpoint Validator", + "description" : "To use a Camel endpoint to perform validation on the route level.", "type" : "object", "additionalProperties" : false, "properties" : { "ref" : { - "type" : "string" + "type" : "string", + "title" : "Ref", + "description" : "Set the reference of the Endpoint." }, "type" : { - "type" : "string" + "type" : "string", + "title" : "Type", + "description" : "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." }, "uri" : { - "type" : "string" + "type" : "string", + "title" : "Uri", + "description" : "Set the URI of the Endpoint." } } }, "org.apache.camel.model.validator.PredicateValidatorDefinition" : { + "title" : "Predicate Validator", + "description" : "To use a predicate to perform validation on the route level.", "type" : "object", "additionalProperties" : false, "anyOf" : [ { @@ -16845,6 +16915,7 @@ "required" : [ "expression" ], "properties" : { "expression" : { + "title" : "Expression", "$ref" : "#/items/definitions/org.apache.camel.model.language.ExpressionDefinition" } } @@ -16858,7 +16929,9 @@ } ], "properties" : { "type" : { - "type" : "string" + "type" : "string", + "title" : "Type", + "description" : "Set the data type name. If you specify 'xml:XYZ', the validator will be picked up if message type is 'xml:XYZ'. If you specify just 'xml', the validator matches with all of 'xml' message type like 'xml:ABC' or 'xml:DEF'." }, "expression" : { } } 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 4eacf4e191c..157592f332a 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 @@ -263,8 +263,6 @@ public class SchemaGeneratorMojo extends AbstractGeneratorMojo { EipModel eipModel = findEipModelProperties(classElement, name); findEipModelExchangeProperties(classElement, name, eipModel); - // get endpoint information which is divided into paths and options - // (though there should really only be one path) Set<EipOptionModel> eipOptions = new TreeSet<>(new EipOptionComparator(eipModel)); findClassProperties(eipOptions, classElement, classElement, "", name);
