You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2011/10/28 17:52:18 UTC

svn commit: r1190406 [5/5] - in /qpid/branches/qpid-3346/qpid: ./ bin/ cpp/design_docs/ cpp/docs/api/ cpp/docs/man/ cpp/examples/old_api/tradedemo/ cpp/include/qmf/engine/ cpp/src/ cpp/src/posix/ cpp/src/qmf/engine/ cpp/src/qpid/ cpp/src/qpid/acl/ cpp/...

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
+/qpid/trunk/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile:1175236-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-bdb.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
+/qpid/trunk/qpid/java/test-profiles/java-bdb.0-9-1.testprofile:1175236-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -3,4 +3,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/log4j-test.xml:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/log4j-test.xml:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/log4j-test.xml:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/log4j-test.xml:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/log4j-test.xml:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/test-provider.properties
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/test-provider.properties:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/test-provider.properties:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/test-provider.properties:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/test-provider.properties:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/test-provider.properties:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/test_resources/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/test_resources:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/test_resources:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/test_resources:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/test_resources:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/test_resources:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/default.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/default.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/default.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/testprofile.defaults:1144319-1179750
+/qpid/trunk/qpid/java/test-profiles/testprofile.defaults:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/packaging/windows/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -4,4 +4,4 @@
 /qpid/branches/0.6-release-windows-installer/qpid/packaging/windows:926865,927233
 /qpid/branches/java-network-refactor/qpid/packaging/windows:805429-825319
 /qpid/branches/qpid-2935/qpid/packaging/windows:1061302-1072333
-/qpid/trunk/qpid/packaging/windows:1144319-1179750
+/qpid/trunk/qpid/packaging/windows:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/python/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-network-refactor/qpid/python:805429-825319
 /qpid/branches/qmfv2/qpid/python:902858,902894
 /qpid/branches/qpid-2935/qpid/python:1061302-1072333
-/qpid/trunk/qpid/python:1144319-1179750
+/qpid/trunk/qpid/python:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/python/examples/api/spout
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -1,4 +1,4 @@
 /qpid/branches/qmfv2/qpid/python/examples/api/spout:902858,902894
 /qpid/branches/qpid-2935/qpid/python/examples/api/spout:1061302-1072333
 /qpid/branches/qpid.rnr/python/examples/api/spout:894071-896158
-/qpid/trunk/qpid/python/examples/api/spout:1144319-1179750
+/qpid/trunk/qpid/python/examples/api/spout:1144319-1190375

Propchange: qpid/branches/qpid-3346/qpid/python/qpid/concurrency.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -1,4 +1,4 @@
 /qpid/branches/qmfv2/qpid/python/qpid/concurrency.py:902858,902894
 /qpid/branches/qpid-2935/qpid/python/qpid/concurrency.py:1061302-1072333
 /qpid/branches/qpid.rnr/python/qpid/concurrency.py:894071-896158
-/qpid/trunk/qpid/python/qpid/concurrency.py:1144319-1179750
+/qpid/trunk/qpid/python/qpid/concurrency.py:1144319-1190375

Modified: qpid/branches/qpid-3346/qpid/specs/management-schema.xml
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/specs/management-schema.xml?rev=1190406&r1=1190405&r2=1190406&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/specs/management-schema.xml (original)
+++ qpid/branches/qpid-3346/qpid/specs/management-schema.xml Fri Oct 28 15:52:13 2011
@@ -103,6 +103,14 @@
       <arg name="level"     dir="O" type="sstr"/>
     </method>
 
+    <method name="getTimestampConfig" desc="Get the message timestamping configuration">
+      <arg name="receive" dir="O" type="bool"  desc="True if received messages are timestamped."/>
+    </method>
+
+    <method name="setTimestampConfig" desc="Set the message timestamping configuration">
+      <arg name="receive"  dir="I" type="bool" desc="Set true to enable timestamping received messages."/>
+    </method>
+
     <method name="create" desc="Create an object of the specified type">
       <arg name="type" dir="I" type="sstr" desc="The type of object to create"/>
       <arg name="name" dir="I" type="sstr" desc="The name of the object to create"/> 

Modified: qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/management.py?rev=1190406&r1=1190405&r2=1190406&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/management.py (original)
+++ qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/management.py Fri Oct 28 15:52:13 2011
@@ -584,4 +584,63 @@ class ManagementTest (TestBase010):
         conn_qmf.update()
         self.assertEqual(conn_qmf.msgsToClient, 1)
 
