You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2018/01/17 22:04:27 UTC

qpid-broker-j git commit: QPID-6933: [System Tests] Move broker system test MessageCompressionTest into MessageContentCompressionRestTest

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 9599ec653 -> 59048193c


QPID-6933: [System Tests] Move broker system test MessageCompressionTest into MessageContentCompressionRestTest


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/59048193
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/59048193
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/59048193

Branch: refs/heads/master
Commit: 59048193c5df0e74302024b3776c0b84ed13eec0
Parents: 9599ec6
Author: Alex Rudyy <or...@apache.org>
Authored: Wed Jan 17 22:01:16 2018 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Wed Jan 17 22:03:09 2018 +0000

----------------------------------------------------------------------
 .../qpid/systest/MessageCompressionTest.java    | 338 -------------------
 .../rest/MessageContentCompressionRestTest.java | 338 +++++++++++++++++++
 test-profiles/CPPExcludes                       |   2 +-
 test-profiles/Java10Excludes                    |   2 +-
 4 files changed, 340 insertions(+), 340 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59048193/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java b/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
deleted file mode 100644
index a6e1e01..0000000
--- a/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.systest;
-
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.GZIPInputStream;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.MessageProducer;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.TextMessage;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.Maps;
-
-import org.apache.qpid.jms.ConnectionURL;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.systest.rest.RestTestHelper;
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-import org.apache.qpid.test.utils.TestBrokerConfiguration;
-
-public class MessageCompressionTest extends QpidBrokerTestCase
-{
-    private static String VIRTUAL_HOST = "test";
-    private RestTestHelper _restTestHelper;
-
-    @Override
-    public void startDefaultBroker()
-    {
-        // tests are starting the broker
-    }
-
-    public void doActualSetUp() throws Exception
-    {
-        TestBrokerConfiguration config = getDefaultBrokerConfiguration();
-        config.addHttpManagementConfiguration();
-        config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT,
-                                  Port.ALLOW_CONFIDENTIAL_OPERATIONS_ON_INSECURE_CHANNELS,
-                                  true);
-        super.startDefaultBroker();
-
-        _restTestHelper = new RestTestHelper(getDefaultBroker().getHttpPort());
-    }
-
-    @Override
-    protected void tearDown() throws Exception
-    {
-        try
-        {
-            super.tearDown();
-        }
-        finally
-        {
-            _restTestHelper.tearDown();
-        }
-    }
-
-    public void testGetContentViaRestForCompressedMessageWithAgentNotSupportingCompression() throws Exception
-    {
-        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
-
-        doActualSetUp();
-
-        String messageText = createMessageText();
-        Connection senderConnection = getConnection(true);
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue testQueue = createTestQueue(session);
-
-        publishMessage(senderConnection, messageText, testQueue);
-
-        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
-
-        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
-        assertEquals("Unexpected number of messages", 1, messages.size());
-        long id = ((Number) messages.get(0).get("id")).longValue();
-
-        byte[] messageBytes = _restTestHelper.getBytes(queueRelativePath + "/getMessageContent?messageId=" + id);
-        String content = new String(messageBytes, StandardCharsets.UTF_8);
-        assertEquals("Unexpected message content :" + content, messageText, content);
-
-        messageBytes = _restTestHelper.getBytes(queueRelativePath + "/getMessageContent?limit=1024&decompressBeforeLimiting=true&messageId=" + id);
-        content = new String(messageBytes, StandardCharsets.UTF_8);
-        assertEquals("Unexpected message content :" + content, messageText.substring(0, 1024), content);
-    }
-
-    public void testGetContentViaRestForCompressedMessageWithAgentSupportingCompression() throws Exception
-    {
-        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
-
-        doActualSetUp();
-
-        String messageText = createMessageText();
-        Connection senderConnection = getConnection(true);
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue testQueue = createTestQueue(session);
-
-        publishMessage(senderConnection, messageText, testQueue);
-
-        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
-
-        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
-        assertEquals("Unexpected number of messages", 1, messages.size());
-        long id = ((Number) messages.get(0).get("id")).longValue();
-
-        _restTestHelper.setAcceptEncoding("gzip, deflate, br");
-        String content = getDecompressedContent(queueRelativePath + "/getMessageContent?messageId=" + id);
-        assertEquals("Unexpected message content :" + content, messageText, content);
-
-        content = getDecompressedContent(queueRelativePath + "/getMessageContent?limit=1024&decompressBeforeLimiting=true&messageId=" + id);
-        assertEquals("Unexpected message content :" + content, messageText.substring(0, 1024), content);
-    }
-
-    public void testGetTruncatedContentViaRestForCompressedMessage() throws Exception
-    {
-        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
-
-        doActualSetUp();
-
-        String messageText = createMessageText();
-        Connection senderConnection = getConnection(true);
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue testQueue = createTestQueue(session);
-
-        publishMessage(senderConnection, messageText, testQueue);
-
-        String queueRelativePath = "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
-
-        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
-        assertEquals("Unexpected number of messages", 1, messages.size());
-        long id = ((Number) messages.get(0).get("id")).longValue();
-
-        _restTestHelper.setAcceptEncoding("gzip");
-        try
-        {
-            getDecompressedContent(queueRelativePath + "/getMessageContent?limit=1024&messageId=" + id);
-            fail("Should not be able to decompress truncated gzip");
-        }
-        catch (EOFException e)
-        {
-            // pass
-        }
-    }
-
-    private String getDecompressedContent(final String url) throws IOException
-    {
-        HttpURLConnection connection = _restTestHelper.openManagementConnection(url, "GET");
-        connection.connect();
-        return decompressInputStream(connection);
-    }
-
-    public void testGetContentViaRestForCompressedMapMessageWithAgentNotSupportingCompression() throws Exception
-    {
-        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
-
-        doActualSetUp();
-
-        Connection senderConnection = getConnection(true);
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue testQueue = createTestQueue(session);
-
-        Map<String, Object> mapToSend = createMapToSend();
-        publishMapMessage(senderConnection, mapToSend, testQueue);
-
-        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
-
-        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
-        assertEquals("Unexpected number of messages", 1, messages.size());
-        long id = ((Number) messages.get(0).get("id")).longValue();
-
-        Map<String, Object> content =
-                _restTestHelper.getJsonAsMap(queueRelativePath + "/getMessageContent?returnJson=true&messageId=" + id);
-        assertEquals("Unexpected message content: difference " + Maps.difference(mapToSend, content),
-                     new HashMap<>(mapToSend),
-                     new HashMap<>(content));
-    }
-
-    public void testGetContentViaRestForCompressedMapMessageWithAgentSupportingCompression() throws Exception
-    {
-        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
-
-        doActualSetUp();
-
-        Connection senderConnection = getConnection(true);
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Queue testQueue = createTestQueue(session);
-
-        Map<String, Object> mapToSend = createMapToSend();
-        publishMapMessage(senderConnection, mapToSend, testQueue);
-
-
-        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
-
-        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
-        assertEquals("Unexpected number of messages", 1, messages.size());
-        long id = ((Number) messages.get(0).get("id")).longValue();
-
-        _restTestHelper.setAcceptEncoding("gzip, deflate, br");
-        HttpURLConnection connection =
-                _restTestHelper.openManagementConnection(queueRelativePath
-                                                         + "/getMessageContent?returnJson=true&messageId="
-                                                         + id,
-                                                         "GET");
-        connection.connect();
-
-        String content = decompressInputStream(connection);
-        Map<String, Object> mapContent = new ObjectMapper().readValue(content, Map.class);
-        assertEquals("Unexpected message content: difference " + Maps.difference(mapToSend, mapContent),
-                     new HashMap<>(mapToSend),
-                     new HashMap<>(mapContent));
-    }
-
-    private Map<String, Object> createMapToSend()
-    {
-        Map<String, Object> mapToSend = new HashMap<>();
-
-        String message = "This is a sample message";
-        int i = 0, l = message.length();
-        do
-        {
-            mapToSend.put("text" + i, message);
-            i++;
-        }
-        while (i * l < 2048 * 1024);
-
-        mapToSend.put("int", 1);
-        return mapToSend;
-    }
-
-    private String decompressInputStream(final HttpURLConnection connection) throws IOException
-    {
-        String content;
-        try (InputStream is = new GZIPInputStream(connection.getInputStream());
-             ByteArrayOutputStream baos = new ByteArrayOutputStream())
-        {
-            byte[] buffer = new byte[1024];
-            int len;
-            while ((len = is.read(buffer)) != -1)
-            {
-                baos.write(buffer, 0, len);
-            }
-            content = new String(baos.toByteArray(), StandardCharsets.UTF_8);
-        }
-        return content;
-    }
-
-    private void publishMapMessage(final Connection senderConnection,
-                                   final Map<String, Object> mapData,
-                                   final Queue testQueue)
-            throws JMSException, org.apache.qpid.QpidException
-    {
-        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
-
-        MessageProducer producer = session.createProducer(testQueue);
-        MapMessage sentMessage = session.createMapMessage();
-        sentMessage.setStringProperty("bar", "foo");
-        for(Map.Entry<String,Object> entry: mapData.entrySet())
-        {
-            String key =  entry.getKey();
-            Object value =  entry.getValue();
-            if (value instanceof String)
-            {
-                sentMessage.setString(key, (String) value);
-            }
-            else if (value instanceof Integer)
-            {
-                sentMessage.setInt(key, (Integer) value);
-            }
-            else
-            {
-                throw new RuntimeException("Setting value of type " + value.getClass() + " is not implemented yet");
-            }
-        }
-
-        producer.send(sentMessage);
-        session.commit();
-    }
-
-    private void publishMessage(final Connection senderConnection, final String messageText, final Queue testQueue)
-            throws JMSException, org.apache.qpid.QpidException
-    {
-        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
-
-        MessageProducer producer = session.createProducer(testQueue);
-        TextMessage sentMessage = session.createTextMessage(messageText);
-        sentMessage.setStringProperty("bar", "foo");
-
-        producer.send(sentMessage);
-        session.commit();
-    }
-
-    private String createMessageText()
-    {
-        StringBuilder stringBuilder = new StringBuilder();
-        while(stringBuilder.length() < 2048*1024)
-        {
-            stringBuilder.append("This should compress easily. ");
-        }
-        return stringBuilder.toString();
-    }
-
-    private Connection getConnection(final boolean compress) throws Exception
-    {
-        Map<String, String> options = new HashMap<>();
-        options.put(ConnectionURL.OPTIONS_COMPRESS_MESSAGES,String.valueOf(compress));
-        return getConnectionWithOptions(options);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59048193/systests/src/test/java/org/apache/qpid/systest/rest/MessageContentCompressionRestTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/systest/rest/MessageContentCompressionRestTest.java b/systests/src/test/java/org/apache/qpid/systest/rest/MessageContentCompressionRestTest.java
new file mode 100644
index 0000000..6f5621b
--- /dev/null
+++ b/systests/src/test/java/org/apache/qpid/systest/rest/MessageContentCompressionRestTest.java
@@ -0,0 +1,338 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.systest.rest;
+
+import java.io.ByteArrayOutputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.GZIPInputStream;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.Maps;
+
+import org.apache.qpid.jms.ConnectionURL;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.systest.rest.RestTestHelper;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
+import org.apache.qpid.test.utils.TestBrokerConfiguration;
+
+public class MessageContentCompressionRestTest extends QpidBrokerTestCase
+{
+    private static String VIRTUAL_HOST = "test";
+    private RestTestHelper _restTestHelper;
+
+    @Override
+    public void startDefaultBroker()
+    {
+        // tests are starting the broker
+    }
+
+    public void doActualSetUp() throws Exception
+    {
+        TestBrokerConfiguration config = getDefaultBrokerConfiguration();
+        config.addHttpManagementConfiguration();
+        config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT,
+                                  Port.ALLOW_CONFIDENTIAL_OPERATIONS_ON_INSECURE_CHANNELS,
+                                  true);
+        super.startDefaultBroker();
+
+        _restTestHelper = new RestTestHelper(getDefaultBroker().getHttpPort());
+    }
+
+    @Override
+    protected void tearDown() throws Exception
+    {
+        try
+        {
+            super.tearDown();
+        }
+        finally
+        {
+            _restTestHelper.tearDown();
+        }
+    }
+
+    public void testGetContentViaRestForCompressedMessageWithAgentNotSupportingCompression() throws Exception
+    {
+        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
+
+        doActualSetUp();
+
+        String messageText = createMessageText();
+        Connection senderConnection = getConnection(true);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
+
+        publishMessage(senderConnection, messageText, testQueue);
+
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
+
+        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
+        assertEquals("Unexpected number of messages", 1, messages.size());
+        long id = ((Number) messages.get(0).get("id")).longValue();
+
+        byte[] messageBytes = _restTestHelper.getBytes(queueRelativePath + "/getMessageContent?messageId=" + id);
+        String content = new String(messageBytes, StandardCharsets.UTF_8);
+        assertEquals("Unexpected message content :" + content, messageText, content);
+
+        messageBytes = _restTestHelper.getBytes(queueRelativePath + "/getMessageContent?limit=1024&decompressBeforeLimiting=true&messageId=" + id);
+        content = new String(messageBytes, StandardCharsets.UTF_8);
+        assertEquals("Unexpected message content :" + content, messageText.substring(0, 1024), content);
+    }
+
+    public void testGetContentViaRestForCompressedMessageWithAgentSupportingCompression() throws Exception
+    {
+        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
+
+        doActualSetUp();
+
+        String messageText = createMessageText();
+        Connection senderConnection = getConnection(true);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
+
+        publishMessage(senderConnection, messageText, testQueue);
+
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
+
+        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
+        assertEquals("Unexpected number of messages", 1, messages.size());
+        long id = ((Number) messages.get(0).get("id")).longValue();
+
+        _restTestHelper.setAcceptEncoding("gzip, deflate, br");
+        String content = getDecompressedContent(queueRelativePath + "/getMessageContent?messageId=" + id);
+        assertEquals("Unexpected message content :" + content, messageText, content);
+
+        content = getDecompressedContent(queueRelativePath + "/getMessageContent?limit=1024&decompressBeforeLimiting=true&messageId=" + id);
+        assertEquals("Unexpected message content :" + content, messageText.substring(0, 1024), content);
+    }
+
+    public void testGetTruncatedContentViaRestForCompressedMessage() throws Exception
+    {
+        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
+
+        doActualSetUp();
+
+        String messageText = createMessageText();
+        Connection senderConnection = getConnection(true);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
+
+        publishMessage(senderConnection, messageText, testQueue);
+
+        String queueRelativePath = "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
+
+        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
+        assertEquals("Unexpected number of messages", 1, messages.size());
+        long id = ((Number) messages.get(0).get("id")).longValue();
+
+        _restTestHelper.setAcceptEncoding("gzip");
+        try
+        {
+            getDecompressedContent(queueRelativePath + "/getMessageContent?limit=1024&messageId=" + id);
+            fail("Should not be able to decompress truncated gzip");
+        }
+        catch (EOFException e)
+        {
+            // pass
+        }
+    }
+
+    private String getDecompressedContent(final String url) throws IOException
+    {
+        HttpURLConnection connection = _restTestHelper.openManagementConnection(url, "GET");
+        connection.connect();
+        return decompressInputStream(connection);
+    }
+
+    public void testGetContentViaRestForCompressedMapMessageWithAgentNotSupportingCompression() throws Exception
+    {
+        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
+
+        doActualSetUp();
+
+        Connection senderConnection = getConnection(true);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
+
+        Map<String, Object> mapToSend = createMapToSend();
+        publishMapMessage(senderConnection, mapToSend, testQueue);
+
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
+
+        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
+        assertEquals("Unexpected number of messages", 1, messages.size());
+        long id = ((Number) messages.get(0).get("id")).longValue();
+
+        Map<String, Object> content =
+                _restTestHelper.getJsonAsMap(queueRelativePath + "/getMessageContent?returnJson=true&messageId=" + id);
+        assertEquals("Unexpected message content: difference " + Maps.difference(mapToSend, content),
+                     new HashMap<>(mapToSend),
+                     new HashMap<>(content));
+    }
+
+    public void testGetContentViaRestForCompressedMapMessageWithAgentSupportingCompression() throws Exception
+    {
+        setTestSystemProperty(Broker.BROKER_MESSAGE_COMPRESSION_ENABLED, String.valueOf(true));
+
+        doActualSetUp();
+
+        Connection senderConnection = getConnection(true);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
+
+        Map<String, Object> mapToSend = createMapToSend();
+        publishMapMessage(senderConnection, mapToSend, testQueue);
+
+
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
+
+        List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
+        assertEquals("Unexpected number of messages", 1, messages.size());
+        long id = ((Number) messages.get(0).get("id")).longValue();
+
+        _restTestHelper.setAcceptEncoding("gzip, deflate, br");
+        HttpURLConnection connection =
+                _restTestHelper.openManagementConnection(queueRelativePath
+                                                         + "/getMessageContent?returnJson=true&messageId="
+                                                         + id,
+                                                         "GET");
+        connection.connect();
+
+        String content = decompressInputStream(connection);
+        Map<String, Object> mapContent = new ObjectMapper().readValue(content, Map.class);
+        assertEquals("Unexpected message content: difference " + Maps.difference(mapToSend, mapContent),
+                     new HashMap<>(mapToSend),
+                     new HashMap<>(mapContent));
+    }
+
+    private Map<String, Object> createMapToSend()
+    {
+        Map<String, Object> mapToSend = new HashMap<>();
+
+        String message = "This is a sample message";
+        int i = 0, l = message.length();
+        do
+        {
+            mapToSend.put("text" + i, message);
+            i++;
+        }
+        while (i * l < 2048 * 1024);
+
+        mapToSend.put("int", 1);
+        return mapToSend;
+    }
+
+    private String decompressInputStream(final HttpURLConnection connection) throws IOException
+    {
+        String content;
+        try (InputStream is = new GZIPInputStream(connection.getInputStream());
+             ByteArrayOutputStream baos = new ByteArrayOutputStream())
+        {
+            byte[] buffer = new byte[1024];
+            int len;
+            while ((len = is.read(buffer)) != -1)
+            {
+                baos.write(buffer, 0, len);
+            }
+            content = new String(baos.toByteArray(), StandardCharsets.UTF_8);
+        }
+        return content;
+    }
+
+    private void publishMapMessage(final Connection senderConnection,
+                                   final Map<String, Object> mapData,
+                                   final Queue testQueue)
+            throws JMSException, org.apache.qpid.QpidException
+    {
+        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
+
+        MessageProducer producer = session.createProducer(testQueue);
+        MapMessage sentMessage = session.createMapMessage();
+        sentMessage.setStringProperty("bar", "foo");
+        for(Map.Entry<String,Object> entry: mapData.entrySet())
+        {
+            String key =  entry.getKey();
+            Object value =  entry.getValue();
+            if (value instanceof String)
+            {
+                sentMessage.setString(key, (String) value);
+            }
+            else if (value instanceof Integer)
+            {
+                sentMessage.setInt(key, (Integer) value);
+            }
+            else
+            {
+                throw new RuntimeException("Setting value of type " + value.getClass() + " is not implemented yet");
+            }
+        }
+
+        producer.send(sentMessage);
+        session.commit();
+    }
+
+    private void publishMessage(final Connection senderConnection, final String messageText, final Queue testQueue)
+            throws JMSException, org.apache.qpid.QpidException
+    {
+        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
+
+        MessageProducer producer = session.createProducer(testQueue);
+        TextMessage sentMessage = session.createTextMessage(messageText);
+        sentMessage.setStringProperty("bar", "foo");
+
+        producer.send(sentMessage);
+        session.commit();
+    }
+
+    private String createMessageText()
+    {
+        StringBuilder stringBuilder = new StringBuilder();
+        while(stringBuilder.length() < 2048*1024)
+        {
+            stringBuilder.append("This should compress easily. ");
+        }
+        return stringBuilder.toString();
+    }
+
+    private Connection getConnection(final boolean compress) throws Exception
+    {
+        Map<String, String> options = new HashMap<>();
+        options.put(ConnectionURL.OPTIONS_COMPRESS_MESSAGES,String.valueOf(compress));
+        return getConnectionWithOptions(options);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59048193/test-profiles/CPPExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/CPPExcludes b/test-profiles/CPPExcludes
index 78511ee..ba925a1 100755
--- a/test-profiles/CPPExcludes
+++ b/test-profiles/CPPExcludes
@@ -106,7 +106,7 @@ org.apache.qpid.transport.ProtocolNegotiationTest#testNoProtocolHeaderSent_Broke
 org.apache.qpid.transport.ProtocolNegotiationTest#testNoConnectionOpenSent_BrokerClosesConnection
 
 // QPID-6000 : Tests Qpid Broker-J specific message compression functionality, and uses the REST API to test it
-org.apache.qpid.systest.MessageCompressionTest#*
+org.apache.qpid.systest.rest.MessageContentCompressionRestTest#*
 
 
 org.apache.qpid.test.unit.client.AMQSessionTest#testQueueDepthForQueueThatDoesNotExistLegacyBehaviour_08_091

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59048193/test-profiles/Java10Excludes
----------------------------------------------------------------------
diff --git a/test-profiles/Java10Excludes b/test-profiles/Java10Excludes
index 570e0ba..d52d70e 100644
--- a/test-profiles/Java10Excludes
+++ b/test-profiles/Java10Excludes
@@ -61,7 +61,7 @@ org.apache.qpid.server.failover.FailoverMethodTest#*
 // Message encryption not currently supported by the 1.0 client
 org.apache.qpid.systest.messageencryption.MessageEncryptionTest#*
 // Message compression not currently supported by the 1.0 client
-org.apache.qpid.systest.MessageCompressionTest#*
+org.apache.qpid.systest.rest.MessageContentCompressionRestTest#*
 
 // Tests the interaction between the Broker's supported protocols and what the 0-x client agrees to
 org.apache.qpid.server.SupportedProtocolVersionsTest#*


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