You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/08/27 12:36:39 UTC

svn commit: r1620858 - in /qpid/trunk/qpid/java/broker-plugins: amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/ amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/

Author: rgodfrey
Date: Wed Aug 27 10:36:38 2014
New Revision: 1620858

URL: http://svn.apache.org/r1620858
Log:
QPID-6047 : [Java Broker] Improve Message conversion between 1.0 and 0.x protocols - add mapping from application property qpid.subject to the 1.0 subject property

Modified:
    qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java
    qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
    qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java
    qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java?rev=1620858&r1=1620857&r2=1620858&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_0_10_to_1_0.java Wed Aug 27 10:36:38 2014
@@ -22,7 +22,10 @@
 package org.apache.qpid.server.protocol.converter.v0_10_v1_0;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
+
 import org.apache.qpid.amqp_1_0.messaging.SectionEncoder;
 import org.apache.qpid.amqp_1_0.type.Binary;
 import org.apache.qpid.amqp_1_0.type.Section;
@@ -126,9 +129,18 @@ public class MessageConverter_0_10_to_1_
 
             sections.add(props);
 
-            if(msgProps.getApplicationHeaders() != null)
+            Map<String, Object> applicationProperties = msgProps.getApplicationHeaders();
+
+            if(applicationProperties != null)
             {
-                sections.add(new ApplicationProperties(msgProps.getApplicationHeaders()));
+                if(applicationProperties.containsKey("qpid.subject"))
+                {
+                    props.setSubject(String.valueOf(applicationProperties.get("qpid.subject")));
+                    applicationProperties = new LinkedHashMap<>(applicationProperties);
+                    applicationProperties.remove("qpid.subject");
+                }
+                sections.add(new ApplicationProperties(applicationProperties));
+
             }
         }
         return new MessageMetaData_1_0(sections, sectionEncoder);

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java?rev=1620858&r1=1620857&r2=1620858&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java Wed Aug 27 10:36:38 2014
@@ -21,14 +21,15 @@
 package org.apache.qpid.server.protocol.converter.v0_10_v1_0;
 
 import java.nio.ByteBuffer;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.plugin.MessageConverter;
 import org.apache.qpid.server.plugin.PluggableService;
 import org.apache.qpid.server.protocol.v0_10.MessageMetaData_0_10;
 import org.apache.qpid.server.protocol.v0_10.MessageTransferMessage;
 import org.apache.qpid.server.protocol.v1_0.MessageConverter_from_1_0;
+import org.apache.qpid.server.protocol.v1_0.MessageMetaData_1_0;
 import org.apache.qpid.server.protocol.v1_0.Message_1_0;
 import org.apache.qpid.server.store.StoredMessage;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
@@ -138,7 +139,7 @@ public class MessageConverter_1_0_to_v0_
         DeliveryProperties deliveryProps = new DeliveryProperties();
         MessageProperties messageProps = new MessageProperties();
 
-        final AMQMessageHeader origHeader = serverMsg.getMessageHeader();
+        final MessageMetaData_1_0.MessageHeader_1_0  origHeader = serverMsg.getMessageHeader();
 
 
         deliveryProps.setExpiration(serverMsg.getExpiration());
@@ -177,8 +178,15 @@ public class MessageConverter_1_0_to_v0_
             messageProps.setReplyTo(replyTo);
         }
 
-        messageProps.setApplicationHeaders((Map<String, Object>) MessageConverter_from_1_0.convertValue(serverMsg.getMessageHeader()
-                                                                                                                .getHeadersAsMap()));
+        Map<String, Object> appHeaders =
+                (Map<String, Object>) MessageConverter_from_1_0.convertValue(serverMsg.getMessageHeader()
+                                                                                     .getHeadersAsMap());
+        if(origHeader.getSubject() != null && !appHeaders.containsKey("qpid.subject"))
+        {
+            appHeaders = new LinkedHashMap<>(appHeaders);
+            appHeaders.put("qpid.subject", origHeader.getSubject());
+        }
+        messageProps.setApplicationHeaders(appHeaders);
 
         Header header = new Header(deliveryProps, messageProps, null);
         return new MessageMetaData_0_10(header, size, serverMsg.getArrivalTime());

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java?rev=1620858&r1=1620857&r2=1620858&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_0_8_to_1_0.java Wed Aug 27 10:36:38 2014
@@ -22,7 +22,10 @@ package org.apache.qpid.server.protocol.
 
 import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
+
 import org.apache.qpid.amqp_1_0.messaging.SectionEncoder;
 import org.apache.qpid.amqp_1_0.type.Binary;
 import org.apache.qpid.amqp_1_0.type.Section;
@@ -152,7 +155,15 @@ public class MessageConverter_0_8_to_1_0
 
         sections.add(props);
 
-        sections.add(new ApplicationProperties(FieldTable.convertToMap(contentHeader.getHeaders())));
+        Map<String, Object> applicationProperties = FieldTable.convertToMap(contentHeader.getHeaders());
+
+        if(applicationProperties.containsKey("qpid.subject"))
+        {
+            props.setSubject(String.valueOf(applicationProperties.get("qpid.subject")));
+            applicationProperties = new LinkedHashMap<>(applicationProperties);
+            applicationProperties.remove("qpid.subject");
+        }
+        sections.add(new ApplicationProperties(applicationProperties));
 
         return new MessageMetaData_1_0(sections, sectionEncoder);
     }

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java?rev=1620858&r1=1620857&r2=1620858&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java Wed Aug 27 10:36:38 2014
@@ -136,6 +136,8 @@ public class MessageConverter_1_0_to_v0_
     private MessageMetaData convertMetaData(final Message_1_0 serverMsg, final String bodyMimeType, final int size)
     {
 
+        final MessageMetaData_1_0.MessageHeader_1_0 header = serverMsg.getMessageHeader();
+
         MessagePublishInfo publishInfo = new MessagePublishInfo()
                                             {
                                                 @Override
@@ -165,8 +167,6 @@ public class MessageConverter_1_0_to_v0_
                                                 @Override
                                                 public AMQShortString getRoutingKey()
                                                 {
-                                                    MessageMetaData_1_0.MessageHeader_1_0 header =
-                                                            serverMsg.getMessageHeader();
                                                     String key = header.getTo();
                                                     if(key == null)
                                                     {
@@ -192,6 +192,11 @@ public class MessageConverter_1_0_to_v0_
 
         Map<String,Object> headerProps = new LinkedHashMap<String, Object>();
 
+        if(header.getSubject() != null)
+        {
+            headerProps.put("qpid.subject", header.getSubject());
+        }
+
         for(String headerName : serverMsg.getMessageHeader().getHeaderNames())
         {
             headerProps.put(headerName, MessageConverter_from_1_0.convertValue(serverMsg.getMessageHeader().getHeader(headerName)));



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org