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