-        
+    def test_timestamp_config(self):
+        """
+        Test message timestamping control.
+        """
+        self.startQmf()
+        conn = self.connect()
+        session = conn.session("timestamp-session")
+
+        #verify that receive message timestamping is OFF by default
+        broker = self.qmf.getObjects(_class="broker")[0]
+        rc = broker.getTimestampConfig()
+        self.assertEqual(rc.status, 0)
+        self.assertEqual(rc.text, "OK")
+        #self.assertEqual(rc.receive, False)
+
+        #try to enable it
+        rc = broker.setTimestampConfig(True)
+        self.assertEqual(rc.status, 0)
+        self.assertEqual(rc.text, "OK")
+
+        rc = broker.getTimestampConfig()
+        self.assertEqual(rc.status, 0)
+        self.assertEqual(rc.text, "OK")
+        self.assertEqual(rc.receive, True)
+
+        #send a message to a queue
+        session.queue_declare(queue="ts-q", exclusive=True, auto_delete=True)
+        session.message_transfer(message=Message(session.delivery_properties(routing_key="ts-q"), "abc"))
+
+        #receive message from queue, and verify timestamp is present
+        session.message_subscribe(destination="d", queue="ts-q")
+        session.message_flow(destination="d", unit=session.credit_unit.message, value=0xFFFFFFFFL)
+        session.message_flow(destination="d", unit=session.credit_unit.byte, value=0xFFFFFFFFL)
+        incoming = session.incoming("d")
+        msg = incoming.get(timeout=1)
+        self.assertEqual("abc", msg.body)
+        self.assertEqual(msg.has("delivery_properties"), True)
+        dp = msg.get("delivery_properties")
+        assert(dp.timestamp)
+
+        #try to disable it
+        rc = broker.setTimestampConfig(False)
+        self.assertEqual(rc.status, 0)
+        self.assertEqual(rc.text, "OK")
+
+        rc = broker.getTimestampConfig()
+        self.assertEqual(rc.status, 0)
+        self.assertEqual(rc.text, "OK")
+        self.assertEqual(rc.receive, False)
+
+        #send another message to the queue
+        session.message_transfer(message=Message(session.delivery_properties(routing_key="ts-q"), "def"))
+
+        #receive message from queue, and verify timestamp is NOT PRESENT
+        msg = incoming.get(timeout=1)
+        self.assertEqual("def", msg.body)
+        self.assertEqual(msg.has("delivery_properties"), True)
+        dp = msg.get("delivery_properties")
+        self.assertEqual(dp.timestamp, None)
+

Modified: qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/message.py
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/message.py?rev=1190406&r1=1190405&r2=1190406&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/message.py (original)
+++ qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_10/message.py Fri Oct 28 15:52:13 2011
@@ -262,19 +262,29 @@ class MessageTests(TestBase010):
 
     def test_ack(self):
         """
-        Test basic ack/recover behaviour
+        Test basic ack/recover behaviour using a combination of implicit and
+        explicit accept subscriptions.
         """
-        session = self.conn.session("alternate-session", timeout=10)
-        session.queue_declare(queue="test-ack-queue", auto_delete=True)
+        self.startQmf()
+        session1 = self.conn.session("alternate-session", timeout=10)
+        session1.queue_declare(queue="test-ack-queue", auto_delete=True)
 
-        session.message_subscribe(queue = "test-ack-queue", destination = "consumer")
-        session.message_flow(destination="consumer", unit=session.credit_unit.message, value=0xFFFFFFFFL)
-        session.message_flow(destination="consumer", unit=session.credit_unit.byte, value=0xFFFFFFFFL)
-        queue = session.incoming("consumer")
-
-        delivery_properties = session.delivery_properties(routing_key="test-ack-queue")
+        delivery_properties = session1.delivery_properties(routing_key="test-ack-queue")
         for i in ["One", "Two", "Three", "Four", "Five"]:
