You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by cs...@apache.org on 2017/04/27 15:14:16 UTC

[1/2] cxf git commit: [CXF-7344] Fix for jms rest problem. Convert dots to underscores

Repository: cxf
Updated Branches:
  refs/heads/master 6070ddeef -> 7fab62456


[CXF-7344] Fix for jms rest problem. Convert dots to underscores


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

Branch: refs/heads/master
Commit: 7fab6245608119634271e580166120b9c55dce48
Parents: 0a4d267
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Thu Apr 27 17:14:01 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Thu Apr 27 17:14:12 2017 +0200

----------------------------------------------------------------------
 .../transport/jms/JMSMessageHeadersType.java    |  7 +-
 .../cxf/transport/jms/JMSHeaderTypeTest.java    | 73 ++++++++++++++++++++
 2 files changed, 79 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/7fab6245/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
index 9fcafba..1325112 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
@@ -72,10 +72,15 @@ public class JMSMessageHeadersType {
     }
     
     public void putProperty(String key, Object value) {
-        properties.put(key, value);
+        String escapedKey = key.replace(".", "_");
+        properties.put(escapedKey, value);
     }
     
     public Object getProperty(String key) {
+        String escapedKey = key.replace(".", "_");
+        if (properties.containsKey(escapedKey)) {
+            return properties.get(escapedKey);
+        }
         return properties.get(key);
     }
     

http://git-wip-us.apache.org/repos/asf/cxf/blob/7fab6245/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSHeaderTypeTest.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSHeaderTypeTest.java b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSHeaderTypeTest.java
new file mode 100644
index 0000000..2e66b28
--- /dev/null
+++ b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSHeaderTypeTest.java
@@ -0,0 +1,73 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.transport.jms;
+
+import java.util.Set;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.Session;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.junit.Assert;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class JMSHeaderTypeTest {
+
+    private static final String TEST_VALUE = "test";
+    private static final String CONVERTED_RESPONSE_KEY = "org_apache_cxf_message_Message_RESPONSE_CODE";
+    
+    @Test
+    public void testConversionIn() throws JMSException {
+        Message message = createMessage();
+        message.setStringProperty(org.apache.cxf.message.Message.RESPONSE_CODE, TEST_VALUE);
+        JMSMessageHeadersType messageHeaders = JMSMessageHeadersType.from(message);
+        Set<String> keys = messageHeaders.getPropertyKeys();
+        Assert.assertEquals(1, keys.size());
+        assertEquals(CONVERTED_RESPONSE_KEY, keys.iterator().next());
+        assertEquals(TEST_VALUE, (String)messageHeaders.getProperty(org.apache.cxf.message.Message.RESPONSE_CODE));
+        assertEquals(TEST_VALUE, (String)messageHeaders.getProperty(CONVERTED_RESPONSE_KEY));
+    }
+    
+    @Test
+    public void testConversionOut() throws JMSException {
+        Message message = createMessage();
+        
+        message.setStringProperty(org.apache.cxf.message.Message.RESPONSE_CODE, TEST_VALUE);
+        JMSMessageHeadersType messageHeaders = new JMSMessageHeadersType();
+        messageHeaders.putProperty(org.apache.cxf.message.Message.RESPONSE_CODE, TEST_VALUE);
+        messageHeaders.writeTo(message);
+        
+        Assert.assertEquals(CONVERTED_RESPONSE_KEY, message.getPropertyNames().nextElement());
+        
+    }
+
+    private Message createMessage() throws JMSException {
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://test?broker.persistent=false");
+        Connection connection = cf.createConnection();
+        connection.start();
+        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Message message = session.createMessage();
+        connection.stop();
+        return message;
+    }
+}


[2/2] cxf git commit: Refactoring in jms transport to implement properties as map

Posted by cs...@apache.org.
Refactoring in jms transport to implement properties as map


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

Branch: refs/heads/master
Commit: 0a4d26766122177fe1a919ae1e00bb1d93712c6f
Parents: 6070dde
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Thu Apr 27 17:07:08 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Thu Apr 27 17:14:12 2017 +0200

----------------------------------------------------------------------
 .../java/demo/jms_greeter/client/Client.java    |   6 +-
 .../apache/cxf/transport/jms/JMSConstants.java  |  18 +-
 .../transport/jms/JMSMessageHeadersType.java    | 212 +++++++++++----
 .../cxf/transport/jms/JMSMessageUtils.java      | 255 +++++--------------
 .../cxf/transport/jms/JMSPropertyType.java      |  38 +--
 .../transport/jms/spec/JMSSpecConstants.java    |   5 +-
 .../cxf/transport/jms/JMSDestinationTest.java   |   3 +-
 .../cxf/systest/jms/JMSClientServerTest.java    |  15 +-
 .../cxf/systest/jms/TwoWayJMSImplBase.java      |   3 +-
 .../systest/jms/security/TwoWayJMSImplBase.java |   7 +-
 10 files changed, 255 insertions(+), 307 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/distribution/src/main/release/samples/jms_queue/src/main/java/demo/jms_greeter/client/Client.java
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jms_queue/src/main/java/demo/jms_greeter/client/Client.java b/distribution/src/main/release/samples/jms_queue/src/main/java/demo/jms_greeter/client/Client.java
index 8764e2c..717afb4 100644
--- a/distribution/src/main/release/samples/jms_queue/src/main/java/demo/jms_greeter/client/Client.java
+++ b/distribution/src/main/release/samples/jms_queue/src/main/java/demo/jms_greeter/client/Client.java
@@ -31,8 +31,6 @@ import javax.xml.ws.BindingProvider;
 import org.apache.cxf.jms_greeter.JMSGreeterPortType;
 import org.apache.cxf.jms_greeter.JMSGreeterService;
 import org.apache.cxf.transport.jms.JMSMessageHeadersType;
