Primary source modules
Each of these modules would have an isolated source location and an independent release cycle.
qpid-proton (existing)
- Proton messaging API
- Source at https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git
qpid-dispatch (existing)
- Dispatch server library
- Dispatch router
- Depends on qpid-proton
- Source at https://svn.apache.org/repos/asf/qpid/dispatch/
qpid-jms (existing)
- AMQP 1.0 JMS
- Depends on qpid-proton
- Source at https://git-wip-us.apache.org/repos/asf?p=qpid-jms.git
qpid-python (proposed)
- Pure-Python AMQP 0-10 Qpid Messaging API
- Legacy client API, used by broker tests
- 0-8, 0-9, 0-10, 1.0 broker tests (to be moved here from qpid-tests)
- Current source location at https://svn.apache.org/repos/asf/qpid/trunk/qpid/python/
- Proposed source location at http://svn.apache.org/repos/asf/qpid/python
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)
- Java broker / common / client (0-8..0-10)
- Current source location at https://svn.apache.org/repos/asf/qpid/trunk/qpid/java
- Proposed source location at http://svn.apache.org/repos/asf/qpid/java
- In addition:
- the Java docbooks (those relating to Java Broker, Java Client 0-8..0-10 and the PerfTest framework) to beneath the new root. (Not sure what will happen to 'Programming in Apache Qpid', as its content is shared)
- a copy of specs
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)
- Java QMF tools
- Current source location https://svn.apache.org/repos/asf/qpid/trunk/qpid/tools/src/java/
- Proposed source location at http://svn.apache.org/repos/asf/qpid/java-qmf
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