-            session.message_transfer(message=Message(delivery_properties, i))
+            session1.message_transfer(message=Message(delivery_properties, i))
+
+        # verify enqueued message count, use both QMF and session query to verify consistency
+        self.assertEqual(5, session1.queue_query(queue="test-ack-queue").message_count)
+        queueObj = self.qmf.getObjects(_class="queue", name="test-ack-queue")[0]
+        self.assertEquals(queueObj.msgDepth, 5)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 0)
+
+        # subscribe with implied acquire, explicit accept:
+        session1.message_subscribe(queue = "test-ack-queue", destination = "consumer")
+        session1.message_flow(destination="consumer", unit=session1.credit_unit.message, value=0xFFFFFFFFL)
+        session1.message_flow(destination="consumer", unit=session1.credit_unit.byte, value=0xFFFFFFFFL)
+        queue = session1.incoming("consumer")
 
         msg1 = queue.get(timeout=1)
         msg2 = queue.get(timeout=1)
@@ -288,20 +298,46 @@ class MessageTests(TestBase010):
         self.assertEqual("Four", msg4.body)
         self.assertEqual("Five", msg5.body)
 
-        session.message_accept(RangedSet(msg1.id, msg2.id, msg4.id))#One, Two and Four
+        # messages should not be on the queue:
+        self.assertEqual(0, session1.queue_query(queue="test-ack-queue").message_count)
+        # QMF shows the dequeues as not having happened yet, since they are have
+        # not been accepted
+        queueObj.update()
+        self.assertEquals(queueObj.msgDepth, 5)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 0)
+
+        session1.message_accept(RangedSet(msg1.id, msg2.id, msg4.id))#One, Two and Four
+
+        # QMF should now reflect the accepted messages as being dequeued
+        self.assertEqual(0, session1.queue_query(queue="test-ack-queue").message_count)
+        queueObj.update()
+        self.assertEquals(queueObj.msgDepth, 2)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 3)
+
+        #subscribe from second session here to ensure queue is not auto-deleted
+        #when alternate session closes.  Use implicit accept mode to test that
+        #we don't need to explicitly accept
+        session2 = self.conn.session("alternate-session-2", timeout=10)
+        session2.message_subscribe(queue = "test-ack-queue", destination = "checker", accept_mode=1)
 
-        #subscribe from second session here to ensure queue is not
-        #auto-deleted when alternate session closes (no need to ack on these):
-        self.session.message_subscribe(queue = "test-ack-queue", destination = "checker", accept_mode=1)
-
-        #now close the session, and see that the unacked messages are
+        #now close the first session, and see that the unaccepted messages are
         #then redelivered to another subscriber:
-        session.close(timeout=10)
+        session1.close(timeout=10)
 
-        session = self.session
-        session.message_flow(destination="checker", unit=session.credit_unit.message, value=0xFFFFFFFFL)
-        session.message_flow(destination="checker", unit=session.credit_unit.byte, value=0xFFFFFFFFL)
-        queue = session.incoming("checker")
+        # check the statistics - the queue_query will show the non-accepted
+        # messages have been released. QMF never considered them dequeued, so
+        # those counts won't change
+        self.assertEqual(2, session2.queue_query(queue="test-ack-queue").message_count)
+        queueObj.update()
+        self.assertEquals(queueObj.msgDepth, 2)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 3)
+
+        session2.message_flow(destination="checker", unit=session2.credit_unit.message, value=0xFFFFFFFFL)
+        session2.message_flow(destination="checker", unit=session2.credit_unit.byte, value=0xFFFFFFFFL)
+        queue = session2.incoming("checker")
 
         msg3b = queue.get(timeout=1)
         msg5b = queue.get(timeout=1)
@@ -314,6 +350,33 @@ class MessageTests(TestBase010):
             self.fail("Got unexpected message: " + extra.body)
         except Empty: None
 
+        self.assertEqual(0, session2.queue_query(queue="test-ack-queue").message_count)
+        queueObj.update()
+        self.assertEquals(queueObj.msgDepth, 0)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 5)
+
+        # Subscribe one last time to keep the queue available, and to verify
+        # that the implied accept worked by verifying no messages have been
+        # returned when session2 is closed.
+        self.session.message_subscribe(queue = "test-ack-queue", destination = "final-checker")
+
+        session2.close(timeout=10)
+
+        # check the statistics - they should not have changed
+        self.assertEqual(0, self.session.queue_query(queue="test-ack-queue").message_count)
+        queueObj.update()
+        self.assertEquals(queueObj.msgDepth, 0)
+        self.assertEquals(queueObj.msgTotalEnqueues, 5)
+        self.assertEquals(queueObj.msgTotalDequeues, 5)
+
+        self.session.message_flow(destination="final-checker", unit=self.session.credit_unit.message, value=0xFFFFFFFFL)
+        self.session.message_flow(destination="final-checker", unit=self.session.credit_unit.byte, value=0xFFFFFFFFL)
+        try:
+            extra = self.session.incoming("final-checker").get(timeout=1)
+            self.fail("Got unexpected message: " + extra.body)
+        except Empty: None
+
     def test_reject(self):
         session = self.session
         session.queue_declare(queue = "q", exclusive=True, auto_delete=True, alternate_exchange="amq.fanout")
