James Strachan wrote:
The desire is to share code - partlcularly the low level Qpid framing
code. We're all Apache folk afterall and projects are meant to work
together & share code where it makes sense to do so.

Ideally qpid and ActiveMQ would share a large chunk of ocde for the
AMQP framing stuff; though right now its hard to do that as qpid is
not terribly easy to reuse and is based on MINA and ActiveMQ has its
own transport framework.

I agree, sharing code is ideal. The qpid proposal included reusable libraries as an objective and this seems sensible in the effort to promote AMQP and interoperability.

Right now the feedback seems to be that the code is mainly useful as 'seed' code for a fork. Forks are clearly not ideal as they dilute the collective effort, but sometimes they may be inevitable due to different long term needs/aims or lack of short term resources to make more minor adjustments to satisfy all needs.

The second reason certainly applies here and perhaps the first one does as well. Regardless, moving to a more componentized code base for qpid is desirable and will happen (though perhaps not fast enough for everyone).

On more specific issues, the main obstacle in reuse of the framing layer is I believe the coupling to Mina. As stated in an earlier mail, I think there will always be different needs here: jdk ByteBuffer, mina ByteBuffer, Data- Input/Output. As a lot of the code here is already generated, we may be able when time allows, to address all needs through different (or parameterized) templates.

At a higher level, e.g. the various exchange classes, there seem to be less changes between the codebases now (mainly just repackaging?) so maybe there we can more easily share in the short term.

Finally: Good job, Hiram, your work and feedback has been valuable in opening up the discussion and giving food for thought! Thanks also for keeping us in the loop with all your changes, much appreciated.

Reply via email to