You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2010/08/02 18:44:55 UTC

svn commit: r981592 - in /qpid/trunk/qpid/cpp/src/qpid: agent/ManagementAgentImpl.cpp management/ManagementAgent.cpp

Author: tross
Date: Mon Aug  2 16:44:55 2010
New Revision: 981592

URL: http://svn.apache.org/viewvc?rev=981592&view=rev
Log:
Fixed bug in setting of the app-id header (it was set in the application-headers rather than
the message-properties).
Made the broker agent more selective about when it broadcasts console-added messages.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=981592&r1=981591&r2=981592&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp Mon Aug  2 16:44:55 2010
@@ -1208,7 +1208,6 @@ void ManagementAgentImpl::ConnectionThre
     for (i = headers.begin(); i != headers.end(); ++i) {
         msg.getHeaders().setString(i->first, i->second.asString());
     }
-    msg.getHeaders().setString("app_id", "qmf2");
 
     msg.setData(data);
     sendMessage(msg, exchange, routingKey);
@@ -1233,6 +1232,7 @@ void ManagementAgentImpl::ConnectionThre
     msg.getDeliveryProperties().setRoutingKey(routingKey);
     msg.getMessageProperties().setReplyTo(ReplyTo("amq.direct", queueName.str()));
     msg.getMessageProperties().getApplicationHeaders().setString("qmf.agent", agent.name_address);
+    msg.getMessageProperties().setAppId("qmf2");
     try {
         session.messageTransfer(arg::content=msg, arg::destination=exchange);
     } catch(exception& e) {

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=981592&r1=981591&r2=981592&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp Mon Aug  2 16:44:55 2010
@@ -428,10 +428,26 @@ void ManagementAgent::clientAdded (const
 {
     sys::Mutex::ScopedLock lock(userLock);
 
-    if (routingKey.find("console") != 0)
+    //
+    // If this routing key is not relevant to object updates, exit.
+    //
+    if ((routingKey.compare(0, 1,  "#") != 0) &&
+        (routingKey.compare(0, 9,  "console.#") != 0) &&
+        (routingKey.compare(0, 12, "console.obj.") != 0))
         return;
 
+    //
+    // Mark local objects for full-update.
+    //
     clientWasAdded = true;
+
+    //
+    // If the routing key is relevant for local objects only, don't involve
+    // any of the remote agents.
+    //
+    if (routingKey.compare(0, 39, "console.obj.*.*.org.apache.qpid.broker.") == 0)
+        return;
+
     std::list<std::string> rkeys;
 
     for (RemoteAgentMap::iterator aIter = remoteAgents.begin();
@@ -570,11 +586,11 @@ void ManagementAgent::sendBufferLH(const
         props->setCorrelationId(cid);
     }
     props->setContentType(content_type);
+    props->setAppId("qmf2");
 
     for (i = headers.begin(); i != headers.end(); ++i) {
         msg->getOrInsertHeaders().setString(i->first, i->second.asString());
     }
-    msg->getOrInsertHeaders().setString("app_id", "qmf2");
 
     DeliveryProperties* dp =
         msg->getFrames().getHeaders()->get<DeliveryProperties>(true);



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