You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jo...@apache.org on 2010/10/08 19:11:06 UTC
svn commit: r1005908 - in /qpid/trunk/qpid/cpp/src:
qpid/broker/ExchangeRegistry.cpp qpid/cluster/Cluster.cpp
qpid/cluster/FailoverExchange.cpp qpid/cluster/FailoverExchange.h
tests/cluster_tests.py
Author: jonathan
Date: Fri Oct 8 17:11:06 2010
New Revision: 1005908
URL: http://svn.apache.org/viewvc?rev=1005908&view=rev
Log:
Registers the amq.failover exchange in the management exchange.
Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h
qpid/trunk/qpid/cpp/src/tests/cluster_tests.py
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp?rev=1005908&r1=1005907&r2=1005908&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp Fri Oct 8 17:11:06 2010
@@ -45,7 +45,7 @@ pair<Exchange::shared_ptr, bool> Exchang
if (i == exchanges.end()) {
Exchange::shared_ptr exchange;
- if(type == TopicExchange::typeName){
+ if (type == TopicExchange::typeName){
exchange = Exchange::shared_ptr(new TopicExchange(name, durable, args, parent, broker));
}else if(type == DirectExchange::typeName){
exchange = Exchange::shared_ptr(new DirectExchange(name, durable, args, parent, broker));
Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=1005908&r1=1005907&r2=1005908&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Fri Oct 8 17:11:06 2010
@@ -282,7 +282,7 @@ Cluster::Cluster(const ClusterSettings&
broker.setClusterTimer(std::auto_ptr<sys::Timer>(timer));
// Failover exchange provides membership updates to clients.
- failoverExchange.reset(new FailoverExchange(this));
+ failoverExchange.reset(new FailoverExchange(broker.GetVhostObject(), &broker));
broker.getExchanges().registerExchange(failoverExchange);
// Update exchange is used during updates to replicate messages
Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp?rev=1005908&r1=1005907&r2=1005908&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp Fri Oct 8 17:11:06 2010
@@ -38,11 +38,11 @@ using namespace std;
using namespace broker;
using namespace framing;
-const string FailoverExchange::TYPE_NAME("amq.failover");
-
-FailoverExchange::FailoverExchange(management::Manageable* parent) : Exchange(TYPE_NAME, parent) {
+const string FailoverExchange::typeName("amq.failover");
+
+FailoverExchange::FailoverExchange(management::Manageable* parent, Broker* b) : Exchange(typeName, parent, b ) {
if (mgmtExchange != 0)
- mgmtExchange->set_type(TYPE_NAME);
+ mgmtExchange->set_type(typeName);
}
void FailoverExchange::setUrls(const vector<Url>& u) {
@@ -58,7 +58,7 @@ void FailoverExchange::updateUrls(const
boost::bind(&FailoverExchange::sendUpdate, this, _1));
}
-string FailoverExchange::getType() const { return TYPE_NAME; }
+string FailoverExchange::getType() const { return typeName; }
bool FailoverExchange::bind(Queue::shared_ptr queue, const string&, const framing::FieldTable*) {
Lock l(lock);
@@ -77,7 +77,7 @@ bool FailoverExchange::isBound(Queue::sh
}
void FailoverExchange::route(Deliverable&, const string& , const framing::FieldTable* ) {
- QPID_LOG(warning, "Message received by exchange " << TYPE_NAME << " ignoring");
+ QPID_LOG(warning, "Message received by exchange " << typeName << " ignoring");
}
void FailoverExchange::sendUpdate(const Queue::shared_ptr& queue) {
@@ -88,16 +88,17 @@ void FailoverExchange::sendUpdate(const
array.add(boost::shared_ptr<Str16Value>(new Str16Value(i->str())));
const ProtocolVersion v;
boost::intrusive_ptr<Message> msg(new Message);
- AMQFrame command(MessageTransferBody(v, TYPE_NAME, 1, 0));
+ AMQFrame command(MessageTransferBody(v, typeName, 1, 0));
command.setLastSegment(false);
msg->getFrames().append(command);
AMQHeaderBody header;
header.get<MessageProperties>(true)->setContentLength(0);
- header.get<MessageProperties>(true)->getApplicationHeaders().setArray(TYPE_NAME, array);
+ header.get<MessageProperties>(true)->getApplicationHeaders().setArray(typeName, array);
AMQFrame headerFrame(header);
headerFrame.setFirstSegment(false);
msg->getFrames().append(headerFrame);
DeliverableMessage(msg).deliverTo(queue);
}
+
}} // namespace cluster
Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h?rev=1005908&r1=1005907&r2=1005908&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h Fri Oct 8 17:11:06 2010
@@ -38,9 +38,9 @@ namespace cluster {
class FailoverExchange : public broker::Exchange
{
public:
- static const std::string TYPE_NAME;
+ static const std::string typeName;
- FailoverExchange(management::Manageable* parent);
+ FailoverExchange(management::Manageable* parent, broker::Broker* b);
/** Set the URLs but don't send an update.*/
void setUrls(const std::vector<Url>&);
Modified: qpid/trunk/qpid/cpp/src/tests/cluster_tests.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/cluster_tests.py?rev=1005908&r1=1005907&r2=1005908&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/cluster_tests.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/cluster_tests.py Fri Oct 8 17:11:06 2010
@@ -18,7 +18,7 @@
# under the License.
#
-import os, signal, sys, time, imp, re
+import os, signal, sys, time, imp, re, subprocess
from qpid import datatypes, messaging
from qpid.brokertest import *
from qpid.harness import Skipped
@@ -214,6 +214,15 @@ acl allow all all
for b in cluster: b.ready() # Make sure all brokers still running.
+ def test_amqfailover_visible(self):
+ """Verify that the amq.failover exchange can be seen by
+ QMF-based tools - regression test for BZ615300."""
+ broker1 = self.cluster(1)[0]
+ broker2 = self.cluster(1)[0]
+ qs = subprocess.Popen(["qpid-stat", "-e", broker1.host_port()], stdout=subprocess.PIPE)
+ out = qs.communicate()[0]
+ assert out.find("amq.failover") > 0
+
class LongTests(BrokerTest):
"""Tests that can run for a long time if -DDURATION=<minutes> is set"""
def duration(self):
@@ -525,4 +534,3 @@ class StoreTests(BrokerTest):
self.assertEqual(c.get_message("q").content, "x")
b = cluster.start("b")
self.assertEqual(c.get_message("q").content, "y")
-
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org