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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to