@@ -953,7 +1016,6 @@ class MessageTests(TestBase010):
         assert messages.get(timeout=1).body == "second"
         self.assertEmpty(messages)
 
-
     def assertDataEquals(self, session, msg, expected):
         self.assertEquals(expected, msg.body)
 

Propchange: qpid/branches/qpid-3346/qpid/tests/src/py/qpid_tests/broker_0_9/queue.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 28 15:52:13 2011
@@ -1,4 +1,4 @@
 /qpid/branches/qmfv2/qpid/python/tests_0-9/queue.py:902858,902894
 /qpid/branches/qpid-2935/qpid/tests/src/py/qpid_tests/broker_0_9/queue.py:1061302-1072333
 /qpid/branches/qpid.rnr/python/tests_0-9/queue.py:894071-896158
-/qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_9/queue.py:1144319-1179750
+/qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_9/queue.py:1144319-1190375

Modified: qpid/branches/qpid-3346/qpid/tools/src/py/qpid-config
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/tools/src/py/qpid-config?rev=1190406&r1=1190405&r2=1190406&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/tools/src/py/qpid-config (original)
+++ qpid/branches/qpid-3346/qpid/tools/src/py/qpid-config Fri Oct 28 15:52:13 2011
@@ -75,6 +75,7 @@ class Config:
         self._recursive         = False
         self._host              = "localhost"
         self._connTimeout       = 10
+        self._ignoreDefault     = False
         self._altern_ex         = None
         self._passive           = False
         self._durable           = False
@@ -164,6 +165,10 @@ def OptionsAndArguments(argv):
     group1.add_option("--sasl-mechanism", action="store", type="string", metavar="<mech>", help="SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM-MD, DIGEST-MD5, GSSAPI). SASL automatically picks the most secure available mechanism - use this option to override.")
     parser.add_option_group(group1)
 
+    group_ls = OptionGroup(parser, "Options for Listing Exchanges and Queues")
+    group_ls.add_option("--ignore-default", action="store_true", help="Ignore the default exchange in exchange or queue list")
+    parser.add_option_group(group_ls)
+
     group2 = OptionGroup(parser, "Options for Adding Exchanges and Queues")
     group2.add_option("--alternate-exchange", action="store", type="string", metavar="<aexname>", help="Name of the alternate-exchange for the new queue or exchange. Exchanges route messages to the alternate exchange if they are unable to route them elsewhere. Queues route messages to the alternate exchange if they are rejected by a subscriber or orphaned by queue deletion.")
     group2.add_option("--passive", "--dry-run", action="store_true", help="Do not actually add the exchange or queue, ensure that all parameters and permissions are correct and would allow it to be created.")
@@ -227,6 +232,8 @@ def OptionsAndArguments(argv):
         config._connTimeout = opts.timeout
         if config._connTimeout == 0:
             config._connTimeout = None
+    if opts.ignore_default:
+        config._ignoreDefault = True
     if opts.alternate_exchange:
         config._altern_ex = opts.alternate_exchange
     if opts.passive:
@@ -385,6 +392,7 @@ class BrokerManager:
         print line
 
         for ex in exchanges:
+            if config._ignoreDefault and not ex.name: continue
             if self.match(ex.name, filter):
                 print "%-10s%-*s " % (ex.type, maxNameLen, ex.name),
                 args = ex.arguments
@@ -401,6 +409,7 @@ class BrokerManager:
         bindings  = self.qmf.getObjects(_class="binding", _agent=self.brokerAgent)
         queues    = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
         for ex in exchanges:
+            if config._ignoreDefault and not ex.name: continue
             if self.match(ex.name, filter):
                 print "Exchange '%s' (%s)" % (ex.name, ex.type)
                 for bind in bindings:
@@ -473,6 +482,7 @@ class BrokerManager:
                         if ex != None:
                             ename = ex.name
                             if ename == "":
+                                if config._ignoreDefault: continue
                                 ename = "''"
                         print "    bind [%s] => %s" % (bind.bindingKey, ename)
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org