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 d96f39f Extract Field: Set JsonNode as expected input d96f39f is described below commit d96f39f2d04dd05bc0e502a803453bae632b31e3 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Fri May 7 06:53:59 2021 +0200 Extract Field: Set JsonNode as expected input --- .../camel/kamelets/utils/transform/ExtractField.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) 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 81dae10..a0a396e 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 @@ -16,23 +16,21 @@ */ 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; -import java.util.HashMap; import java.util.Map; public class ExtractField { - public void process(@ExchangeProperty("field") String field, Exchange ex) throws InvalidPayloadException { - Map<Object, Object> body = ex.getMessage().getBody(Map.class); - if (body == null) { - String val = ex.getMessage().getMandatoryBody(String.class); - body = new HashMap<>(); - // TODO: make this configurable - body.put("content", val); - } + public void process(@ExchangeProperty("field") String field, Exchange ex) { + ObjectMapper mapper = new ObjectMapper(); + JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class); + Map<Object, Object> body = mapper.convertValue(jsonNodeBody, new TypeReference<Map<Object, Object>>(){}); ex.getMessage().setBody(body.get(field)); }