powered by Jive Software

Smack extensibility

I have modified Smack to run on Eclipse/OSGi (see http://eclipsefaq.org for background). The trivial approach is well, trivial. Just wrapper the smack jars in the appropriate markup and away you go. To get the most out of it some restructuring is needed.

Smack and XMPP seem like prime candidates for being based on a component runtime like OSGi/Eclipse. There is a core messaging structure and then many additional pieces of function plugged in on top to implement the various JEPs. This maps quite nicely onto Eclipse plugins/bundles.

I used this approach to modularize out the MUC support and then allow it to be automatically dynamically added in when a MUC related message is received. Seems like lots of the JEPs could be handled this way.

It also helps with the configuration. For example I want JEP X but not Y and X requires W etc etc.

So my question is, what it the extensibility story for Smack? I have seen a couple of issues with “plugin” in the titles but not looked too deeply.

I’'d be more than happy to talk about what I did and what the possibilities are if there is interest.