I want to incorporate instant messaging into my app. It doesn't really matter what protocol I use as long as it meets these criteria:

1. The protocol is unencumbered by patents or copyrights;
2. There are free public servers available;
3. There is a free Java library under a BSD, Apache, or similar license.

I'm thinking XMPP might fit the bill, but are there any others?