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 <[email protected]>
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));
}