Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 60A7E102FE for ; Thu, 23 Jan 2014 10:16:28 +0000 (UTC) Received: (qmail 69630 invoked by uid 500); 23 Jan 2014 10:16:28 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 69550 invoked by uid 500); 23 Jan 2014 10:16:22 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 69530 invoked by uid 99); 23 Jan 2014 10:16:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Jan 2014 10:16:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Jan 2014 10:16:16 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1B6792388AB8; Thu, 23 Jan 2014 10:15:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1560618 [5/5] - in /qpid/branches/java-broker-bdb-ha: ./ qpid/ qpid/bin/ qpid/cpp/ qpid/cpp/bindings/qpid/dotnet/examples/msvc10/csharp.direct.receiver/ qpid/cpp/bindings/qpid/dotnet/examples/msvc10/csharp.direct.sender/ qpid/cpp/bindings/... Date: Thu, 23 Jan 2014 10:15:49 -0000 To: commits@qpid.apache.org From: kwall@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140123101556.1B6792388AB8@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml (original) +++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml Thu Jan 23 10:15:46 2014 @@ -320,23 +320,40 @@ topicExchange.createNewBinding("queue", to the same group. Consumption ordering means one of two things depending on how the queue has been configured. - In default mode, each group is assigned to a consumer for - the lifetime of the consumer. - In C++ compatibility mode (which gives the same behaviour - as the C++ Qpid Broker), the Broker enforces a looser guarantee, nameley that all the - currently unacknowledged messages in a group will be sent to the - same consumer. This means that only one consumer can be processing messages from a particular - group at a given time. When the consumer acknowledges all of its acquired - messages, then the broker may pass the next pending message - from that group to a different consumer. + + In default mode, a group gets assigned to a single consumer for + the lifetime of that consumer, and the broker will pass all subsequent messages in + the group to that consumer. + + + In 'shared groups' mode (which gives the same behaviour + as the Qpid C++ Broker) the broker enforces a looser guarantee, namely that all the + currently unacknowledged messages in a group are sent to the + same consumer, but the consumer used may change over time even if the consumers do not. + This means that only one consumer can be processing messages from a particular group at + any given time, however if the consumer acknowledges all of its acquired messages then + the broker may pass the next pending message in that group to a + different consumer. + - The absence of a value in the designated header field for grouping as treated as indicative - of a lack of desire for the message to be grouped. Messages with such a lack of a value will - be distributed to any available consumer. + The absence of a value in the designated group header field of a message is treated as follows: + + + In default mode, failure for a message to specify a group is treated as a desire for the message + not to be grouped at all. Such messages will be distributed to any available consumer, without + the ordering quarantees imposed by grouping. + + + In 'shared groups' mode (which gives the same behaviour as the Qpid C++ Broker) the broker assigns messages + without a group value to a 'default group'. Therefore, all such "unidentified" messages are considered by + the broker as part of the same group, which will handled like any other group. The name of + this default group is "qpid.no-group", although it can be customised as detailed below. + + Note that message grouping has no effect on queue browsers. @@ -395,13 +412,25 @@ topicExchange.createNewBinding("queue", qpid.shared_msg_group Provide a value of "1" to switch on - C++ compatibility mode + 'shared groups' mode. + + + qpid.default_msg_group + The value to use as the default group when operating in + 'shared groups' mode. + The default group for groups operating in 'shared groups' mode can be updated broker-wide using a system property as follows, + however do note that the queue declaration argument detailed above takes precedence: + + + -Dqpid.broker_default-shared-message-group="your.default.shared.group" + + It is important to note that there is no need to provide the actual group identifer values that will be used. The broker learns these values as messages are received. Also, there is no practical limit - aside from resource limitations - Propchange: qpid/branches/java-broker-bdb-ha/qpid/python/ ------------------------------------------------------------------------------ Merged /qpid/trunk/qpid/python:r1549895-1558036 Modified: qpid/branches/java-broker-bdb-ha/qpid/python/qpid/messaging/driver.py URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/python/qpid/messaging/driver.py?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/python/qpid/messaging/driver.py (original) +++ qpid/branches/java-broker-bdb-ha/qpid/python/qpid/messaging/driver.py Thu Jan 23 10:15:46 2014 @@ -362,11 +362,11 @@ class Driver: [(u.host, default(u.port, 5672)) for u in urls] if self._host >= len(hosts): self._host = 0 - result = hosts[self._host] + self._last_host = hosts[self._host] if self._host == 0: self._attempts += 1 self._host = self._host + 1 - return result + return self._last_host def _num_hosts(self): return len(self.connection.reconnect_urls) + 1 @@ -401,6 +401,24 @@ class Driver: def timing(self): return self._timeout + def _check_retry_ok(self): + """We consider a reconnect to have suceeded only when we have received + open-ok from the peer. + + If we declared success as soon as the transport connected, then we could get + into an infinite heartbeat loop if the remote process is hung and never + sends us any data. We would fail the connection after 2 missed heartbeats, + reconnect the transport, declare the reconnect ok, then fail again after 2 + missed heartbeats and so on. + """ + if self._retrying and self.engine._connected: # Means we have received open-ok. + if self._reconnect_log: + log.warn("reconnect succeeded: %s:%s", *self._last_host) + self._next_retry = None + self._attempts = 0 + self._delay = self.connection.reconnect_interval_min + self._retrying = False + @synchronized def readable(self): try: @@ -410,6 +428,7 @@ class Driver: elif data: rawlog.debug("READ[%s]: %r", self.log_id, data) self.engine.write(data) + self._check_retry_ok() else: self.close_engine() except socket.error, e: @@ -451,13 +470,14 @@ class Driver: self.schedule() def update_status(self): + if not self.engine: return False status = self.engine.status() return getattr(self, "st_%s" % status.lower())() def st_closed(self): # XXX: this log statement seems to sometimes hit when the socket is not connected # XXX: rawlog.debug("CLOSE[%s]: %s", self.log_id, self._socket.getpeername()) - self._transport.close() + if self._transport: self._transport.close() self._transport = None self.engine = None return True @@ -483,6 +503,7 @@ class Driver: @synchronized def timeout(self): self.dispatch() + self.update_status() self._notify() self.schedule() @@ -531,12 +552,6 @@ class Driver: self._transport = trans(self.connection, host, port) else: raise ConnectError("no such transport: %s" % self.connection.transport) - if self._retrying and self._reconnect_log: - log.warn("reconnect succeeded: %s:%s", host, port) - self._next_retry = None - self._attempts = 0 - self._delay = self.connection.reconnect_interval_min - self._retrying = False self.schedule() except socket.error, e: self.close_engine(ConnectError(text=str(e))) @@ -589,8 +604,10 @@ class Engine: self._status = CLOSED self._buf = "" self._hdr = "" - self._last_in = None - self._last_out = None + # Set _last_in and _last_out here so heartbeats will be timed from the + # beginning of connection if no data is sent/received. + self._last_in = time.time() + self._last_out = time.time() self._op_enc = OpEncoder() self._seg_enc = SegmentEncoder() self._frame_enc = FrameEncoder() @@ -813,13 +830,15 @@ class Engine: self.attach(ssn) self.process(ssn) - if self.connection.heartbeat and self._status != CLOSED: - now = time.time() - if self._last_in is not None and \ - now - self._last_in > 2*self.connection.heartbeat: - raise HeartbeatTimeout(text="heartbeat timeout") - if self._last_out is None or now - self._last_out >= self.connection.heartbeat/2.0: - self.write_op(ConnectionHeartbeat()) + # We need to check heartbeat even if not self._connected since we may have + # heartbeat timeout before receiving an open-ok + if self.connection.heartbeat and self._status != CLOSED and not self._closing: + now = time.time() + if now - self._last_in > 2*self.connection.heartbeat: + raise HeartbeatTimeout(text="heartbeat timeout") + # Only send heartbeats if we are connected. + if self._connected and now - self._last_out >= self.connection.heartbeat/2.0: + self.write_op(ConnectionHeartbeat()) def open(self): self._reset() Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/README.txt URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/README.txt?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/README.txt (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/README.txt Thu Jan 23 10:15:46 2014 @@ -19,12 +19,163 @@ * */ -This is a Java JMS implementation of the QMF2 API specified at -https://cwiki.apache.org/qpid/qmfv2-api-proposal.html +********************************************** Introduction *********************************************** + +This directory provides a set of Java and JavaScript based tools that allow interaction with the Qpid brokers. +The tools are based on QMF2 (Qpid Management Framework v2) and work with the C++ broker by default. In order +to enable QMF2 support in the Java Broker you must compile the QMF plugin (see README-Java-Broker.txt) + +The main prerequisite is that The Qpid Java jar needs to be on your classpath - I tend to use qpid-all.jar but +client only jars should be OK too, it's pretty much built on pure JMS. + +In order to build the Java QMF2 API, the tools and the Java Broker QMF2 plugin simply do: + +ant all + +If you don't want the QMF2 plugin for the Java Broker simply do: + +ant + + +N.B. At the moment the QMF2 API and tools use the "traditional" Qpid AMQP 0.10 JMS API. The intention is that +over time this will migrate to AMQP 1.0 and move from being QMF2 based to using the AMQP 1.0 Management Spec. +However there is no concrete schedule for this migration at this time. + +************************************************* The API ************************************************* + +The tools are build on a Java JMS implementation of the QMF2 API specified at +https://cwiki.apache.org/confluence/display/qpid/QMFv2+API+Proposal + +When successfully build via "ant all" there is fairly comprehensive JavaDoc available in: +qpid/tools/src/java/docs/api/index.html + +Though looking at the source code for the tools (see "The Tools" below) might be a quicker way to get started. + + +The source code for the Java QMF2 API can be found under: +qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console +qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent +qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common + +console: contains the classes for the QMF2 "console", which is what most of the tools make use of +agent: contains the classes for the QMF2 "agent", which it what exposes management services, this is + what the Java Broker plugin uses to "externalise" its management model as QMF. +common: contains classes common to both the console and the agent. + +************************************************ The Tools ************************************************ + +There are executable shell scripts that should allow the Java based tools to be run fairly easily in: +qpid/qpid-trunk/qpid/tools/src/java/bin + +The source code for the Java QMF2 API can be found under: +qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/tools + +The available tools are: +QpidConfig: Is a Java port of the standard Python based qpid-config tool. This exercises most of the QMF2 API + and is probably a good bet to see how things work if you want to use the API in your own projects. +QpidCtrl: Is a Java port of the qpid-ctrl tool found in qpid/cpp/src/tests. This is a little known, but useful + little tool that lets one send low-level QMF constructs from the command line. The JavaDoc is the + best place to look for example usage. +QpidPrintEvents: Is a Java port of the Python qpid-printevents and illustrates the asynchronous delivery + of QMF2 notification events. +QpidQueueStats: Is a Java port of the Python qpid-queue-stats. This was written mainly to illustrate the use + of the QMF2 "QuerySubscription" API that lets one specify how to be asynchronously notified + of changes to QMF Management Objects matching a specified set of criteria. +ConnectionAudit: Is a tool that allows one to audit connections to one or more Qpid brokers. It uses QMF + Events to identify when connections have been made to a broker and if so it logs information + about the connection. A whitelist can be specified to flag connections that you don't + want to have logged (e.g. ones that you like). +ConnectionLogger: Is similar to ConnectionAudit but a bit simpler this tool just logs connections being made + the tool is mainly there to illustrate how to dereference the associations between the + various QMF Management Objects (Connection, Session, Subscription, Queue, Binding Exchange etc.) +QueueFuse: Is a tool that monitors QMF Events looking for a QueueThresholdExceeded, which occurs when a queue + gets more than 80% full. When this Event occurs the tool sends a QMF method to "purge" 10% of the + messages off the offending queue, i.e. it acts rather like a fuse. It's mainly a bit of a toy, but + it's a pretty good illustration of how to trigger QMF method invocation from QMF Events. It would + be pretty easy to modify this to redirect messages to a different queue if a particular queue fills. +QpidRestAPI: This is a Web Service that exposes QMF2 via a REST API see "The GUI" section below. + +************************************************* The GUI ************************************************* + +There is a fairly comprehensive Web based GUI available for Qpid that works with the C++ Broker and also the +Java Broker if the QMF plugin has been installed (see README-Java-Broker.txt). + +The GUI is in the form of a pure client side "single page" Web App written in JavaScript that uses the +QpidRestAPI to proxy the QMF API. QpidRestAPI also serves up the GUI. + +There is comprehensive JavaDoc for the QpidRestAPI, the most useful classes to look at are: +QpidRestAPI: This describes the various command line options available. +QpidServer: This provides documentation for the actual REST API itself, in effect the REST mapping for QMF + +QpidRestAPI provides a fairly complete REST mapping for QMF, it was primarily written as the back-end to +the GUI, but there's no reason why it couldn't be used in its own right. + + +To get started, the simplest and probably most common use case can be kicked of simply by firing up the +REST API via: +./QpidRestAPI + +This will bind the HTTP port to 8080 on the "wildcard" address (0.0.0.0). The QMF connection will default to +the host that QpidRestAPI is running on and use the default AMQP port 5672. + +If you point a Browser to :8080 the GUI should start up asking for a User Name and Password, the +defaults for those are the rather "traditional" admin admin. + + +If you have a non-trivial broker set-up you'll probably see "Failed to Connect", which is most likely due +to having authentication enabled (you can check this by firing up the C++ broker using qpidd --auth no) + + +There are a few ways to configure the Brokers that you can control via the GUI: +The first way is to specify the -a (or --broker-addr) command line option e.g. +./QpidRestAPI -a guest/guest@localhost + +This option accepts the Broker Address syntax used by the standard Python tools and it also accepts the +Java ConnectionURL syntax specified here (though to be honest the syntax used by the Python tools is simpler) +http://qpid.apache.org/releases/qpid-0.24/programming/book/QpidJNDI.html#section-jms-connection-url + + +This way of specifying the AMQP address of the default broker that you want to manage is probably the best +approach, but it is possible to add as many QMF Console Connections as you like by clicking +"Add QMF Console Connection" on the GUI Settings page. The popup lets you specify the Address URL such as +"guest/guest@host:5672" - again it also accepts the JMS Connection URLs, though I only use them if I'm +doing a copy/paste of an existing Connection URL. +The Name is simply a "friendly name" that you want to use to identify a particular Broker. + + +Clearly if you want to be able to manage a number of brokers you'd probably prefer not to have to enter +them every time you fire up the GUI - particularly because the list gets wiped if you hit refresh :-) + +The good news is that the initial set of Console Connections is configurable via the file: +qpid/tools/src/java/bin/qpid-web/web/ui/config.js + + +This is a simple JSON file and it contains example Console Connection configuration including a fairly complex one + +If you use this mechanism to configure the GUI you can quickly switch between however many Brokers +you'd like to be able to control. + + +As mentioned above the default User Name and Password are admin and admin, these are set in the file +qpid/tools/src/java/bin/qpid-web/authentication/account.properties + + +It's worth pointing out that at the moment authentication is limited to basic uthentication. This is mainly +due to lack of time/energy/motivation to do anything fancier (I only tend to use it on a private network) +I also had a need to minimise dependencies, so the Web Server is actually based on the Java 1.6 +com.sun.net.httpserver Web Server. + + +In practice though basic authentication shouldn't be as much of a restriction as it might sound especially +if you're only managing a single Broker. + +When one fires up QpidRestAPI with the -a option the Broker connection information does not pass between the +GUI and the QpidRestAPI so it's ultimately no less secure than using say qpid-config in this case though +note that if one configures multiple Brokers via config.js the contents of that file get served to the GUI +when it gets loaded so you probably want to restrict use of the GUI to the same network you'd be happy to +run qpid-config from. -The Qpid Java jar needs to be on your classpath - I tend to use qpid-all.jar but client only jars should be OK too. -QMF2 support is now available for the Qpid Java Broker see README-Java-Broker.txt for details. @@ -87,7 +238,3 @@ to put the patched AMQMessageDelegate_0_ call the various test and tool classes. - - - - Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/AgentExternal.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/AgentExternal.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/AgentExternal.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/AgentExternal.java Thu Jan 23 10:15:46 2014 @@ -35,7 +35,7 @@ import org.apache.qpid.qmf2.common.QmfEx /** * The AgentExternal class must be used by those applications that implement the external store model described in - * QMF2 API Proposal. + * QMF2 API Proposal. *

* The AgentExternal class extends the Agent class by adding interfaces that notify the application when it needs to * service a request for management operations from the agent. Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/MethodCallWorkItem.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/MethodCallWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/MethodCallWorkItem.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/MethodCallWorkItem.java Thu Jan 23 10:15:46 2014 @@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl import org.apache.qpid.qmf2.common.WorkItem; /** - * Descriptions below are taken from QMF2 API Proposal + * Descriptions below are taken from QMF2 API Proposal *

  * METHOD_CALL: The METHOD_CALL WorkItem describes a method call that must be serviced by the application on 
  *              behalf of this Agent.

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/QueryWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/QueryWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/QueryWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/QueryWorkItem.java Thu Jan 23 10:15:46 2014
@@ -28,7 +28,7 @@ import org.apache.qpid.qmf2.common.QmfQu
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * QUERY: The QUERY WorkItem describes a query that the application must service. The application should call the 
  *        queryResponse() method for each object that satisfies the query. When complete, the application must call the 

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/ResubscribeRequestWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/ResubscribeRequestWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/ResubscribeRequestWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/ResubscribeRequestWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * RESUBSCRIBE_REQUEST: The RESUBSCRIBE_REQUEST is sent by a Console to renew an existing subscription.  The Console may 
  *                      request a new duration for the subscription, otherwise the previous lifetime interval is repeated.

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/SubscribeRequestWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/SubscribeRequestWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/SubscribeRequestWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/SubscribeRequestWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * SUBSCRIBE_REQUEST: The SUBSCRIBE_REQUEST WorkItem provides a query that the agent application must periodically
  *                    publish until the subscription is cancelled or expires. On receipt of this WorkItem, the

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/UnsubscribeRequestWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/UnsubscribeRequestWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/UnsubscribeRequestWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/agent/UnsubscribeRequestWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * UNSUBSCRIBE_REQUEST: The UNSUBSCRIBE_REQUEST is sent by a Console to terminate an existing subscription. The Agent 
  *                      application should terminate the given subscription if it exists, and cancel sending any further 

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/QmfQuery.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/QmfQuery.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/QmfQuery.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/QmfQuery.java Thu Jan 23 10:15:46 2014
@@ -42,7 +42,7 @@ import org.apache.qpid.messaging.util.Ad
  * instances accepted by the filter will be returned in response to the query.
  * 

* N.B. There appear to be a number of differences in the description of the map encoding of a Query between the - * QMF2 API specified at QMF2 API Proposal and the + * QMF2 API specified at QMF2 API Proposal and the * QMF2 protocol that is specified at QMF Map * Message Protocol in particular the use of the underscore to specify key names e.g. "_what", "_where", * "_object_id", "_schema_id". @@ -211,7 +211,7 @@ public final class QmfQuery extends QmfD /** * Undefined by QMF2 API. *

- * According to QMF2 API Specification + * According to QMF2 API Specification * "The value of the map entry is ignored for now, its use is TBD." * so this method returns a null Map. */ Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaEventClass.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaEventClass.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaEventClass.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaEventClass.java Thu Jan 23 10:15:46 2014 @@ -35,7 +35,7 @@ import java.util.Map; * time. However, once the Schema is made public, it must be considered immutable, as the hash value * must be constant once the Schema is in use. *

- * Note that QMF2 API suggests that the + * Note that QMF2 API suggests that the * properties are represented by an unordered map of SchemaProperty entries indexed by property name, however * these are actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY elements that describe the * schema event's properties. @@ -141,7 +141,7 @@ public final class SchemaEventClass exte /** * Return Schema Object's properties. *

- * Note that QMF2 API suggests that + * Note that QMF2 API suggests that * the properties are represented by an unordered map of SchemaProperty indexed by property name however it * is actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY elements that describe the * schema objects's properties. In this implementation getProperties() returns a List Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaMethod.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaMethod.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaMethod.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaMethod.java Thu Jan 23 10:15:46 2014 @@ -30,7 +30,7 @@ import java.util.Map; /** * The SchemaMethod class describes a method call's parameter list. *

- * Note that QMF2 API suggests that + * Note that QMF2 API suggests that * the parameter list is represented by an unordered map of SchemaProperty entries indexed by parameter name, * however is is actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY elements that describe * the method's arguments". @@ -95,7 +95,7 @@ public final class SchemaMethod extends * Construct a SchemaMethod from a map of "name": entries and description. * * Note this Constructor is the one given in the QMF2 API specification at - * QMF2 APINote too that this method does not + * QMF2 APINote too that this method does not * set a name so setName() needs to be called explicitly by clients after construction. * * @param args a Map of "name": entries. @@ -153,7 +153,7 @@ public final class SchemaMethod extends /** * Return the Method's arguments. *

- * QMF2 API suggests that + * QMF2 API suggests that * the parameter list is represented by an unordered map of SchemaProperty entries indexed by parameter name, * however is is actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY elements that describe * the method's arguments". In this implementation getArguments() returns a List reflecting the Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaObjectClass.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaObjectClass.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaObjectClass.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaObjectClass.java Thu Jan 23 10:15:46 2014 @@ -37,7 +37,7 @@ import java.util.Map; * at run time. However, once the Schema is made public, it must be considered immutable, as the hash value * must be constant once the Schema is in use. *

- * Note that QMF2 API suggests that + * Note that QMF2 API suggests that * the properties and methods are represented by an unordered map of SchemaProperty or SchemaMethod entries indexed by * property or method name, however these are actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY * and "List of SCHEMA_METHOD" elements that describe the schema objects's properties and methods". In this @@ -148,7 +148,7 @@ public final class SchemaObjectClass ext /** * Return Schema Object's properties. *

- * Note that QMF2 API suggests that + * Note that QMF2 API suggests that * the properties are represented by an unordered map of SchemaProperty indexed by property name, however it * is actually represented in the QMF2 protocol as a "List of SCHEMA_PROPERTY elements that describe the * schema objects's properties. In this implementation getProperties() returns a List @@ -200,7 +200,7 @@ public final class SchemaObjectClass ext /** * Return Schema Object's methods. *

- * Note that QMF2 API suggests that + * Note that QMF2 API suggests that * the methods are represented by an unordered map of SchemaMethod indexed by method name, however it * is actually represented in the QMF2 protocol as a "List of SCHEMA_METHOD elements that describe the * schema objects's methods. In this implementation getMethods() returns a List Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaProperty.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaProperty.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaProperty.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/SchemaProperty.java Thu Jan 23 10:15:46 2014 @@ -39,7 +39,7 @@ import org.apache.qpid.messaging.util.Ad * Once instantiated, the SchemaProperty is immutable. *

* Note that there appear to be some differences between the fields mentioned in - * QMF2 API propsal and + * QMF2 API propsal and * QMF2 Map Message protocol. * I've gone with what's stated in the protocol documentation as this seems more accurate, at least for Qpid 0.10 * Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/WorkItem.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/WorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/WorkItem.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/common/WorkItem.java Thu Jan 23 10:15:46 2014 @@ -27,7 +27,7 @@ import java.util.Map; import org.apache.qpid.qmf2.console.Agent; /** - * Descriptions below are taken from QMF2 API Proposal + * Descriptions below are taken from QMF2 API Proposal *

* A WorkItem describes an event that has arrived for the application to process. *

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentAddedWorkItem.java URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentAddedWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff ============================================================================== --- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentAddedWorkItem.java (original) +++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentAddedWorkItem.java Thu Jan 23 10:15:46 2014 @@ -21,7 +21,7 @@ package org.apache.qpid.qmf2.console; /** - * Descriptions below are taken from QMF2 API Proposal + * Descriptions below are taken from QMF2 API Proposal *

  * AGENT_ADDED: When the QMF Console receives the first heartbeat from an Agent, an AGENT_ADDED WorkItem
  *              is pushed onto the work-queue. The WorkItem's getParam() call returns a map which contains

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentDeletedWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentDeletedWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentDeletedWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentDeletedWorkItem.java Thu Jan 23 10:15:46 2014
@@ -21,7 +21,7 @@
 package org.apache.qpid.qmf2.console;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * AGENT_DELETED: When a known Agent stops sending heartbeat messages, the Console will time out that Agent.
  *                On Agent timeout, an AGENT_DELETED WorkItem is pushed onto the work-queue. The WorkItem's

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentHeartbeatWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentHeartbeatWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentHeartbeatWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentHeartbeatWorkItem.java Thu Jan 23 10:15:46 2014
@@ -21,7 +21,7 @@
 package org.apache.qpid.qmf2.console;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * AGENT_HEARTBEAT: When the QMF Console receives heartbeats from an Agent, an AGENT_HEARTBEAT WorkItem
  *                  is pushed onto the work-queue. The WorkItem's getParam() call returns a map which contains

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentRestartedWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentRestartedWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentRestartedWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/AgentRestartedWorkItem.java Thu Jan 23 10:15:46 2014
@@ -21,7 +21,7 @@
 package org.apache.qpid.qmf2.console;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * AGENT_RESTARTED: Sent when the QMF Console detects an Agent was restarted, an AGENT_RESTARTED WorkItem
  *                  is pushed onto the work-queue. The WorkItem's getParam() call returns a map which contains

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/EventReceivedWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/EventReceivedWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/EventReceivedWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/EventReceivedWorkItem.java Thu Jan 23 10:15:46 2014
@@ -26,7 +26,7 @@ import java.util.Map;
 import org.apache.qpid.qmf2.common.QmfEvent;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * EVENT_RECEIVED: When an Agent generates a QmfEvent an EVENT_RECEIVED WorkItem is pushed onto the work-queue.
  *                 The WorkItem's getParam() call returns a map which contains a reference to the Console Agent

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/MethodResponseWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/MethodResponseWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/MethodResponseWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/MethodResponseWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * METHOD_RESPONSE: The METHOD_RESPONSE WorkItem is generated in response to an asynchronous invokeMethod made
  *                  by a QmfConsoleData object.

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/ObjectUpdateWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/ObjectUpdateWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/ObjectUpdateWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/ObjectUpdateWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * OBJECT_UPDATE:  The OBJECT_UPDATE WorkItem is generated in response to an asynchronous refresh made by
  *                 a QmfConsoleData object.

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscribeResponseWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscribeResponseWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscribeResponseWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscribeResponseWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * SUBSCRIBE_RESPONSE: The SUBSCRIBE_RESPONSE WorkItem returns the result of a subscription request made by
  *                     this Console.  This WorkItem is generated when the Console's createSubscription() is

Modified: qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscriptionIndicationWorkItem.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscriptionIndicationWorkItem.java?rev=1560618&r1=1560617&r2=1560618&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscriptionIndicationWorkItem.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/tools/src/java/src/main/java/org/apache/qpid/qmf2/console/SubscriptionIndicationWorkItem.java Thu Jan 23 10:15:46 2014
@@ -27,7 +27,7 @@ import org.apache.qpid.qmf2.common.Handl
 import org.apache.qpid.qmf2.common.WorkItem;
 
 /**
- * Descriptions below are taken from QMF2 API Proposal 
+ * Descriptions below are taken from QMF2 API Proposal 
  * 
  * SUBSCRIPTION_INDICATION: The SUBSCRIPTION_INDICATION WorkItem signals the arrival of an update to subscribed
  *                          data from the Agent. 



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