On 12/06/13 11:52, Pratik Paranjape wrote:
I think a better way will be to insist on a loosely-coupled component based
architecture connected through a message bus. the problem with the current
code is the the tight coupling. If we manage to get a message bus working,
everyone can use their favorite language on JVM to re-implement the part
they like..and we will even be able to reuse the parts of code.
There is an existing message bus for wavelet changes - check out the
WaveletFederationListener / WaveletFederationProvider interfaces.
I think the most daunting thing is that it's not easy to see which of
the existing interfaces are used for "module" boundaries, and which are
internal to a given "module".
I.e. a new federation module can be implemented by new implementations
of those two interfaces (plus FederationTransport), and then using Guice
to bind the new implementations instead. But it takes a bit of reading
the code to distinguish these interfaces from i.e.
IncommingPacketHandler / OutgoingPacketTransport - which are internal to
the xmpp-component based federation implementation.
At least in this case, separating the code into logical modules and a
wee bit of code structure documentation would make it a lot easier for
new devs to jump in.
Dave