You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/03/22 10:43:51 UTC

[camel-kamelets] branch 0.9.x-trimming-field created (now 85eea40e)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch 0.9.x-trimming-field
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git


      at 85eea40e Extract Field: Add a property to trim the field

This branch includes the following new commits:

     new 85eea40e Extract Field: Add a property to trim the field

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel-kamelets] 01/01: Extract Field: Add a property to trim the field

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch 0.9.x-trimming-field
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit 85eea40e0050a59a3653dbc6a82179c256dd4a22
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 22 11:39:34 2023 +0100

    Extract Field: Add a property to trim the field
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 kamelets/extract-field-action.kamelet.yaml         | 29 ++++++++++++++++------
 .../kamelets/utils/transform/ExtractField.java     | 10 ++++++++
 .../kamelets/extract-field-action.kamelet.yaml     | 29 ++++++++++++++++------
 3 files changed, 52 insertions(+), 16 deletions(-)

diff --git a/kamelets/extract-field-action.kamelet.yaml b/kamelets/extract-field-action.kamelet.yaml
index afc71aeb..473474bb 100644
--- a/kamelets/extract-field-action.kamelet.yaml
+++ b/kamelets/extract-field-action.kamelet.yaml
@@ -70,6 +70,13 @@ spec:
         default: false
         x-descriptors:
         - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+      trimField:
+        title: Trim Field
+        description: If enabled we return the Raw extracted field
+        type: boolean
+        default: false
+        x-descriptors:
+        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
     type: object
   dependencies:
   - "github:apache.camel-kamelets:camel-kamelets-utils:0.9.5-SNAPSHOT"
@@ -91,6 +98,8 @@ spec:
             value: '{{headerOutputName}}'
           - key: strictHeaderCheck
             value: '{{strictHeaderCheck}}'
+          - key: trimField
+            value: '{{trimField}}'
     from:
       uri: kamelet:source
       steps:
@@ -109,12 +118,16 @@ spec:
           ref: "{{extractField}}"
       - choice:
           when:
-          - simple: "${exchangeProperty[deserialized]} == 'true'"
+          - simple: "${exchangeProperty[trimField]} == 'false'"
             steps:
-            - marshal:
-                json:
-                  library: Jackson
-                  unmarshalType: com.fasterxml.jackson.databind.JsonNode
-            - set-header:
-                name: "Content-Type"
-                constant: "application/json"
+            - choice:
+                when:
+                - simple: "${exchangeProperty[deserialized]} == 'true'"
+                  steps:
+                  - marshal:
+                      json:
+                        library: Jackson
+                        unmarshalType: com.fasterxml.jackson.databind.JsonNode
+                  - set-header:
+                      name: "Content-Type"
+                      constant: "application/json"
diff --git a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
index 80ca041c..bdb636b5 100644
--- a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
+++ b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
@@ -31,6 +31,7 @@ public class ExtractField implements Processor {
     String headerOutputName;
     boolean headerOutput;
     boolean strictHeaderCheck;
+    boolean trimField;
 
     static final String EXTRACTED_FIELD_HEADER = "CamelKameletsExtractFieldName";
 
@@ -64,6 +65,11 @@ public class ExtractField implements Processor {
         } else {
             extractToHeader(ex, body);
         }
+        if (trimField) {
+            ex.setProperty("trimField", "true");
+        } else {
+            ex.setProperty("trimField", "false");
+        }
     }
 
     private void extractToHeader(Exchange ex, Map<Object, Object> body) {
@@ -97,4 +103,8 @@ public class ExtractField implements Processor {
     public void setStrictHeaderCheck(boolean strictHeaderCheck) {
         this.strictHeaderCheck = strictHeaderCheck;
     }
+
+    public void setTrimField(boolean trimField) {
+        this.trimField = trimField;
+    }
 }
diff --git a/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
index afc71aeb..473474bb 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
@@ -70,6 +70,13 @@ spec:
         default: false
         x-descriptors:
         - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+      trimField:
+        title: Trim Field
+        description: If enabled we return the Raw extracted field
+        type: boolean
+        default: false
+        x-descriptors:
+        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
     type: object
   dependencies:
   - "github:apache.camel-kamelets:camel-kamelets-utils:0.9.5-SNAPSHOT"
@@ -91,6 +98,8 @@ spec:
             value: '{{headerOutputName}}'
           - key: strictHeaderCheck
             value: '{{strictHeaderCheck}}'
+          - key: trimField
+            value: '{{trimField}}'
     from:
       uri: kamelet:source
       steps:
@@ -109,12 +118,16 @@ spec:
           ref: "{{extractField}}"
       - choice:
           when:
-          - simple: "${exchangeProperty[deserialized]} == 'true'"
+          - simple: "${exchangeProperty[trimField]} == 'false'"
             steps:
-            - marshal:
-                json:
-                  library: Jackson
-                  unmarshalType: com.fasterxml.jackson.databind.JsonNode
-            - set-header:
-                name: "Content-Type"
-                constant: "application/json"
+            - choice:
+                when:
+                - simple: "${exchangeProperty[deserialized]} == 'true'"
+                  steps:
+                  - marshal:
+                      json:
+                        library: Jackson
+                        unmarshalType: com.fasterxml.jackson.databind.JsonNode
+                  - set-header:
+                      name: "Content-Type"
+                      constant: "application/json"