Primary source modules

Each of these modules would have an isolated source location and an independent release cycle.

qpid-proton (existing)
qpid-dispatch (existing)
qpid-jms (existing)
qpid-python (proposed)

The main change here is the merging of the pure-Python client code and the test code.  These are already very intimately linked: "qpid-python-test" currently lives in the python subtree, and the pre-1.0 tests use the old Python client.

In effect, this changes the focus of the qpid-python module from being a messaging API to being a legacy test suite for AMQP versions before 1.0.  The current API would remain, but future effort for Python APIs would go into the wrapped C++ Messaging and Proton APIs, which support AMQP 1.0.

qpid-cpp (proposed)
  • C++ broker
  • Qpid Messaging API (except pure-Python variant)
  • Qpid Messaging API tests (moved here from qpid-tests)
  • Python QMF libs and tools (moved here from qpid-tools, -qmf)
  • Depends on qpid-python for broker tests
  • Depends on qpid-proton for AMQP 1.0 support
  • Current source location at https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp
  • Proposed source location at http://svn.apache.org/repos/asf/qpid/cpp
  • Use semantic versioning, starting at 1.35.0 (approximately), after 0.34

The change here is moving Python QMF and related tools with the C++ code.  These are generally tightly coupled to the C++ broker.  Future management work will be achieved not via QMF but instead using the AMQP Management specification.

In the future, it may be attractive to move the messaging API into its own module.

qpid-java (proposed)

It is anticipated that eventually, the java broker will be split from (what will become) the legacy Java client (0-8..0-10).  These will become two separate nodes at the top of the tree.  At that point a move to git will be considered.

java-qmf (proposed)

 

Refactored modules

  • qpid-tests - Becomes part of qpid-python
  • qpid-tools - Python tools becomes part of qpid-cpp (Python tools). Java tools becomes java-qmf tools
  • qpid-qmf - (This is just console.py) becomes part of qpid-cpp
  • qpid-specs - Already pulled into qpid-cpp, -java, -python where needed

Potential future additions

  • qpid-interop - A new top-level component that uses the qpid-proton and qpid-jms APIs to test interoperability and conformance of AMQP 1.0 clients and intermediaries; this would be the latter-day version of qpid-tests, focused on AMQP 1.0
  • qpid-messaging-api - This would be broken out from the qpid-cpp tree; it might make sense to make it a 1.0-only variant of the messaging API
  • qpid-management - An implementation of the AMQP Management specification

Previous discussion

  • No labels