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