As I'm writing this entry, we're in the last days before launching igniterealtime and I'm waxing nostalgic about the project that started all of our real-time efforts, Smack. It was four years ago that I looked around for a good Java XMPP client library and came up short. There were some other libraries out there, but most of them assumed that you already knew the in's and out's of the protocol and I was a full-on XMPP noob at the time. The goal for Smack simple: create an API easy enough to use that even someone like me could figure it out.
We've stuck with that focus in each subsequent Smack release, even as the functionality has grown richer and richer. In between torrid work on the next Wildfire and Spark releases, we've slipped in work on Smack 3.0 (partially with the generous help of community members Francisco and Gabriel). Some of the major changes that are coming:
Uses JDK 1.5 for cleaner syntax and simplified code.
Support for re-using an XMPPConnection when the TCP/IP connection fails, including an auto-reconnect feature.
Rounded out support of the XMPP RFC's through better error packet handling and privacy lists support.
Ability to listen for new chat requests, which I felt was one of the major remaining design flaws in the library (thanks Alex!).
Tons of bug fixes.
There's no planned release date yet, but we've been using the latest code in Spark for quite some time.
So, a taste for where it all started and where it's going. But the really interesting part for me is where Smack is being used. Have an interesting application of Smack? Please post a comment to tell us about it!