You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2017/03/23 17:14:25 UTC

[4/4] cxf git commit: [CXF-3574] Support additional JMS property types

[CXF-3574] Support additional JMS property types


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/0e8a68c2
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/0e8a68c2
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/0e8a68c2

Branch: refs/heads/3.0.x-fixes
Commit: 0e8a68c2a6f1c53e24beb73bf9e9efeaa8316c96
Parents: 819c49a
Author: Daniel Kulp <dk...@apache.org>
Authored: Wed Mar 22 18:39:58 2017 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Mar 23 13:13:57 2017 -0400

----------------------------------------------------------------------
 .../cxf/transport/jms/JMSMessageUtils.java      | 26 +++++++++++++++++++-
 .../cxf/transport/jms/JMSPropertyType.java      | 19 +++++++-------
 2 files changed, 34 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/0e8a68c2/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
index 4f16cf3..3d532e1 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
@@ -383,7 +383,31 @@ final class JMSMessageUtils {
         
         if (messageProperties.isSetProperty()) {
             for (JMSPropertyType prop : messageProperties.getProperty()) {
-                jmsMessage.setStringProperty(prop.getName(), prop.getValue());
+                Object o = prop.getValue();
+                if (o != null) {
+                    Class<?> cls = o.getClass();
+                    if (cls == String.class) {
+                        jmsMessage.setStringProperty(prop.getName(), (String)o);
+                    } else if (cls == Integer.TYPE || cls == Integer.class) {
+                        jmsMessage.setIntProperty(prop.getName(), (Integer)o);
+                    } else if (cls == Double.TYPE || cls == Double.class) {
+                        jmsMessage.setDoubleProperty(prop.getName(), (Double)o);
+                    } else if (cls == Float.TYPE || cls == Float.class) {
+                        jmsMessage.setFloatProperty(prop.getName(), (Float)o);
+                    } else if (cls == Long.TYPE || cls == Long.class) {
+                        jmsMessage.setLongProperty(prop.getName(), (Long)o);
+                    } else if (cls == Boolean.TYPE || cls == Boolean.class) {
+                        jmsMessage.setBooleanProperty(prop.getName(), (Boolean)o);
+                    } else if (cls == Short.TYPE || cls == Short.class) {
+                        jmsMessage.setShortProperty(prop.getName(), (Short)o);
+                    } else if (cls == Byte.TYPE || cls == Byte.class) {
+                        jmsMessage.setShortProperty(prop.getName(), (Byte)o);
+                    } else {
+                        jmsMessage.setObjectProperty(prop.getName(), o);
+                    }
+                } else {
+                    jmsMessage.setStringProperty(prop.getName(), null);
+                }
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/0e8a68c2/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSPropertyType.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSPropertyType.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSPropertyType.java
index 0574800..3d9a8f5 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSPropertyType.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSPropertyType.java
@@ -18,34 +18,33 @@
  */
 package org.apache.cxf.transport.jms;
 
-//CHECKSTYLE:OFF
 public class JMSPropertyType {
     protected String name;
-    protected String value;
+    protected Object value;
 
     public String getName() {
         return name;
     }
 
-    public void setName(String value) {
-        this.name = value;
+    public void setName(String name) {
+        this.name = name;
     }
 
     public boolean isSetName() {
-        return (this.name != null);
+        return this.name != null;
     }
 
-    public String getValue() {
+    public Object getValue() {
         return value;
     }
 
-    public void setValue(String value) {
+    public void setValue(Object value) {
         this.value = value;
     }
 
     public boolean isSetValue() {
-        return (this.value != null);
+        return this.value != null;
     }
-
+    
 }
-//CHECKSTYLE:ON
+