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

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

commit c956b5b66c34d103b8292a361799ee71eca10868
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Jan 12 11:29:46 2022 +0100

    Replace Field Action: disabled and enabled are mandatory
---
 kamelets/replace-field-action.kamelet.yaml         |  4 ++--
 .../kamelets/utils/transform/ReplaceField.java     | 23 ++++++++++++----------
 .../kamelets/replace-field-action.kamelet.yaml     |  4 ++--
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/kamelets/replace-field-action.kamelet.yaml 
b/kamelets/replace-field-action.kamelet.yaml
index 090bfc0..6340e16 100644
--- a/kamelets/replace-field-action.kamelet.yaml
+++ b/kamelets/replace-field-action.kamelet.yaml
@@ -31,18 +31,18 @@ spec:
     title: "Replace Field Action"
     description: "Replace field with a different key in the message in transit"
     required:
-      - enabled
-      - disabled
       - renames
     properties:
       enabled:
         title: Enabled
         description: Comma separated list of fields to be enabled
         type: string
+        default: "all"
       disabled:
         title: Disabled
         description: Comma separated list of fields to be disabled
         type: string
+        default: "none"
       renames:
         title: Renames
         description: Comma separated list of field with new value to be renamed
diff --git 
a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ReplaceField.java
 
b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ReplaceField.java
index 518fa28..7640ddc 100644
--- 
a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ReplaceField.java
+++ 
b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ReplaceField.java
@@ -40,24 +40,27 @@ public class ReplaceField {
         List<String> renameFields = new ArrayList<>();
         JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class);
         Map<Object, Object> body = mapper.convertValue(jsonNodeBody, new 
TypeReference<Map<Object, Object>>(){});
-        if (ObjectHelper.isNotEmpty(enabled)) {
+        if (ObjectHelper.isNotEmpty(enabled) && 
!enabled.equalsIgnoreCase("all")) {
             enabledFields = 
Arrays.stream(enabled.split(",")).collect(Collectors.toList());
         }
-        if (ObjectHelper.isNotEmpty(disabled)) {
+        if (ObjectHelper.isNotEmpty(disabled) && 
!disabled.equalsIgnoreCase("none")) {
             disabledFields = 
Arrays.stream(disabled.split(",")).collect(Collectors.toList());
         }
         if (ObjectHelper.isNotEmpty(disabled)) {
             renameFields = 
Arrays.stream(renames.split(",")).collect(Collectors.toList());
         }
-
-        Map<String, String> renamingMap = parseNames(renameFields);
         Map<Object, Object> updatedBody = new HashMap<>();
-        for (Map.Entry entry:
-             body.entrySet()) {
-            final String fieldName = (String) entry.getKey();
-            if (filterNames(fieldName, enabledFields, disabledFields)) {
-                final Object fieldValue = entry.getValue();
-                updatedBody.put(renameOptional(fieldName, renamingMap), 
fieldValue);
+
+        if (ObjectHelper.isNotEmpty(renameFields)) {
+            Map<String, String> renamingMap = parseNames(renameFields);
+
+            for (Map.Entry entry :
+                    body.entrySet()) {
+                final String fieldName = (String) entry.getKey();
+                if (filterNames(fieldName, enabledFields, disabledFields)) {
+                    final Object fieldValue = entry.getValue();
+                    updatedBody.put(renameOptional(fieldName, renamingMap), 
fieldValue);
+                }
             }
         }
         if (!updatedBody.isEmpty()) {
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/replace-field-action.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/replace-field-action.kamelet.yaml
index 090bfc0..6340e16 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/replace-field-action.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/replace-field-action.kamelet.yaml
@@ -31,18 +31,18 @@ spec:
     title: "Replace Field Action"
     description: "Replace field with a different key in the message in transit"
     required:
-      - enabled
-      - disabled
       - renames
     properties:
       enabled:
         title: Enabled
         description: Comma separated list of fields to be enabled
         type: string
+        default: "all"
       disabled:
         title: Disabled
         description: Comma separated list of fields to be disabled
         type: string
+        default: "none"
       renames:
         title: Renames
         description: Comma separated list of field with new value to be renamed

Reply via email to