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 2018/02/15 10:26:17 UTC

[1/2] qpid-broker-j git commit: QPID-8099: [Broker-J] Make MessageInfo and LogRecord implement ManagedAttributeValue.

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master a827841b2 -> 59bd08a31


QPID-8099: [Broker-J] Make MessageInfo and LogRecord implement ManagedAttributeValue.


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/1a28080d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/1a28080d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/1a28080d

Branch: refs/heads/master
Commit: 1a28080d0872c2ff9c52f3ef915d83e33fbf4de0
Parents: a827841
Author: Keith Wall <kw...@apache.org>
Authored: Thu Feb 15 09:25:50 2018 +0000
Committer: Keith Wall <kw...@apache.org>
Committed: Thu Feb 15 09:25:50 2018 +0000

----------------------------------------------------------------------
 .../main/java/org/apache/qpid/server/message/MessageInfo.java    | 3 ++-
 .../java/org/apache/qpid/server/logging/logback/LogRecord.java   | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1a28080d/broker-core/src/main/java/org/apache/qpid/server/message/MessageInfo.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/MessageInfo.java b/broker-core/src/main/java/org/apache/qpid/server/message/MessageInfo.java
index 0ad3df0..055ec23 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/message/MessageInfo.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/message/MessageInfo.java
@@ -23,10 +23,11 @@ package org.apache.qpid.server.message;
 import java.util.Date;
 import java.util.Map;
 
+import org.apache.qpid.server.model.ManagedAttributeValue;
 import org.apache.qpid.server.model.ManagedAttributeValueType;
 
 @ManagedAttributeValueType
