You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2016/08/05 07:27:27 UTC

karaf-decanter git commit: [KARAF-4647] Make sure we send maps as object not as String

Repository: karaf-decanter
Updated Branches:
  refs/heads/master c5235eae0 -> f3f93755b


[KARAF-4647] Make sure we send maps as object not as String


Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/f3f93755
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/f3f93755
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/f3f93755

Branch: refs/heads/master
Commit: f3f93755b672fff0ce5e87003e875f89cecb68d1
Parents: c5235ea
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Aug 5 09:27:13 2016 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Aug 5 09:27:13 2016 +0200

----------------------------------------------------------------------
 .../karaf/decanter/appender/jms/JmsAppender.java | 19 ++++++++++++-------
 .../decanter/appender/jms/JmsAppenderTest.java   |  3 +++
 2 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/f3f93755/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
----------------------------------------------------------------------
diff --git a/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java b/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
index 021c491..38d9bb4 100644
--- a/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
+++ b/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
@@ -17,6 +17,7 @@
 package org.apache.karaf.decanter.appender.jms;
 
 import java.util.Dictionary;
+import java.util.Map;
 
 import javax.jms.*;
 
@@ -94,18 +95,22 @@ public class JmsAppender implements EventHandler {
         if (value == null) {
             return;
         }
-        if (value instanceof String)
+        if (value instanceof String) {
             message.setString(name, (String) value);
-        else if (value instanceof Boolean)
+        } else if (value instanceof Boolean) {
             message.setBoolean(name, (Boolean) value);
-        else if (value instanceof Double)
+        } else if (value instanceof Double) {
             message.setDouble(name, (Double) value);
-        else if (value instanceof Integer)
+        } else if (value instanceof Integer) {
             message.setInt(name, (Integer) value);
-        else if (value instanceof Long)
+        } else if (value instanceof Long) {
             message.setLong(name, (Long) value);
-        else message.setString(name, value.toString());
-        // we can setObject with List, Map, but they have to contain only primitives
+        } else if (value instanceof Map) {
+            // Must only contain primitives
+            message.setObject(name, value);
+        } else {
+            message.setString(name, value.toString());
+        }
     }
 
     private Destination createDestination(Session session) throws JMSException {

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/f3f93755/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
----------------------------------------------------------------------
diff --git a/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java b/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
index dfb3a64..d1a1c9e 100644
--- a/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
+++ b/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
@@ -56,6 +56,7 @@ public class JmsAppenderTest {
         props.put("boolean", true);
         props.put("integer", 1);
         props.put("testnull", null);
+        props.put("map", new HashMap<String, String>());
         appender.handleEvent(new Event("decanter/collect", props));
         
         MapMessage message = (MapMessage)consumer.receive(1000);
@@ -67,5 +68,7 @@ public class JmsAppenderTest {
         Assert.assertEquals("test", message.getObject("string"));
         Assert.assertEquals(true, message.getObject("boolean"));
         Assert.assertEquals(1, message.getObject("integer"));
+        Object map = message.getObject("map");
+        Assert.assertTrue(map instanceof Map);
     }
 }