You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/12/10 19:35:08 UTC

svn commit: r1773536 - in /qpid/java/trunk: broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ systests/src/main/java/org/apache/qpid/test/utils/ systests/src/test/java/org/apache/qpid/systest/rest/ test-profiles/

Author: kwall
Date: Sat Dec 10 19:35:07 2016
New Revision: 1773536

URL: http://svn.apache.org/viewvc?rev=1773536&view=rev
Log:
QPID-7546: MessagesRestTest: Enable test for AMQP 1.0 profile

Wire up the userid and contentencoding header.

Modified:
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
    qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/MessagesRestTest.java
    qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_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/MessageMetaData_1_0.java?rev=1773536&r1=1773535&r2=1773536&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java Sat Dec 10 19:35:07 2016
@@ -20,6 +20,7 @@
 */
 package org.apache.qpid.server.protocol.v1_0;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
@@ -28,6 +29,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,6 +40,7 @@ import org.apache.qpid.server.plugin.Mes
 import org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoder;
 import org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl;
 import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException;
+import org.apache.qpid.server.protocol.v1_0.type.Binary;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.codec.AMQPDescribedTypeRegistry;
@@ -408,6 +411,8 @@ public class MessageMetaData_1_0 impleme
     public class MessageHeader_1_0 implements AMQMessageHeader
     {
 
+        private final AtomicReference<String> _decodedUserId = new AtomicReference<>();
+
         public String getCorrelationId()
         {
             if (_propertiesSection == null || _propertiesSection.getValue().getCorrelationId() == null)
@@ -452,7 +457,6 @@ public class MessageMetaData_1_0 impleme
 
         public String getMimeType()
         {
-
             if (_propertiesSection == null || _propertiesSection.getValue().getContentType() == null)
             {
                 return null;
@@ -465,7 +469,14 @@ public class MessageMetaData_1_0 impleme
 
         public String getEncoding()
         {
-            return null;  //TODO
+            if (_propertiesSection == null || _propertiesSection.getValue().getContentEncoding() == null)
+            {
+                return null;
+            }
+            else
+            {
+                return _propertiesSection.getValue().getContentEncoding().toString();
+            }
         }
 
         public byte getPriority()
@@ -555,8 +566,21 @@ public class MessageMetaData_1_0 impleme
 
         public String getUserId()
         {
-            // TODO
-            return null;
+            if (_propertiesSection == null || _propertiesSection.getValue().getUserId() == null)
+            {
+                return null;
+            }
+            else
+            {
+                if (_decodedUserId.get() == null)
+                {
+                    Binary encodededUserId = _propertiesSection.getValue().getUserId();
+                    // TODO the specification does not state the encoding of the binary.
+                    // Trying to convert to UTF-8 is guaranteed not to throw an exception.
+                    _decodedUserId.set(new String(encodededUserId.getArray(), StandardCharsets.UTF_8));
+                }
+                return _decodedUserId.get();
+            }
         }
 
         public Object getHeader(final String name)

Modified: qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1773536&r1=1773535&r2=1773536&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (original)
+++ qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java Sat Dec 10 19:35:07 2016
@@ -277,6 +277,7 @@ public class QpidBrokerTestCase extends
             actualOptions.put("amqp.vhost", vhost);
             actualOptions.put("jms.clientID", clientId);
             actualOptions.put("jms.forceSyncSend", "true");
+            actualOptions.put("jms.populateJMSXUserID", "true");
             actualOptions.putAll(options);
             if("failover".equals(factoryName))
             {

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/MessagesRestTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/MessagesRestTest.java?rev=1773536&r1=1773535&r2=1773536&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/MessagesRestTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/MessagesRestTest.java Sat Dec 10 19:35:07 2016
@@ -41,7 +41,6 @@ import javax.jms.Session;
 import javax.jms.StreamMessage;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.qpid.jms.ListMessage;
 import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.port.HttpPort;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
@@ -130,8 +129,10 @@ public class MessagesRestTest extends Qp
         _producer.send(textMessage);
         _session.commit();
 
-        // get message IDs
-        Long lastMessageId = getLastMessageIdAndVerifyMimeType(queueName, "text/plain");
+        final Map<String, Object> messageSummary = getLastMessage(queueName);
+        int lastMessageId = (int) messageSummary.get("id");
+        assertMessageAttributes(messageSummary);
+        assertEquals("Unexpected mimeType", isBroker10() ? null : "text/plain", messageSummary.get("mimeType"));
 
         Map<String, Object> message = getRestTestHelper().getJsonAsMap(String.format(GET_MESSAGE_INFO_BY_ID,
                                                                                      queueName,
@@ -147,7 +148,7 @@ public class MessagesRestTest extends Qp
                                                                  false,
                                                                  lastMessageId));
         assertTrue("Unexpected message for id " + lastMessageId + ":" + data.length,
-                   Arrays.equals(STRING_VALUE.getBytes(StandardCharsets.UTF_8), data));
+                   isBroker10() || Arrays.equals(STRING_VALUE.getBytes(StandardCharsets.UTF_8), data));
     }
 
     public void testGetMapMessageContentAsJson() throws Exception
@@ -159,7 +160,10 @@ public class MessagesRestTest extends Qp
         _producer.send(mapMessage);
         _session.commit();
 
-        Long lastMessageId = getLastMessageIdAndVerifyMimeType(queueName, "amqp/map");
+        final Map<String, Object> message = getLastMessage(queueName);
+        int lastMessageId = (int) message.get("id");
+        assertMessageAttributes(message);
+        assertEquals("Unexpected mimeType", isBroker10() ? null : "amqp/map", message.get("mimeType"));
 
         Map<String, Object> jsonMessageData = getRestTestHelper().getJsonAsMap(String.format(
                 GET_MESSAGE_CONTENT_BY_ID,
@@ -181,7 +185,10 @@ public class MessagesRestTest extends Qp
         _producer.send(streamMessage);
         _session.commit();
 
-        Long lastMessageId = getLastMessageIdAndVerifyMimeType(queueName, "jms/stream-message");
+        final Map<String, Object> message = getLastMessage(queueName);
+        int lastMessageId = (int) message.get("id");
+        assertMessageAttributes(message);
+        assertEquals("Unexpected mimeType", isBroker10() ? null : "jms/stream-message", message.get("mimeType"));
 
         List<Object> jsonMessageData = getRestTestHelper().getJsonAsSimpleList(String.format(
                 GET_MESSAGE_CONTENT_BY_ID,
@@ -203,7 +210,10 @@ public class MessagesRestTest extends Qp
         _producer.send(bytesMessage);
         _session.commit();
 
-        Long lastMessageId = getLastMessageIdAndVerifyMimeType(queueName, "application/octet-stream");
+        final Map<String, Object> message = getLastMessage(queueName);
+        int lastMessageId = (int) message.get("id");
+        assertMessageAttributes(message);
+        assertEquals("Unexpected mimeType", "application/octet-stream", message.get("mimeType"));
 
         List<Object> jsonMessageData = getRestTestHelper().getJsonAsSimpleList(String.format(
                 GET_MESSAGE_CONTENT_BY_ID,
@@ -220,13 +230,16 @@ public class MessagesRestTest extends Qp
     public void testGetListMessageContentAsJson() throws Exception
     {
         String queueName = getTestQueueName();
-        ListMessage listMessage = ((org.apache.qpid.jms.Session) _session).createListMessage();
-        listMessage.add(999999);
-        listMessage.add("My String");
+        StreamMessage listMessage = _session.createStreamMessage();
+        listMessage.writeInt(999999);
+        listMessage.writeString("My String");
         _producer.send(listMessage);
         _session.commit();
 
-        Long lastMessageId = getLastMessageIdAndVerifyMimeType(queueName, "amqp/list");
+        final Map<String, Object> message = getLastMessage(queueName);
+        int lastMessageId = (int) message.get("id");
+        assertMessageAttributes(message);
+        assertEquals("Unexpected mimeType", isBroker10() ? null : "jms/stream-message", message.get("mimeType"));
 
         List<Object> jsonMessageData = getRestTestHelper().getJsonAsSimpleList(String.format(
                 GET_MESSAGE_CONTENT_BY_ID,
@@ -349,8 +362,6 @@ public class MessagesRestTest extends Qp
         String queueName2 = queueName + "_2";
         createTestQueue(_session, queueName2);
         _session.commit();
-        // get message IDs
-        List<Long> ids = getMesssageIds(queueName);
 
         // move messages
 
@@ -517,9 +528,6 @@ public class MessagesRestTest extends Qp
     {
         String queueName = getTestQueueName();
 
-        // get message IDs
-        List<Long> ids = getMesssageIds(queueName);
-
         // delete half of the messages
         int deleteNumber = MESSAGE_NUMBER / 2;
 
@@ -571,7 +579,8 @@ public class MessagesRestTest extends Qp
     {
         assertMessageAttributes(message);
 
-        assertEquals("Unexpected message attribute size", position < 10 ? 6 : 7, message.get("size"));
+        final int size = (int) message.get("size");
+        assertTrue("Unexpected message attribute size", size > 0);
         boolean even = position % 2 == 0;
         assertMessageAttributeValues(message, even);
     }
@@ -591,7 +600,10 @@ public class MessagesRestTest extends Qp
             assertEquals("Unexpected message attribute priority", 5, message.get("priority"));
             assertEquals("Unexpected message attribute persistent", Boolean.FALSE, message.get("persistent"));
         }
-        assertEquals("Unexpected message attribute mimeType", "text/plain", message.get("mimeType"));
+        if (!isBroker10())
+        {
+            assertEquals("Unexpected message attribute mimeType", "text/plain", message.get("mimeType"));
+        }
         assertEquals("Unexpected message attribute userId", "guest", message.get("userId"));
         assertEquals("Unexpected message attribute deliveryCount", 0, message.get("deliveryCount"));
         assertEquals("Unexpected message attribute state", "Available", message.get("state"));
@@ -608,14 +620,16 @@ public class MessagesRestTest extends Qp
         assertTrue("Message arrivalTime cannot be null",
                    ((Number) message.get("arrivalTime")).longValue() > _startTime);
         assertNotNull("Message messageId cannot be null", message.get("messageId"));
-        assertNotNull("Unexpected message attribute mimeType", message.get("mimeType"));
+        if (!isBroker10())
+        {
+            assertNotNull("Unexpected message attribute mimeType", message.get("mimeType"));
+        }
         assertNotNull("Unexpected message attribute userId", message.get("userId"));
         assertNotNull("Message priority cannot be null", message.get("priority"));
         assertNotNull("Message persistent cannot be null", message.get("persistent"));
     }
 
-
-    private Long getLastMessageIdAndVerifyMimeType(final String queueName, final String mimeType) throws IOException
+    private Map<String, Object> getLastMessage(final String queueName) throws Exception
     {
         List<Long> ids = getMesssageIds(queueName);
         int lastMessageIndex = ids.size() - 1;
@@ -626,10 +640,7 @@ public class MessagesRestTest extends Qp
                                                                                + "&last="
                                                                                + lastMessageIndex);
         assertEquals("Unexpected message number returned", 1, messages.size());
-        Map<String, Object> message = messages.get(0);
-        assertEquals("Unexpected message attribute mimeType", mimeType, message.get("mimeType"));
-        assertMessageAttributes(message);
-
-        return ids.get(lastMessageIndex);
+        return messages.get(0);
     }
+
 }

Modified: qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes
URL: http://svn.apache.org/viewvc/qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes?rev=1773536&r1=1773535&r2=1773536&view=diff
==============================================================================
--- qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes (original)
+++ qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes Sat Dec 10 19:35:07 2016
@@ -35,7 +35,6 @@ org.apache.qpid.test.unit.topic.DurableS
 org.apache.qpid.test.unit.client.MaxDeliveryCountTest#*
 org.apache.qpid.test.client.queue.LVQTest#*
 org.apache.qpid.systest.rest.ConnectionRestTest#*
-org.apache.qpid.systest.rest.MessagesRestTest#*
 
 
 



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