-public interface MessageInfo
+public interface MessageInfo extends ManagedAttributeValue
 {
     long getId();
     long getSize();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1a28080d/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LogRecord.java
----------------------------------------------------------------------
diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LogRecord.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LogRecord.java
index 0010a0a..8356c20 100644
--- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LogRecord.java
+++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LogRecord.java
@@ -21,10 +21,12 @@
 package org.apache.qpid.server.logging.logback;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
+
+import org.apache.qpid.server.model.ManagedAttributeValue;
 import org.apache.qpid.server.model.ManagedAttributeValueType;
 
 @ManagedAttributeValueType
-public class LogRecord
+public class LogRecord implements ManagedAttributeValue
 {
     private final ILoggingEvent _event;
     private final long _id;


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


[2/2] qpid-broker-j git commit: QPID-8098: [Broker-J] Add supporting test case relating to browsing and delivery counts

Posted by kw...@apache.org.
QPID-8098: [Broker-J] Add supporting test case relating to browsing and delivery counts


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/59bd08a3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/59bd08a3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/59bd08a3

Branch: refs/heads/master
Commit: 59bd08a3103495ae0e8602c3e23b222a02a97bdf
Parents: 1a28080
Author: Keith Wall <kw...@apache.org>
Authored: Thu Feb 15 10:24:22 2018 +0000
Committer: Keith Wall <kw...@apache.org>
Committed: Thu Feb 15 10:25:45 2018 +0000

----------------------------------------------------------------------
 .../qpid/systests/AmqpManagementFacade.java     | 26 ++++++-
 systests/qpid-systests-jms_1.1/pom.xml          |  6 ++
 .../extensions/maxdelivery/MaxDeliveryTest.java | 73 +++++++++++++++++++-
 3 files changed, 102 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59bd08a3/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/AmqpManagementFacade.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/AmqpManagementFacade.java b/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/AmqpManagementFacade.java
index 7f789c6..647d34a 100644
--- a/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/AmqpManagementFacade.java
+++ b/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/AmqpManagementFacade.java
@@ -34,10 +34,12 @@ import javax.jms.JMSException;
 import javax.jms.MapMessage;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
+import javax.jms.MessageEOFException;
 import javax.jms.MessageProducer;
 import javax.jms.ObjectMessage;
 import javax.jms.Queue;
 import javax.jms.Session;
+import javax.jms.StreamMessage;
 import javax.jms.TemporaryQueue;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -264,7 +266,7 @@ public class AmqpManagementFacade
             else
             {
                 ObjectMapper objectMapper = new ObjectMapper();
-                String jsonifiedValue = null;
+                String jsonifiedValue;
                 try
                 {
                     jsonifiedValue = objectMapper.writeValueAsString(value);
@@ -293,7 +295,27 @@ public class AmqpManagementFacade
             {
                 throw new OperationUnsuccessfulException(response.getStringProperty("statusDescription"), statusCode);
             }
-            if (response instanceof MapMessage)
+            if (response instanceof StreamMessage)
+            {
+                StreamMessage bodyStream = (StreamMessage) response;
+                List<Object> result = new ArrayList<>();
+                boolean done = false;
+                do
+                {
+                    try
+                    {
+                        result.add(bodyStream.readObject());
+                    }
+                    catch (MessageEOFException mfe)
+                    {
+                        // Expected - end of stream
+                        done = true;
+                    }
+                }
+                while (!done);
+                return result;
+            }
+            else if (response instanceof MapMessage)
             {
                 MapMessage bodyMap = (MapMessage) response;
                 Map<String, Object> result = new TreeMap<>();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59bd08a3/systests/qpid-systests-jms_1.1/pom.xml
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/pom.xml b/systests/qpid-systests-jms_1.1/pom.xml
index b5c908e..1897cc9 100644
--- a/systests/qpid-systests-jms_1.1/pom.xml
+++ b/systests/qpid-systests-jms_1.1/pom.xml
@@ -65,6 +65,12 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-library</artifactId>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
     <profiles>

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/59bd08a3/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/maxdelivery/MaxDeliveryTest.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/maxdelivery/MaxDeliveryTest.java b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/maxdelivery/MaxDeliveryTest.java
index 60361b3..63d1d5e 100644
--- a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/maxdelivery/MaxDeliveryTest.java
+++ b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/maxdelivery/MaxDeliveryTest.java
@@ -21,13 +21,20 @@
 package org.apache.qpid.systests.jms_1_1.extensions.maxdelivery;
 
 import static org.apache.qpid.systests.Utils.INDEX;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.Matchers.greaterThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeThat;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -38,6 +45,7 @@ import javax.jms.Connection;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.Queue;
+import javax.jms.QueueBrowser;
 import javax.jms.Session;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -50,6 +58,7 @@ import org.apache.qpid.systests.Utils;
 public class MaxDeliveryTest extends JmsTestBase
 {
     private static final int MAX_DELIVERY_ATTEMPTS = 2;
+    private static final String JMSX_DELIVERY_COUNT = "JMSXDeliveryCount";
 
     @Test
     public void maximumDelivery() throws Exception
@@ -197,6 +206,40 @@ public class MaxDeliveryTest extends JmsTestBase
         }
     }
 
+    @Test
+    public void browsingDoesNotIncrementDeliveryCount() throws Exception
+    {
+        assumeThat(getBrokerAdmin().isManagementSupported(), is(true));
+
+        final String queueName = getTestName();
+        getBrokerAdmin().createQueue(queueName);
+
+        Connection connection = getConnection();
+        try
+        {
+            connection.start();
+            final Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
+            final Queue queue = session.createQueue(queueName);
+
+            Utils.sendMessages(connection, queue, 1);
+
+            final Map<String, Object> messageInfoBefore = getMessageInfo(queueName, 0);
+            assertThat("Unexpected delivery count before browse", messageInfoBefore.get("deliveryCount"), is(equalTo(0)));
+
+            browseQueueAndValidationDeliveryHeaders(session, queue);
+
+            final Map<String, Object> messageInfoAfter = getMessageInfo(queueName, 0);
+            assertThat("Unexpected delivery count after first browse", messageInfoAfter.get("deliveryCount"), is(equalTo(0)));
+
+            browseQueueAndValidationDeliveryHeaders(session, queue);
+
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
     private void verifyDeadLetterQueueMessages(final Connection connection,
                                                final String dlqName,
                                                final int numberOfEvenMessages) throws Exception
@@ -212,7 +255,7 @@ public class MaxDeliveryTest extends JmsTestBase
         for (int i = 0; i < numberOfEvenMessages; i++)
         {
             Message message = consumer.receive(getReceiveTimeout());
-            assertEquals("Unexpected DQL message index", i * 2, message.getIntProperty(INDEX));
+            assertEquals("Unexpected DLQ message index", i * 2, message.getIntProperty(INDEX));
         }
     }
 
@@ -234,4 +277,32 @@ public class MaxDeliveryTest extends JmsTestBase
                                         "org.apache.qpid.StandardQueue",
                                         attributes);
     }
+
+    private Map<String, Object> getMessageInfo(String queueName, final int index) throws Exception
+    {
+        @SuppressWarnings("unchecked")
+        List<Map<String, Object>> messages = (List<Map<String, Object>>) performOperationUsingAmqpManagement(queueName,
+                                                                                                             "getMessageInfo",
+                                                                                                             "org.apache.qpid.Queue",
+                                                                                                             Collections.emptyMap());
+        assertThat("Too few messsages on the queue", messages.size(), is(greaterThan(index)));
+        return messages.get(index);
+    }
+
+    private void browseQueueAndValidationDeliveryHeaders(final Session session, final Queue queue) throws Exception
+    {
+        final QueueBrowser browser = session.createBrowser(queue);
+        @SuppressWarnings("unchecked")
+        final List<Message> messages = (List<Message>) new ArrayList(Collections.list(browser.getEnumeration()));
+        assertThat("Unexpected number of messages seen by browser", messages.size(), is(equalTo(1)));
+        final Message browsedMessage = messages.get(0);
+        assertThat(browsedMessage.getJMSRedelivered(), is(equalTo(false)));
+
+        if (browsedMessage.propertyExists(JMSX_DELIVERY_COUNT))
+        {
+            assertThat(browsedMessage.getIntProperty(JMSX_DELIVERY_COUNT), is(equalTo(1)));
+
+        }
+        browser.close();
+    }
 }


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