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
      */

Reply via email to