-import org.apache.cxf.transport.jms.JMSPropertyType;
-
 
 public final class Client {
 
@@ -85,7 +83,7 @@ public final class Client {
             JMSMessageHeadersType requestHeader = new JMSMessageHeadersType();
             requestHeader.setJMSCorrelationID("JMS_QUEUE_SAMPLE_CORRELATION_ID");
             requestHeader.setJMSExpiration(3600000L);
-            requestHeader.getProperty().add(new JMSPropertyType("Test.Prop", "mustReturn"));
+            requestHeader.putProperty("Test.Prop", "mustReturn");
             requestContext.put("org.apache.cxf.jms.client.request.headers", requestHeader);
             //To override the default receive timeout.
             requestContext.put("org.apache.cxf.jms.client.timeout", new Long(1000));
@@ -105,7 +103,7 @@ public final class Client {
             }
 
             if ("JMS_QUEUE_SAMPLE_CORRELATION_ID".equals(responseHdr.getJMSCorrelationID())
-                && responseHdr.getProperty() != null) {
+                && !responseHdr.getPropertyKeys().isEmpty()) {
                 System.out.println("Received expected contents in response context");
             } else {
                 System.out.println("Received wrong contents in response context");

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
index 4d33f74..63fe389 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
@@ -21,43 +21,59 @@ package org.apache.cxf.transport.jms;
 
 public final class JMSConstants {
 
+    @Deprecated
     public static final String JMS_CONTENT_TYPE = "SOAPJMS_contentType";
+    
+    @Deprecated
     public static final String JMS_QUEUE = "queue";
+    @Deprecated
     public static final String JMS_TOPIC = "topic";
 
     public static final String TEXT_MESSAGE_TYPE = "text";
     public static final String BINARY_MESSAGE_TYPE = "binary";
     public static final String BYTE_MESSAGE_TYPE = "byte";
 
+    @Deprecated
     public static final String JMS_POOLEDSESSION = "jms.pooled.session";
     public static final String JMS_SERVER_REQUEST_HEADERS = "org.apache.cxf.jms.server.request.headers";
     public static final String JMS_SERVER_RESPONSE_HEADERS = "org.apache.cxf.jms.server.response.headers";
     public static final String JMS_REQUEST_MESSAGE = "org.apache.cxf.jms.request.message";
+    @Deprecated
     public static final String JMS_RESPONSE_MESSAGE = "org.apache.cxf.jms.reponse.message";
     public static final String JMS_CLIENT_REQUEST_HEADERS = "org.apache.cxf.jms.client.request.headers";
     public static final String JMS_CLIENT_RESPONSE_HEADERS =
         "org.apache.cxf.jms.client.response.headers";
 
+    @Deprecated
     public static final String JMS_CLIENT_RECEIVE_TIMEOUT = "org.apache.cxf.jms.client.timeout";
 
+    @Deprecated
     public static final String JMS_SERVER_CONFIGURATION_URI =
         "http://cxf.apache.org/configuration/transport/jms-server";
+    @Deprecated
     public static final String JMS_CLIENT_CONFIGURATION_URI =
         "http://cxf.apache.org/configuration/transport/jms-client";
+    @Deprecated
     public static final String ENDPOINT_CONFIGURATION_URI =
         "http://cxf.apache.org/jaxws/endpoint-config";
+    @Deprecated
     public static final String SERVICE_CONFIGURATION_URI =
         "http://cxf.apache.org/jaxws/service-config";
+    @Deprecated
     public static final String PORT_CONFIGURATION_URI =
         "http://cxf.apache.org/jaxws/port-config";
 
+    @Deprecated
     public static final String JMS_CLIENT_CONFIG_ID = "jms-client";
+    @Deprecated
     public static final String JMS_SERVER_CONFIG_ID = "jms-server";
 
     // Is used by WS-Addressing
     public static final String JMS_REBASED_REPLY_TO = "org.apache.cxf.jms.server.replyto";
     public static final String JMS_SET_REPLY_TO = "org.apache.cxf.jms.client.set.replyto";
-
+    public static final String JMS_MESSAGE_TYPE = "JMSMessageType";
+    public static final String TARGET_SERVICE_IN_REQUESTURI = "target.service.inrequesturi";
+    public static final String MALFORMED_REQUESTURI = "malformed.requesturi";
 
     private JMSConstants() {
         //utility class

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
index 333f582..9fcafba 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
@@ -19,49 +19,70 @@
 package org.apache.cxf.transport.jms;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
+import javax.jms.Destination;
 import javax.jms.JMSException;
 import javax.jms.Message;
+import javax.jms.Queue;
+import javax.jms.Topic;
 
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.transport.jms.spec.JMSSpecConstants;
 
-//CHECKSTYLE:OFF
 public class JMSMessageHeadersType {
-    protected List<JMSPropertyType> property;
-    protected String jmsCorrelationID;
-    protected Integer jmsDeliveryMode;
-    protected Long jmsExpiration;
-    protected String jmsMessageID;
-    protected Integer jmsPriority;
-    protected Boolean jmsRedelivered;
-    protected String jmsReplyTo;
-    protected Long jmsTimeStamp;
-    protected String jmsType;
-    protected Long timeToLive;
-    protected String soapjmsTargetService;
-    protected String soapjmsBindingVersion;
-    protected String soapjmsContentType;
-    protected String soapjmsContentEncoding;
-    protected String soapjmssoapAction;
-    protected Boolean soapjmsIsFault;
-    protected String soapjmsRequestURI;
-
+    private Map<String, Object> properties;
+    private String jmsCorrelationID;
+    private Integer jmsDeliveryMode;
+    private Long jmsExpiration;
+    private String jmsMessageID;
+    private Integer jmsPriority;
+    private Boolean jmsRedelivered;
+    private String jmsReplyTo;
+    private Long jmsTimeStamp;
+    private String jmsType;
+    private Long timeToLive;
+    private String soapjmsTargetService;
+    private String soapjmsBindingVersion;
+    private String soapjmsContentType;
+    private String soapjmsContentEncoding;
+    private String soapjmssoapAction;
+    private Boolean soapjmsIsFault;
+    private String soapjmsRequestURI;
+    
+    public JMSMessageHeadersType() {
+        this.properties = new HashMap<>();
+    }
+    
+    @Deprecated
     public List<JMSPropertyType> getProperty() {
-        if (property == null) {
-            property = new ArrayList<>();
+        List<JMSPropertyType> props = new ArrayList<>();
+        for (String key : properties.keySet()) {
+            JMSPropertyType prop = new JMSPropertyType();
+            prop.setName(key);
+            prop.setValue(properties.get(key));
+            props.add(prop);
         }
-        return this.property;
+        return Collections.unmodifiableList(props);
     }
-
-    public boolean isSetProperty() {
-        return ((this.property != null) && (!this.property.isEmpty()));
+    
+    public void putProperty(String key, Object value) {
+        properties.put(key, value);
     }
-
-    public void unsetProperty() {
-        this.property = null;
+    
+    public Object getProperty(String key) {
+        return properties.get(key);
     }
-
+    
+    public Set<String> getPropertyKeys() {
+        return properties.keySet();
+    }
+    
     public String getJMSCorrelationID() {
         return jmsCorrelationID;
     }
@@ -71,7 +92,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSCorrelationID() {
-        return (this.jmsCorrelationID != null);
+        return this.jmsCorrelationID != null;
     }
 
     public String getJMSMessageID() {
@@ -83,7 +104,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSMessageID() {
-        return (this.jmsMessageID != null);
+        return this.jmsMessageID != null;
     }
 
     public String getJMSReplyTo() {
@@ -95,7 +116,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSReplyTo() {
-        return (this.jmsReplyTo != null);
+        return this.jmsReplyTo != null;
     }
 
     public String getJMSType() {
@@ -107,7 +128,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSType() {
-        return (this.jmsType != null);
+        return this.jmsType != null;
     }
 
     public String getSOAPJMSTargetService() {
@@ -119,7 +140,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSTargetService() {
-        return (this.soapjmsTargetService != null);
+        return this.soapjmsTargetService != null;
     }
 
     public String getSOAPJMSBindingVersion() {
@@ -131,7 +152,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSBindingVersion() {
-        return (this.soapjmsBindingVersion != null);
+        return this.soapjmsBindingVersion != null;
     }
 
     public String getSOAPJMSContentType() {
@@ -143,7 +164,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSContentType() {
-        return (this.soapjmsContentType != null);
+        return this.soapjmsContentType != null;
     }
 
     public String getSOAPJMSContentEncoding() {
@@ -155,7 +176,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSContentEncoding() {
-        return (this.soapjmsContentEncoding != null);
+        return this.soapjmsContentEncoding != null;
     }
 
     public String getSOAPJMSSOAPAction() {
@@ -167,7 +188,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSSOAPAction() {
-        return (this.soapjmssoapAction != null);
+        return this.soapjmssoapAction != null;
     }
 
     public String getSOAPJMSRequestURI() {
@@ -179,7 +200,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSRequestURI() {
-        return (this.soapjmsRequestURI != null);
+        return this.soapjmsRequestURI != null;
     }
 
     public void setJMSDeliveryMode(int value) {
@@ -191,7 +212,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSDeliveryMode() {
-        return (this.jmsDeliveryMode != null);
+        return this.jmsDeliveryMode != null;
     }
 
     public int getJMSDeliveryMode() {
@@ -207,7 +228,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSExpiration() {
-        return (this.jmsExpiration != null);
+        return this.jmsExpiration != null;
     }
 
     public long getJMSExpiration() {
@@ -223,7 +244,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSPriority() {
-        return (this.jmsPriority != null);
+        return this.jmsPriority != null;
     }
 
     public int getJMSPriority() {
@@ -239,7 +260,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSRedelivered() {
-        return (this.jmsRedelivered != null);
+        return this.jmsRedelivered != null;
     }
 
     public boolean isJMSRedelivered() {
@@ -255,7 +276,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetJMSTimeStamp() {
-        return (this.jmsTimeStamp != null);
+        return this.jmsTimeStamp != null;
     }
 
     public long getJMSTimeStamp() {
@@ -271,7 +292,7 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetTimeToLive() {
-        return (this.timeToLive != null);
+        return this.timeToLive != null;
     }
 
     public long getTimeToLive() {
@@ -287,12 +308,98 @@ public class JMSMessageHeadersType {
     }
 
     public boolean isSetSOAPJMSIsFault() {
-        return (this.soapjmsIsFault != null);
+        return this.soapjmsIsFault != null;
     }
 
     public boolean isSOAPJMSIsFault() {
         return soapjmsIsFault;
     }
+    
+    public String getContentType() {
+        String contentType = getSOAPJMSContentType();
+        if (contentType == null) {
+            contentType = (String)getProperty(JMSSpecConstants.CONTENTTYPE_FIELD);
+        }
+        if (contentType == null) {
+            contentType = (String)getProperty(org.apache.cxf.message.Message.CONTENT_TYPE);
+        }
+        return contentType;
+    }
+    
+    public static JMSMessageHeadersType from(Message message) throws JMSException {
+        JMSMessageHeadersType messageHeaders = new JMSMessageHeadersType();
+        messageHeaders.read(message);
+        return messageHeaders;
+    }
+    
+    private void read(Message message) throws JMSException {
+        setJMSCorrelationID(message.getJMSCorrelationID());
+        setJMSDeliveryMode(Integer.valueOf(message.getJMSDeliveryMode()));
+        setJMSExpiration(Long.valueOf(message.getJMSExpiration()));
+        setJMSMessageID(message.getJMSMessageID());
+        setJMSPriority(Integer.valueOf(message.getJMSPriority()));
+        setJMSRedelivered(Boolean.valueOf(message.getJMSRedelivered()));
+        setJMSTimeStamp(Long.valueOf(message.getJMSTimestamp()));
+        setJMSType(message.getJMSType());
+        setSOAPJMSTargetService(message.getStringProperty(JMSSpecConstants.TARGETSERVICE_FIELD));
+        setSOAPJMSBindingVersion(message.getStringProperty(JMSSpecConstants.BINDINGVERSION_FIELD));
+        setSOAPJMSContentType(message.getStringProperty(JMSSpecConstants.CONTENTTYPE_FIELD));
+        setSOAPJMSContentEncoding(message.getStringProperty(JMSSpecConstants.CONTENTENCODING_FIELD));
+        setSOAPJMSSOAPAction(message.getStringProperty(JMSSpecConstants.SOAPACTION_FIELD));
+        if (message.propertyExists(JMSSpecConstants.ISFAULT_FIELD)) {
+            setSOAPJMSIsFault(message.getBooleanProperty(JMSSpecConstants.ISFAULT_FIELD));
+        }
+        setSOAPJMSRequestURI(message.getStringProperty(JMSSpecConstants.REQUESTURI_FIELD));
+
+        setJMSReplyTo(getDestName(message));
+        readProperties(message);
+    }
+
+    private String getDestName(Message message) throws JMSException {
+        Destination replyTo = message.getJMSReplyTo();
+        if (replyTo instanceof Queue) {
+            return ((Queue)replyTo).getQueueName();
+        } else if (replyTo instanceof Topic) {
+            return ((Topic)replyTo).getTopicName();
+        }
+        return null;
+    }
+
+    private void readProperties(Message message) throws JMSException {
+        Enumeration<String> enm = CastUtils.cast(message.getPropertyNames());
+        while (enm.hasMoreElements()) {
+            String name = enm.nextElement();
+            String val = message.getStringProperty(name);
+            putProperty(name, val);
+        }
+    }
+    
+    public void writeProp(Message jmsMessage, String name, Object value) throws JMSException {
+        if (value == null) {
+            jmsMessage.setStringProperty(name, null);
+            return;
+        }
+        Class<?> cls = value.getClass();
+        if (cls == String.class) {
+            jmsMessage.setStringProperty(name, (String)value);
+        } else if (cls == Integer.TYPE || cls == Integer.class) {
+            jmsMessage.setIntProperty(name, (Integer)value);
+        } else if (cls == Double.TYPE || cls == Double.class) {
+            jmsMessage.setDoubleProperty(name, (Double)value);
+        } else if (cls == Float.TYPE || cls == Float.class) {
+            jmsMessage.setFloatProperty(name, (Float)value);
+        } else if (cls == Long.TYPE || cls == Long.class) {
+            jmsMessage.setLongProperty(name, (Long)value);
+        } else if (cls == Boolean.TYPE || cls == Boolean.class) {
+            jmsMessage.setBooleanProperty(name, (Boolean)value);
+        } else if (cls == Short.TYPE || cls == Short.class) {
+            jmsMessage.setShortProperty(name, (Short)value);
+        } else if (cls == Byte.TYPE || cls == Byte.class) {
+            jmsMessage.setShortProperty(name, (Byte)value);
+        } else {
+            jmsMessage.setObjectProperty(name, value);
+        }
+    }
 
     /**
      * @param jmsMessage
@@ -312,18 +419,17 @@ public class JMSMessageHeadersType {
             jmsMessage.setBooleanProperty(JMSSpecConstants.ISFAULT_FIELD, isSOAPJMSIsFault());
         }
 
-        if (isSetProperty()) {
-            for (JMSPropertyType prop : getProperty()) {
-                prop.writeTo(jmsMessage);
-            }
+        for (String key : properties.keySet()) {
+            writeProp(jmsMessage, key, properties.get(key));
         }
     }
     
-    private static void setProp(Message jmsMessage, String name, String value) throws JMSException {
+    private void setProp(Message jmsMessage, String name, String value) throws JMSException {
         if (value != null) {
             jmsMessage.setStringProperty(name, value);
         }
     }
+    
+
 
 }
-//CHECKSTYLE:ON
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/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 04a8e6c..d599294 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
@@ -26,7 +26,6 @@ import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
-import java.util.Enumeration;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -34,13 +33,10 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.jms.BytesMessage;
-import javax.jms.Destination;
 import javax.jms.JMSException;
 import javax.jms.Message;
-import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
-import javax.jms.Topic;
 
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
@@ -48,7 +44,6 @@ import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.helpers.HttpHeaderHelper;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.message.MessageUtils;
-import org.apache.cxf.transport.jms.spec.JMSSpecConstants;
 import org.apache.cxf.transport.jms.uri.JMSEndpoint;
 import org.apache.cxf.transport.jms.util.JMSMessageConverter;
 import org.apache.cxf.transport.jms.util.JMSUtil;
@@ -62,10 +57,12 @@ final class JMSMessageUtils {
     private JMSMessageUtils() {
 
     }
-    public static org.apache.cxf.message.Message asCXFMessage(Message message, String headerType)
+    public static org.apache.cxf.message.Message asCXFMessage(Message message, String jmsHeadersKey)
         throws UnsupportedEncodingException, JMSException {
         org.apache.cxf.message.Message inMessage = new MessageImpl();
-        populateIncomingContext(message, inMessage, headerType);
+        JMSMessageHeadersType messageHeaders = JMSMessageHeadersType.from(message);
+        inMessage.put(jmsHeadersKey, messageHeaders);
+        populateIncomingContext(messageHeaders, inMessage);
         retrieveAndSetPayload(inMessage, message);
         return inMessage;
     }
@@ -78,7 +75,7 @@ final class JMSMessageUtils {
      * @throws UnsupportedEncodingException
      * @throws JMSException
      */
-    public static void retrieveAndSetPayload(org.apache.cxf.message.Message inMessage, Message message)
+    private static void retrieveAndSetPayload(org.apache.cxf.message.Message inMessage, Message message)
         throws UnsupportedEncodingException, JMSException {
         String messageType = null;
         Object converted = new JMSMessageConverter().fromMessage(message);
@@ -93,133 +90,45 @@ final class JMSMessageUtils {
         }
         Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>)inMessage
             .get(org.apache.cxf.message.Message.PROTOCOL_HEADERS));
-        if (headers == null) {
-            headers = new TreeMap<String, List<String>>();
-            inMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, headers);
-        }
-        headers.put(JMSSpecConstants.JMS_MESSAGE_TYPE, Collections.singletonList(messageType));
+        headers.put(JMSConstants.JMS_MESSAGE_TYPE, Collections.singletonList(messageType));
     }
 
-    private static void populateIncomingContext(javax.jms.Message message,
-                                               org.apache.cxf.message.Message inMessage, String messageType)
-        throws UnsupportedEncodingException, JMSException {
-        JMSMessageHeadersType messageProperties = null;
-        messageProperties = (JMSMessageHeadersType)inMessage.get(messageType);
-        if (messageProperties == null) {
-            messageProperties = new JMSMessageHeadersType();
-            inMessage.put(messageType, messageProperties);
+    private static void populateIncomingContext(JMSMessageHeadersType messageHeaders,
+                                               org.apache.cxf.message.Message inMessage) 
+                                                   throws UnsupportedEncodingException {
+        String contentType = messageHeaders.getContentType();
+        if (contentType != null) {
+            inMessage.put(org.apache.cxf.message.Message.CONTENT_TYPE, contentType);
+            inMessage.put(org.apache.cxf.message.Message.ENCODING, getEncoding(contentType));
         }
-        messageProperties.setJMSCorrelationID(message.getJMSCorrelationID());
-        messageProperties.setJMSDeliveryMode(Integer.valueOf(message.getJMSDeliveryMode()));
-        messageProperties.setJMSExpiration(Long.valueOf(message.getJMSExpiration()));
-        messageProperties.setJMSMessageID(message.getJMSMessageID());
-        messageProperties.setJMSPriority(Integer.valueOf(message.getJMSPriority()));
-        messageProperties.setJMSRedelivered(Boolean.valueOf(message.getJMSRedelivered()));
-        messageProperties.setJMSTimeStamp(Long.valueOf(message.getJMSTimestamp()));
-        messageProperties.setJMSType(message.getJMSType());
-
-        if (message.getJMSReplyTo() != null) {
-            Destination replyTo = message.getJMSReplyTo();
-            if (replyTo instanceof Queue) {
-                messageProperties.setJMSReplyTo(((Queue)replyTo).getQueueName());
-            } else if (replyTo instanceof Topic) {
-                messageProperties.setJMSReplyTo(((Topic)replyTo).getTopicName());
-            }
+        String responseCode = (String)messageHeaders.getProperty(org.apache.cxf.message.Message.RESPONSE_CODE);
+        if (responseCode != null) {
+            inMessage.put(org.apache.cxf.message.Message.RESPONSE_CODE, Integer.valueOf(responseCode));
         }
-
         Map<String, List<String>> protHeaders = new TreeMap<String, List<String>>();
-        List<JMSPropertyType> props = messageProperties.getProperty();
-        Enumeration<String> enm = CastUtils.cast(message.getPropertyNames());
-        while (enm.hasMoreElements()) {
-            String name = enm.nextElement();
-            String val = message.getStringProperty(name);
-            props.add(new JMSPropertyType(name, val));
-
+        for (String name : messageHeaders.getPropertyKeys()) {
+            String val = (String)messageHeaders.getProperty(name);
             protHeaders.put(name, Collections.singletonList(val));
-            if (name.equals(org.apache.cxf.message.Message.CONTENT_TYPE)
-                || name.equals(JMSConstants.JMS_CONTENT_TYPE) && val != null) {
-                inMessage.put(org.apache.cxf.message.Message.CONTENT_TYPE, val);
-                // set the message encoding
-                inMessage.put(org.apache.cxf.message.Message.ENCODING, getEncoding(val));
-            }
-            if (name.equals(org.apache.cxf.message.Message.RESPONSE_CODE)) {
-                inMessage.put(org.apache.cxf.message.Message.RESPONSE_CODE, Integer.valueOf(val));
-            }
-        }
-        inMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, protHeaders);
-
-        populateIncomingMessageProperties(message, inMessage, messageProperties);
-    }
-
-    /**
-     * @param jmsMessage
-     * @param inMessage
-     * @param messagePropertiesType
-     * @throws UnsupportedEncodingException
-     * @throws JMSException
-     */
-    private static void populateIncomingMessageProperties(Message jmsMessage,
-                                                          org.apache.cxf.message.Message inMessage,
-                                                          JMSMessageHeadersType messageProperties)
-        throws UnsupportedEncodingException, JMSException {
-        if (jmsMessage.propertyExists(JMSSpecConstants.TARGETSERVICE_FIELD)) {
-            messageProperties.setSOAPJMSTargetService(jmsMessage
-                .getStringProperty(JMSSpecConstants.TARGETSERVICE_FIELD));
-        }
-        if (jmsMessage.propertyExists(JMSSpecConstants.BINDINGVERSION_FIELD)) {
-            messageProperties.setSOAPJMSBindingVersion(jmsMessage
-                .getStringProperty(JMSSpecConstants.BINDINGVERSION_FIELD));
-        }
-        if (jmsMessage.propertyExists(JMSSpecConstants.CONTENTTYPE_FIELD)) {
-            messageProperties.setSOAPJMSContentType(jmsMessage
-                .getStringProperty(JMSSpecConstants.CONTENTTYPE_FIELD));
-        }
-        if (jmsMessage.propertyExists(JMSSpecConstants.CONTENTENCODING_FIELD)) {
-            messageProperties.setSOAPJMSContentEncoding(jmsMessage
-                .getStringProperty(JMSSpecConstants.CONTENTENCODING_FIELD));
-        }
-        if (jmsMessage.propertyExists(JMSSpecConstants.SOAPACTION_FIELD)) {
-            messageProperties.setSOAPJMSSOAPAction(jmsMessage
-                .getStringProperty(JMSSpecConstants.SOAPACTION_FIELD));
-        }
-        if (jmsMessage.propertyExists(JMSSpecConstants.ISFAULT_FIELD)) {
-            messageProperties
-                .setSOAPJMSIsFault(jmsMessage.getBooleanProperty(JMSSpecConstants.ISFAULT_FIELD));
         }
-        if (jmsMessage.propertyExists(JMSSpecConstants.REQUESTURI_FIELD)) {
-            messageProperties.setSOAPJMSRequestURI(jmsMessage
-                .getStringProperty(JMSSpecConstants.REQUESTURI_FIELD));
-
-            Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>)inMessage
-                .get(org.apache.cxf.message.Message.PROTOCOL_HEADERS));
-            if (headers == null) {
-                headers = new TreeMap<String, List<String>>();
-                inMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, headers);
-            }
+        String requestURI = messageHeaders.getSOAPJMSRequestURI();
+        if (requestURI != null) {
             try {
-                String requestURI = jmsMessage.getStringProperty(JMSSpecConstants.REQUESTURI_FIELD);
                 JMSEndpoint endpoint = new JMSEndpoint(requestURI);
                 if (endpoint.getTargetService() != null) {
-                    headers.put(JMSSpecConstants.TARGET_SERVICE_IN_REQUESTURI,
-                                Collections.singletonList("true"));
+                    protHeaders.put(JMSConstants.TARGET_SERVICE_IN_REQUESTURI,
+                                    Collections.singletonList("true"));
                 }
                 if (requestURI != null) {
                     inMessage.put(org.apache.cxf.message.Message.REQUEST_URI, requestURI);
                 }
             } catch (Exception e) {
-                headers.put(JMSSpecConstants.MALFORMED_REQUESTURI, Collections.singletonList("true"));
+                protHeaders.put(JMSConstants.MALFORMED_REQUESTURI, Collections.singletonList("true"));
             }
         }
-
-        if (messageProperties.isSetSOAPJMSContentType()) {
-            String contentType = messageProperties.getSOAPJMSContentType();
-            inMessage.put(org.apache.cxf.message.Message.CONTENT_TYPE, contentType);
-            // set the message encoding
-            inMessage.put(org.apache.cxf.message.Message.ENCODING, getEncoding(contentType));
-        }
-
+        inMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, protHeaders);
     }
 
+
     static String getEncoding(String ct) throws UnsupportedEncodingException {
         String contentType = ct.toLowerCase();
         String enc = null;
@@ -292,115 +201,82 @@ final class JMSMessageUtils {
         throws JMSException {
 
         Message jmsMessage = JMSUtil.createAndSetPayload(payload, session, messageType);
-        JMSMessageHeadersType messageProperties = getOrCreateHeader(outMessage, headerType);
-        JMSMessageUtils.prepareJMSMessageHeaderProperties(messageProperties, outMessage, jmsConfig);
-        JMSMessageUtils.prepareJMSMessageProperties(messageProperties, outMessage,
-                                                    jmsConfig.getTargetService(), jmsConfig.getRequestURI());
-        messageProperties.writeTo(jmsMessage);
-        jmsMessage.setJMSCorrelationID(correlationId);
-        return jmsMessage;
-    }
-
-    private static JMSMessageHeadersType getOrCreateHeader(org.apache.cxf.message.Message message,
-                                                           String headerName) {
-        JMSMessageHeadersType messageProperties = (JMSMessageHeadersType)message
-            .get(headerName);
-        if (messageProperties == null) {
-            messageProperties = new JMSMessageHeadersType();
-            message.put(headerName, messageProperties);
+        JMSMessageHeadersType messageHeaders = getOrCreateHeader(outMessage, headerType);
+        if (!messageHeaders.isSetJMSDeliveryMode()) {
+            messageHeaders.setJMSDeliveryMode(jmsConfig.getDeliveryMode());
         }
-        return messageProperties;
-    }
-
-    /**
-     * @param messageProperteis
-     * @param outMessage
-     * @param jmsConfig
-     */
-    private static void prepareJMSMessageHeaderProperties(
-                                                          JMSMessageHeadersType messageProperteis,
-                                                          org.apache.cxf.message.Message outMessage,
-                                                          JMSConfiguration jmsConfig) {
-        if (!messageProperteis.isSetJMSDeliveryMode()) {
-            messageProperteis.setJMSDeliveryMode(jmsConfig.getDeliveryMode());
-        }
-        if (!messageProperteis.isSetTimeToLive()) {
-            messageProperteis.setTimeToLive(jmsConfig.getTimeToLive());
+        if (!messageHeaders.isSetTimeToLive()) {
+            messageHeaders.setTimeToLive(jmsConfig.getTimeToLive());
         }
-        if (!messageProperteis.isSetJMSPriority()) {
-            messageProperteis.setJMSPriority(jmsConfig.getPriority());
+        if (!messageHeaders.isSetJMSPriority()) {
+            messageHeaders.setJMSPriority(jmsConfig.getPriority());
         }
-    }
-
-    /**
-     * @param messageProperties
-     * @param outMessage
-     * @param jmsConfig
-     * @param targetService TODO
-     * @param requestURI TODO
-     */
-    private static void prepareJMSMessageProperties(JMSMessageHeadersType messageProperties,
-                                                    org.apache.cxf.message.Message outMessage,
-                                                    String targetService,
-                                                    String requestURI) {
-
         // Retrieve or create protocol headers
         Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>)outMessage
             .get(org.apache.cxf.message.Message.PROTOCOL_HEADERS));
-
+        
         boolean isSoapMessage =
             !MessageUtils.isTrue(outMessage.getExchange().get(org.apache.cxf.message.Message.REST_MESSAGE));
-
+        
         if (isSoapMessage) {
-            if (!messageProperties.isSetSOAPJMSTargetService()) {
-                messageProperties.setSOAPJMSTargetService(targetService);
+            if (!messageHeaders.isSetSOAPJMSTargetService()) {
+                messageHeaders.setSOAPJMSTargetService(jmsConfig.getTargetService());
             }
-            if (!messageProperties.isSetSOAPJMSBindingVersion()) {
-                messageProperties.setSOAPJMSBindingVersion("1.0");
+            if (!messageHeaders.isSetSOAPJMSBindingVersion()) {
+                messageHeaders.setSOAPJMSBindingVersion("1.0");
             }
-            messageProperties.setSOAPJMSContentType(getContentType(outMessage));
-            if (getContentEncoding(outMessage) != null) {
-                messageProperties.setSOAPJMSContentEncoding(getContentEncoding(outMessage));
+            messageHeaders.setSOAPJMSContentType(JMSMessageUtils.getContentType(outMessage));
+            if (JMSMessageUtils.getContentEncoding(outMessage) != null) {
+                messageHeaders.setSOAPJMSContentEncoding(JMSMessageUtils.getContentEncoding(outMessage));
             }
-            String soapAction = getSoapAction(messageProperties, outMessage, headers);
+            String soapAction = JMSMessageUtils.getSoapAction(messageHeaders, outMessage, headers);
             if (soapAction != null) {
-                messageProperties.setSOAPJMSSOAPAction(soapAction);
+                messageHeaders.setSOAPJMSSOAPAction(soapAction);
             }
-            if (!messageProperties.isSetSOAPJMSIsFault()) {
+            if (!messageHeaders.isSetSOAPJMSIsFault()) {
                 boolean isFault = outMessage.getContent(Exception.class) != null;
-                messageProperties.setSOAPJMSIsFault(isFault);
+                messageHeaders.setSOAPJMSIsFault(isFault);
             }
-            if (!messageProperties.isSetSOAPJMSRequestURI()) {
-                messageProperties.setSOAPJMSRequestURI(requestURI);
+            if (!messageHeaders.isSetSOAPJMSRequestURI()) {
+                messageHeaders.setSOAPJMSRequestURI(jmsConfig.getRequestURI());
             }
         } else {
             if (MessageUtils.isRequestor(outMessage)) {
-                addJMSPropertiesFromMessage(messageProperties,
+                addJMSPropertiesFromMessage(messageHeaders,
                                             outMessage,
                                             org.apache.cxf.message.Message.HTTP_REQUEST_METHOD,
                                             org.apache.cxf.message.Message.REQUEST_URI,
                                             org.apache.cxf.message.Message.ACCEPT_CONTENT_TYPE);
             } else {
-                addJMSPropertyFromMessage(messageProperties,
+                addJMSPropertyFromMessage(messageHeaders,
                                           outMessage,
                                           org.apache.cxf.message.Message.RESPONSE_CODE);
             }
-            addJMSPropertyFromMessage(messageProperties,
+            addJMSPropertyFromMessage(messageHeaders,
                                       outMessage,
                                       org.apache.cxf.message.Message.CONTENT_TYPE);
         }
         if (headers != null) {
             for (Map.Entry<String, List<String>> ent : headers.entrySet()) {
-                JMSPropertyType prop = asJmsProperty(ent.getKey(), ent.getValue());
-                messageProperties.getProperty().add(prop);
+                messageHeaders.putProperty(ent.getKey(), JMSMessageUtils.join(ent.getValue(), ','));
             }
         }
+        messageHeaders.writeTo(jmsMessage);
+        jmsMessage.setJMSCorrelationID(correlationId);
+        return jmsMessage;
     }
 
-    private static JMSPropertyType asJmsProperty(String key, List<String> value) {
-        return new JMSPropertyType(key, join(value, ','));
+    private static JMSMessageHeadersType getOrCreateHeader(org.apache.cxf.message.Message message,
+                                                           String headerName) {
+        JMSMessageHeadersType messageProperties = (JMSMessageHeadersType)message
+            .get(headerName);
+        if (messageProperties == null) {
+            messageProperties = new JMSMessageHeadersType();
+            message.put(headerName, messageProperties);
+        }
+        return messageProperties;
     }
-    
+
     private static String join(List<String> valueList, char seperator) {
         StringBuilder b = new StringBuilder();
         for (String s : valueList) {
@@ -448,8 +324,7 @@ final class JMSMessageUtils {
                                                   String key) {
         Object value = message.get(key);
         if (value != null) {
-            JMSPropertyType prop = new JMSPropertyType(key, value.toString());
-            messageProperties.getProperty().add(prop);
+            messageProperties.putProperty(key, value.toString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/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 c509a05..a66c2d8 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,22 +18,14 @@
  */
 package org.apache.cxf.transport.jms;
 
-import javax.jms.JMSException;
-import javax.jms.Message;
-
+@Deprecated
 public class JMSPropertyType {
     private String name;
     private Object value;
     
-    @Deprecated
     public JMSPropertyType() {
     }
     
-    public JMSPropertyType(String name, Object value) {
-        this.name = name;
-        this.value = value;
-    }
-
     public String getName() {
         return name;
     }
@@ -42,41 +34,13 @@ public class JMSPropertyType {
         return value;
     }
     
-    @Deprecated
     public void setName(String name) {
         this.name = name;
     }
 
-    @Deprecated
     public void setValue(Object value) {
         this.value = value;
     }
 
-    public void writeTo(Message jmsMessage) throws JMSException {
-        if (value == null) {
-            jmsMessage.setStringProperty(name, null);
-            return;
-        }
-        Class<?> cls = value.getClass();
-        if (cls == String.class) {
-            jmsMessage.setStringProperty(name, (String)value);
-        } else if (cls == Integer.TYPE || cls == Integer.class) {
-            jmsMessage.setIntProperty(name, (Integer)value);
-        } else if (cls == Double.TYPE || cls == Double.class) {
-            jmsMessage.setDoubleProperty(name, (Double)value);
-        } else if (cls == Float.TYPE || cls == Float.class) {
-            jmsMessage.setFloatProperty(name, (Float)value);
-        } else if (cls == Long.TYPE || cls == Long.class) {
-            jmsMessage.setLongProperty(name, (Long)value);
-        } else if (cls == Boolean.TYPE || cls == Boolean.class) {
-            jmsMessage.setBooleanProperty(name, (Boolean)value);
-        } else if (cls == Short.TYPE || cls == Short.class) {
-            jmsMessage.setShortProperty(name, (Short)value);
-        } else if (cls == Byte.TYPE || cls == Byte.class) {
-            jmsMessage.setShortProperty(name, (Byte)value);
-        } else {
-            jmsMessage.setObjectProperty(name, value);
-        }
-    }
 }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java
index 5d3ebff..0218ed3 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java
@@ -27,6 +27,7 @@ public final class JMSSpecConstants {
 
     public static final String SOAP_JMS_SPECIFICATION_TRANSPORTID
         = "http://www.w3.org/2010/soapjms/";
+    @Deprecated
     public static final String SOAP_JMS_NAMESPACE = SOAP_JMS_SPECIFICATION_TRANSPORTID;
 
     public static final String SOAP_JMS_PREFIX = "SOAPJMS_";
@@ -68,10 +69,6 @@ public final class JMSSpecConstants {
     public static final String CONTENTENCODING_FIELD = SOAP_JMS_PREFIX + CONTENTENCODING_PARAMETER_NAME;
     public static final String ISFAULT_FIELD = SOAP_JMS_PREFIX + ISFAULT_PARAMETER_NAME;
 
-    public static final String JMS_MESSAGE_TYPE = "JMSMessageType";
-    public static final String TARGET_SERVICE_IN_REQUESTURI = "target.service.inrequesturi";
-    public static final String MALFORMED_REQUESTURI = "malformed.requesturi";
-
     private JMSSpecConstants() {
     }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
index 1b0b305..088a13c 100644
--- a/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
+++ b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
@@ -261,7 +261,7 @@ public class JMSDestinationTest extends AbstractJMSTester {
 
         JMSMessageHeadersType headers = (JMSMessageHeadersType)outMessage
             .get(JMSConstants.JMS_CLIENT_REQUEST_HEADERS);
-        headers.getProperty().add(new JMSPropertyType(customPropertyName, customPropertyName));
+        headers.putProperty(customPropertyName, customPropertyName);
 
         final JMSDestination destination = setupJMSDestination(ei);
 
@@ -300,7 +300,6 @@ public class JMSDestinationTest extends AbstractJMSTester {
         JMSMessageHeadersType inHeader = (JMSMessageHeadersType)inMessage
             .get(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS);
         assertNotNull("The inHeader should not be null", inHeader);
-        assertNotNull("The property should not be null " + inHeader.getProperty());
         // TODO we need to check the SOAP JMS transport properties here
 
         // wait for a while for the jms session recycling

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java
index 44b56d8..a83526a 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java
@@ -60,7 +60,6 @@ import org.apache.cxf.transport.jms.JMSConfigFeature;
 import org.apache.cxf.transport.jms.JMSConfiguration;
 import org.apache.cxf.transport.jms.JMSConstants;
 import org.apache.cxf.transport.jms.JMSMessageHeadersType;
-import org.apache.cxf.transport.jms.JMSPropertyType;
 import org.apache.cxf.transport.jms.util.TestReceiver;
 import org.apache.hello_world_doc_lit.Greeter;
 import org.apache.hello_world_doc_lit.PingMeFault;
@@ -558,8 +557,8 @@ public class JMSClientServerTest extends AbstractBusClientServerTestBase {
         JMSMessageHeadersType requestHeader = new JMSMessageHeadersType();
         requestHeader.setJMSCorrelationID("JMS_SAMPLE_CORRELATION_ID");
         requestHeader.setJMSExpiration(3600000L);
-        requestHeader.getProperty().add(new JMSPropertyType(testReturnPropertyName, "mustReturn"));
-        requestHeader.getProperty().add(new JMSPropertyType(testIgnoredPropertyName, "mustNotReturn"));
+        requestHeader.putProperty(testReturnPropertyName, "mustReturn");
+        requestHeader.putProperty(testIgnoredPropertyName, "mustNotReturn");
         requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader);
 
         String greeting = greeter.greetMe("Milestone-");
@@ -577,14 +576,10 @@ public class JMSClientServerTest extends AbstractBusClientServerTestBase {
         assertTrue("CORRELATION ID should match :",
                    "JMS_SAMPLE_CORRELATION_ID".equals(responseHdr.getJMSCorrelationID()));
         assertTrue("response Headers must conain the app property set in request context.",
-                   responseHdr.getProperty() != null);
+                   responseHdr.getPropertyKeys().size() > 0);
 
-        boolean found = false;
-        for (JMSPropertyType p : responseHdr.getProperty()) {
-            if (testReturnPropertyName.equals(p.getName())) {
-                found = true;
-            }
-        }
+        
+        boolean found = responseHdr.getPropertyKeys().contains(testReturnPropertyName);
         assertTrue("response Headers must match the app property set in request context.", found);
         ((Closeable)greeter).close();
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
index 79499e1..953c789 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
@@ -35,7 +35,6 @@ import org.apache.cxf.hello_world_jms.types.NoSuchCodeLit;
 import org.apache.cxf.hello_world_jms.types.TestRpcLitFaultResponse;
 import org.apache.cxf.transport.jms.JMSConstants;
 import org.apache.cxf.transport.jms.JMSMessageHeadersType;
-import org.apache.cxf.transport.jms.JMSPropertyType;
 
 public class TwoWayJMSImplBase implements HelloWorldPortType {
 
@@ -54,7 +53,7 @@ public class TwoWayJMSImplBase implements HelloWorldPortType {
         MessageContext mc = wsContext.getMessageContext();
         JMSMessageHeadersType responseHeaders =
             (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
-        responseHeaders.getProperty().add(new JMSPropertyType("Test_Prop", "some return value "  + me));
+        responseHeaders.putProperty("Test_Prop", "some return value "  + me);
         return "Hello " + me;
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/0a4d2676/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
index 511ea8b..d143a4e 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
@@ -35,7 +35,6 @@ import org.apache.cxf.hello_world_jms.types.NoSuchCodeLit;
 import org.apache.cxf.hello_world_jms.types.TestRpcLitFaultResponse;
 import org.apache.cxf.transport.jms.JMSConstants;
 import org.apache.cxf.transport.jms.JMSMessageHeadersType;
-import org.apache.cxf.transport.jms.JMSPropertyType;
 
 public class TwoWayJMSImplBase implements HelloWorldPortType {
 
@@ -52,16 +51,16 @@ public class TwoWayJMSImplBase implements HelloWorldPortType {
             me = me.substring("PauseForTwoSecs".length()).trim();
         }
 
-        addToReply(new JMSPropertyType("Test_Prop", "some return value "  + me));
+        addToReply("Test_Prop", "some return value "  + me);
 
         return "Hello " + me;
     }
 
-    private void addToReply(JMSPropertyType prop) {
+    private void addToReply(String key, String value) {
         MessageContext mc = wsContext.getMessageContext();
         JMSMessageHeadersType responseHeaders =
             (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
-        responseHeaders.getProperty().add(prop);
+        responseHeaders.putProperty(key, value);
     }
 
     public String sayHi() {