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 2016/10/25 15:10:10 UTC

svn commit: r1766544 - in /qpid/java/trunk/broker-plugins: amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ amqp-1-0-protocol/src/main/java/org/apache/qpid/ser...

Author: rgodfrey
Date: Tue Oct 25 15:10:09 2016
New Revision: 1766544

URL: http://svn.apache.org/viewvc?rev=1766544&view=rev
Log:
QPID-7471 : conversion from InternalMessage should respect MIME-type where appropriate

Modified:
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java?rev=1766544&r1=1766543&r2=1766544&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java Tue Oct 25 15:10:09 2016
@@ -61,7 +61,8 @@ public class MessageConverter_Internal_t
         final byte[] messageContent = MessageConverter_v0_10.convertToBody(serverMsg.getMessageBody());
         final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(serverMsg,
                                                                           MessageConverter_v0_10.getBodyMimeType(
-                                                                                  serverMsg.getMessageBody()),
+                                                                                  serverMsg.getMessageBody(),
+                                                                                  serverMsg.getMessageHeader()),
                                                                           messageContent.length);
 
         return new StoredMessage<MessageMetaData_0_10>()

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java?rev=1766544&r1=1766543&r2=1766544&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java Tue Oct 25 15:10:09 2016
@@ -31,6 +31,7 @@ import java.util.Map;
 
 import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.message.internal.InternalMessageHeader;
 import org.apache.qpid.server.model.NamedAddressSpace;
 import org.apache.qpid.server.plugin.MessageConverter;
 import org.apache.qpid.server.plugin.PluggableService;
@@ -182,15 +183,31 @@ public class MessageConverter_v0_10 impl
         }
     }
 
-    public static String getBodyMimeType(Object object)
+    public static String getBodyMimeType(Object object, final InternalMessageHeader header)
     {
         if(object instanceof String)
         {
-            return "text/plain";
+            String mimeType;
+            if(header == null || (mimeType = header.getMimeType()) == null || !mimeType.trim().startsWith("text/"))
+            {
+                return "text/plain";
+            }
+            else
+            {
+                return mimeType;
+            }
         }
         else if(object instanceof byte[])
         {
-            return "application/octet-stream";
+            String mimeType;
+            if(header == null || (mimeType = header.getMimeType()) == null || "".equals(mimeType.trim()))
+            {
+                return "application/octet-stream";
+            }
+            else
+            {
+                return mimeType;
+            }
         }
         else if(object instanceof Map)
         {

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java?rev=1766544&r1=1766543&r2=1766544&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java Tue Oct 25 15:10:09 2016
@@ -38,6 +38,7 @@ import org.apache.qpid.framing.ContentHe
 import org.apache.qpid.framing.FieldTable;
 import org.apache.qpid.framing.MessagePublishInfo;
 import org.apache.qpid.server.message.internal.InternalMessage;
+import org.apache.qpid.server.message.internal.InternalMessageHeader;
 import org.apache.qpid.server.model.NamedAddressSpace;
 import org.apache.qpid.server.plugin.MessageConverter;
 import org.apache.qpid.server.plugin.PluggableService;
@@ -73,7 +74,7 @@ public class MessageConverter_Internal_t
     {
         final byte[] messageContent = convertToBody(serverMsg.getMessageBody());
         final MessageMetaData messageMetaData_0_8 = convertMetaData(serverMsg,
-                                                                    getBodyMimeType(serverMsg.getMessageBody()),
+                                                                    getBodyMimeType(serverMsg.getMessageBody(), serverMsg.getMessageHeader()),
                                                                     messageContent.length);
 
         return new StoredMessage<MessageMetaData>()
@@ -207,15 +208,31 @@ public class MessageConverter_Internal_t
         }
     }
 
-    public static String getBodyMimeType(Object object)
+    public static String getBodyMimeType(Object object, final InternalMessageHeader header)
     {
         if(object instanceof String)
         {
-            return "text/plain";
+            String mimeType;
+            if(header == null || (mimeType = header.getMimeType()) == null || !mimeType.trim().startsWith("text/"))
+            {
+                return "text/plain";
+            }
+            else
+            {
+                return mimeType;
+            }
         }
         else if(object instanceof byte[])
         {
-            return "application/octet-stream";
+            String mimeType;
+            if(header == null || (mimeType = header.getMimeType()) == null || "".equals(mimeType.trim()))
+            {
+                return "application/octet-stream";
+            }
+            else
+            {
+                return mimeType;
+            }
         }
         else if(object instanceof Map)
         {

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java?rev=1766544&r1=1766543&r2=1766544&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_Internal_to_v1_0.java Tue Oct 25 15:10:09 2016
@@ -32,6 +32,7 @@ import java.util.Map;
 import org.apache.qpid.server.protocol.v1_0.messaging.SectionEncoder;
 import org.apache.qpid.server.protocol.v1_0.type.Binary;
 import org.apache.qpid.server.protocol.v1_0.type.Section;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedByte;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.AmqpValue;
@@ -75,6 +76,10 @@ public class MessageConverter_Internal_t
         properties.setCorrelationId(serverMessage.getMessageHeader().getCorrelationId());
         properties.setCreationTime(new Date(serverMessage.getMessageHeader().getTimestamp()));
         properties.setMessageId(serverMessage.getMessageHeader().getMessageId());
+        if(bodySection instanceof Data)
+        {
+            properties.setContentType(Symbol.valueOf(serverMessage.getMessageHeader().getMimeType()));
+        }
         final String userId = serverMessage.getMessageHeader().getUserId();
         if(userId != null)
         {
@@ -97,7 +102,7 @@ public class MessageConverter_Internal_t
 
     }
 
-    protected Section getBodySection(final InternalMessage serverMessage, final String mimeType)
+    protected Section getBodySection(final InternalMessage serverMessage)
     {
         return convertToBody(serverMessage.getMessageBody());
     }

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java?rev=1766544&r1=1766543&r2=1766544&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java Tue Oct 25 15:10:09 2016
@@ -259,7 +259,7 @@ public abstract class MessageConverter_t
         };
     }
 
-    private Section getBodySection(final M serverMessage)
+    protected Section getBodySection(final M serverMessage)
     {
         final String mimeType = serverMessage.getMessageHeader().getMimeType();
         byte[] data = new byte[(int) serverMessage.getSize()];



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