There are many interesting possible extensions to Smack that wouldn’‘t really fit in the core, but would be perfect as add-ons. I thought I’'d list a few of my ideas, and ideas from anyone else are welcome.
XPath Packet Filter. Have a packet filter where the filtering criteria is an xpath expression. The easy way to implement this would be to call toXML() on the packet, create a new Dom4J document using the text, then use Dom4J’'s XPath support.
XML-RPC support. XML RPC provides a mechanism to do remote procedure calls through XML. A JEP (Jabber Enhancement Proposal) exists to add XML-RPC payloads in Jabber IQ packets. It should be relatively simple to use the Apache XML-RPC library (http://xml.apache.org/xmlrpc) to support this JEP. In fact, code from the book “Programming Jabber” should be largely applicable.