Author: tross
Date: Fri Oct 30 15:53:30 2009
New Revision: 831351

URL: http://svn.apache.org/viewvc?rev=831351&view=rev
Log:
QPID-2181 - Alternate exchange on queue is not visible in management tools

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
    qpid/trunk/qpid/cpp/src/tests/cli_tests.py
    qpid/trunk/qpid/python/commands/qpid-config
    qpid/trunk/qpid/specs/management-schema.xml

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=831351&r1=831350&r2=831351&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Fri Oct 30 15:53:30 2009
@@ -953,6 +953,12 @@
 void Queue::setAlternateExchange(boost::shared_ptr<Exchange> exchange)
 {
     alternateExchange = exchange;
+    if (mgmtObject) {
+        if (exchange.get() != 0)
+            
mgmtObject->set_altExchange(exchange->GetManagementObject()->getObjectId());
+        else
+            mgmtObject->clr_altExchange();
+    }
 }
 
 boost::shared_ptr<Exchange> Queue::getAlternateExchange()

Modified: qpid/trunk/qpid/cpp/src/tests/cli_tests.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/cli_tests.py?rev=831351&r1=831350&r2=831351&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/cli_tests.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/cli_tests.py Fri Oct 30 15:53:30 2009
@@ -127,6 +127,7 @@
         self.startQmf();
         qmf = self.qmf
         exName = "testalt"
+        qName = "testqalt"
         altName = "amq.direct"
 
         ret = os.system(self.command(" add exchange topic %s 
--alternate-exchange=%s" % (exName, altName)))
@@ -145,6 +146,19 @@
                 self.assertEqual(exchange._altExchange_.name, altName)
         self.assertEqual(found, True)
 
+        ret = os.system(self.command(" add queue %s --alternate-exchange=%s" % 
(qName, altName)))
+        self.assertEqual(ret, 0)
+
+        queues = qmf.getObjects(_class="queue")
+        found = False
+        for queue in queues:
+            if queue.name == qName:
+                found = True
+                if not queue.altExchange:
+                    self.fail("Alternate exchange not set")
+                self.assertEqual(queue._altExchange_.name, altName)
+        self.assertEqual(found, True)
+
     def test_qpid_route(self):
         self.startQmf();
         qmf = self.qmf

Modified: qpid/trunk/qpid/python/commands/qpid-config
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/commands/qpid-config?rev=831351&r1=831350&r2=831351&view=diff
==============================================================================
--- qpid/trunk/qpid/python/commands/qpid-config (original)
+++ qpid/trunk/qpid/python/commands/qpid-config Fri Oct 30 15:53:30 2009
@@ -246,6 +246,8 @@
                 if LVQ in args and args[LVQ] == 1: print "--order lvq",
                 if LVQNB in args and args[LVQNB] == 1: print "--order 
lvq-no-browse",
                 if QUEUE_EVENT_GENERATION in args: print 
"--generate-queue-events=%d" % args[QUEUE_EVENT_GENERATION],
+                if q.altExchange:
+                    print "--alternate-exchange=%s" % q._altExchange_.name,
                 print
 
     def QueueListRecurse (self, filter):

Modified: qpid/trunk/qpid/specs/management-schema.xml
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/specs/management-schema.xml?rev=831351&r1=831350&r2=831351&view=diff
==============================================================================
--- qpid/trunk/qpid/specs/management-schema.xml (original)
+++ qpid/trunk/qpid/specs/management-schema.xml Fri Oct 30 15:53:30 2009
@@ -129,10 +129,11 @@
     <property name="vhostRef"   type="objId" references="Vhost" access="RC" 
index="y" parentRef="y"/>
     <property name="name"       type="sstr"  access="RC" index="y"/>
 
-    <property name="durable"    type="bool"  access="RC"/>
-    <property name="autoDelete" type="bool"  access="RC"/>
-    <property name="exclusive"  type="bool"  access="RC"/>
-    <property name="arguments"  type="map"   access="RO" desc="Arguments 
supplied in queue.declare"/>
+    <property name="durable"     type="bool"  access="RC"/>
+    <property name="autoDelete"  type="bool"  access="RC"/>
+    <property name="exclusive"   type="bool"  access="RC"/>
+    <property name="arguments"   type="map"   access="RO" desc="Arguments 
supplied in queue.declare"/>
+    <property name="altExchange" type="objId" references="Exchange" 
access="RO" optional="y"/>
 
     <statistic name="msgTotalEnqueues"    type="count64"  unit="message"     
desc="Total messages enqueued"/>
     <statistic name="msgTotalDequeues"    type="count64"  unit="message"     
desc="Total messages dequeued"/>



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

Reply via email to