Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x 59fc35401 -> 14980a0a8
  refs/heads/master 68c6dabca -> fc0eb8c57


CAMEL-9714: camel-boon - Unmarshal to Map does not work


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7786a323
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7786a323
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7786a323

Branch: refs/heads/master
Commit: 7786a323930b7906473a3e7466338ec91c556103
Parents: 68c6dab
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Mar 16 08:53:00 2016 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Mar 16 08:53:00 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/component/boon/BoonDataFormat.java  | 15 +++++++++++----
 .../camel/component/boon/BoonDataFormatTest.java     |  8 ++++----
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7786a323/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
----------------------------------------------------------------------
diff --git 
a/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
 
b/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
index 5e9f7cd..a867c32 100644
--- 
a/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
+++ 
b/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
@@ -22,7 +22,6 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.util.HashMap;
 import java.util.List;
 
 import org.apache.camel.Exchange;
@@ -47,7 +46,7 @@ public class BoonDataFormat extends ServiceSupport implements 
DataFormat, DataFo
     private boolean useList;
 
     public BoonDataFormat() {
-        this(HashMap.class);
+        this(null);
     }
 
     /**
@@ -86,8 +85,16 @@ public class BoonDataFormat extends ServiceSupport 
implements DataFormat, DataFo
     @Override
     public Object unmarshal(Exchange exchange, InputStream stream) throws 
Exception {
         BufferedReader reader = IOHelper.buffered(new 
InputStreamReader(stream, IOHelper.getCharsetName(exchange)));
-        Object result = objectMapper.fromJson(reader, this.unmarshalType);
-        reader.close();
+        Object result;
+        try {
+            if (unmarshalType != null) {
+                result = objectMapper.fromJson(reader, unmarshalType);
+            } else {
+                result = objectMapper.fromJson(reader);
+            }
+        } finally {
+            IOHelper.close(reader);
+        }
         return result;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/7786a323/components/camel-boon/src/test/java/org/apache/camel/component/boon/BoonDataFormatTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-boon/src/test/java/org/apache/camel/component/boon/BoonDataFormatTest.java
 
b/components/camel-boon/src/test/java/org/apache/camel/component/boon/BoonDataFormatTest.java
index 8f4c6b5..1da380b 100644
--- 
a/components/camel-boon/src/test/java/org/apache/camel/component/boon/BoonDataFormatTest.java
+++ 
b/components/camel-boon/src/test/java/org/apache/camel/component/boon/BoonDataFormatTest.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.boon;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -93,14 +92,15 @@ public class BoonDataFormatTest extends CamelTestSupport {
         TestPojo in = new TestPojo();
         in.setName("Camel");
         
-        HashMap<String, TestPojo> map = new LinkedHashMap<String, TestPojo>();
+        Map<String, TestPojo> map = new LinkedHashMap<String, TestPojo>();
         map.put("test1", in);
         map.put("test2", in);
 
         MockEndpoint mock = getMockEndpoint("mock:reversePojosMap");
         mock.expectedMessageCount(1);
-        mock.message(0).body().isInstanceOf(HashMap.class);
-        mock.message(0).body().isEqualTo(map);
+        mock.message(0).body().isInstanceOf(Map.class);
+        mock.message(0).body().matches().simple("${body[test1].name} == 
'Camel'");
+        mock.message(0).body().matches().simple("${body[test2].name} == 
'Camel'");
 
         Object marshalled = template.requestBody("direct:inPojosMap", map);
         String marshalledAsString = 
context.getTypeConverter().convertTo(String.class, marshalled);

Reply via email to