This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new b3a2978c915 CAMEL-19094: Tokenizer ignores includeTokens b3a2978c915 is described below commit b3a2978c915f1bd3a28b4c3e4ed0901ab45e60df Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Feb 27 19:08:21 2023 +0100 CAMEL-19094: Tokenizer ignores includeTokens --- .../resources/org/apache/camel/catalog/languages/tokenize.json | 2 +- .../generated/resources/org/apache/camel/catalog/models/tokenize.json | 2 +- .../resources/org/apache/camel/language/tokenizer/tokenize.json | 2 +- .../java/org/apache/camel/language/tokenizer/TokenizeLanguage.java | 3 +++ .../generated/resources/org/apache/camel/model/language/tokenize.json | 2 +- .../main/java/org/apache/camel/model/language/TokenizerExpression.java | 3 ++- 6 files changed, 9 insertions(+), 5 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/tokenize.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/tokenize.json index 129a79f3f1e..4ca0c11aad4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/tokenize.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/tokenize.json @@ -21,7 +21,7 @@ "inheritNamespaceTagName": { "kind": "attribute", "displayName": "Inherit Namespace Tag Name", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To inherit namespaces from a root\/parent tag name when using XML You can use simple language as the tag name to support dynamic names." }, "regex": { "kind": "attribute", "displayName": "Regex", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the token is a regular expression pattern. The default value is false" }, "xml": { "kind": "attribute", "displayName": "Xml", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the input is XML messages. This option must be set to true if working with XML payloads." }, - "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs The default value is false" }, + "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false" }, "group": { "kind": "attribute", "displayName": "Group", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes." }, "groupDelimiter": { "kind": "attribute", "displayName": "Group Delimiter", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter." }, "skipFirst": { "kind": "attribute", "displayName": "Skip First", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To skip the very first element" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/tokenize.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/tokenize.json index 4c8379a9151..72cad0509c2 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/tokenize.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/tokenize.json @@ -18,7 +18,7 @@ "inheritNamespaceTagName": { "kind": "attribute", "displayName": "Inherit Namespace Tag Name", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To inherit namespaces from a root\/parent tag name when using XML You can use simple language as the tag name to support dynamic names." }, "regex": { "kind": "attribute", "displayName": "Regex", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the token is a regular expression pattern. The default value is false" }, "xml": { "kind": "attribute", "displayName": "Xml", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the input is XML messages. This option must be set to true if working with XML payloads." }, - "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs The default value is false" }, + "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false" }, "group": { "kind": "attribute", "displayName": "Group", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes." }, "groupDelimiter": { "kind": "attribute", "displayName": "Group Delimiter", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter." }, "skipFirst": { "kind": "attribute", "displayName": "Skip First", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To skip the very first element" }, diff --git a/core/camel-core-languages/src/generated/resources/org/apache/camel/language/tokenizer/tokenize.json b/core/camel-core-languages/src/generated/resources/org/apache/camel/language/tokenizer/tokenize.json index 129a79f3f1e..4ca0c11aad4 100644 --- a/core/camel-core-languages/src/generated/resources/org/apache/camel/language/tokenizer/tokenize.json +++ b/core/camel-core-languages/src/generated/resources/org/apache/camel/language/tokenizer/tokenize.json @@ -21,7 +21,7 @@ "inheritNamespaceTagName": { "kind": "attribute", "displayName": "Inherit Namespace Tag Name", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To inherit namespaces from a root\/parent tag name when using XML You can use simple language as the tag name to support dynamic names." }, "regex": { "kind": "attribute", "displayName": "Regex", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the token is a regular expression pattern. The default value is false" }, "xml": { "kind": "attribute", "displayName": "Xml", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the input is XML messages. This option must be set to true if working with XML payloads." }, - "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs The default value is false" }, + "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false" }, "group": { "kind": "attribute", "displayName": "Group", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes." }, "groupDelimiter": { "kind": "attribute", "displayName": "Group Delimiter", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter." }, "skipFirst": { "kind": "attribute", "displayName": "Skip First", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To skip the very first element" }, diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java index a62367e37e0..0d9b0da25f8 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java @@ -120,6 +120,9 @@ public class TokenizeLanguage extends SingleInputLanguageSupport implements Prop if (isXml() && (endToken != null || includeTokens)) { throw new IllegalArgumentException("Cannot have both xml and pair tokenizer enabled."); } + if (endToken == null && includeTokens) { + throw new IllegalArgumentException("The option includeTokens requires endToken to be specified."); + } Expression answer = null; if (isXml()) { diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/tokenize.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/tokenize.json index 4c8379a9151..72cad0509c2 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/tokenize.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/tokenize.json @@ -18,7 +18,7 @@ "inheritNamespaceTagName": { "kind": "attribute", "displayName": "Inherit Namespace Tag Name", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To inherit namespaces from a root\/parent tag name when using XML You can use simple language as the tag name to support dynamic names." }, "regex": { "kind": "attribute", "displayName": "Regex", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the token is a regular expression pattern. The default value is false" }, "xml": { "kind": "attribute", "displayName": "Xml", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the input is XML messages. This option must be set to true if working with XML payloads." }, - "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs The default value is false" }, + "includeTokens": { "kind": "attribute", "displayName": "Include Tokens", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false" }, "group": { "kind": "attribute", "displayName": "Group", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes." }, "groupDelimiter": { "kind": "attribute", "displayName": "Group Delimiter", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter." }, "skipFirst": { "kind": "attribute", "displayName": "Skip First", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To skip the very first element" }, diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/language/TokenizerExpression.java b/core/camel-core-model/src/main/java/org/apache/camel/model/language/TokenizerExpression.java index 3f8821b46bc..512289f7162 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/language/TokenizerExpression.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/language/TokenizerExpression.java @@ -148,7 +148,8 @@ public class TokenizerExpression extends SingleInputExpressionDefinition { } /** - * Whether to include the tokens in the parts when using pairs + * Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property + * must also be configured (to use pair mode). * <p/> * The default value is false */