This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
The following commit(s) were added to refs/heads/main by this push: new 3d42770 Replace Field: Set JsonNode as expected input and output 3d42770 is described below commit 3d427706480ae7604056dd74d8643cd6a6decf81 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Thu May 6 18:27:33 2021 +0200 Replace Field: Set JsonNode as expected input and output --- .../apache/camel/kamelets/utils/transform/ReplaceField.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 2ea2ed5..55c1586 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 @@ -16,6 +16,9 @@ */ package org.apache.camel.kamelets.utils.transform; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.camel.Exchange; import org.apache.camel.ExchangeProperty; import org.apache.camel.InvalidPayloadException; @@ -31,10 +34,12 @@ import java.util.stream.Collectors; public class ReplaceField { public Map<?, ?> process(@ExchangeProperty("enabled") String enabled, @ExchangeProperty("disabled") String disabled, @ExchangeProperty("renames") String renames,Exchange ex) throws InvalidPayloadException { + ObjectMapper mapper = new ObjectMapper(); List<String> enabledFields = new ArrayList<>(); List<String> disabledFields = new ArrayList<>(); List<String> renameFields = new ArrayList<>(); - Map<Object, Object> body = ex.getMessage().getBody(Map.class); + JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class); + Map<Object, Object> body = mapper.convertValue(jsonNodeBody, new TypeReference<Map<Object, Object>>(){}); if (body == null) { String val = ex.getMessage().getMandatoryBody(String.class); body = new HashMap<>(); @@ -62,9 +67,9 @@ public class ReplaceField { } } if (!updatedBody.isEmpty()) { - return updatedBody; + return mapper.valueToTree(updatedBody); } else { - return body; + return mapper.valueToTree(body); } }