EmiteGWT/emite — pull request #32 by xose (2011-12-09 18:22:50+00:00)
Title: Events and API updates

These are 4 months worth of updates and improvements to the Emite library for my end of degree project.

* New event system: now using the general-purpose EventBus instead of the HandlerManager meant to be used for UI events. Code is cleaner and faster
* API changes: update many APIs, mostly for consistency. All changes should be small and straightforward, requiring only some renames in most cases
* JavaDoc: I have rewritten most JavaDoc comments, and added JavaDoc generation to the pom
* Lots of internal updates and changes

These are the changes in more detail:

Event system:

* Now using the new EventBus from GWT 2.3+
* Single EventBus injected via GIN
* Anonymous event handlers have been moved to the classes themselves
* Updated the API of some *Event classes

Important API changes:

* Now using Guice
* New XML parsing and handling system written from scratch
* Updates to the XML stanza classes
* Stringprep support for validating XmppURIs
* Separate PairChat and RoomChat classes and managers implementation
* Improvements to PageAssist and AutoConfig
* Improvements to Discovery and Data Forms modules
* IQCallback now has separate success and error methods
* New "base" package for code not directly related to XMPP
* "client" removed from package names. It was too verbose and not needed
* Refactored platform-dependent code into a Platform class
* Some classes have been renamed for consistency
* SessionState, ConnectionState, ChatState have been renamed to *Status
* Converted most "static final String"s to enums
* Method and class visibility has been reduced when appropriate, to prevent exposing internals
* Added a XMPPNamespaces registry

This is not complete work; there are some changes that I wanted to implement before submitting the pull request, but couldn't due to time constraints. I will continue working on them after the holidays:

* The VCard module is currently not working (I've disabled it on the pom to allow Emite to build). I'm planning on rewriting it and integrating the Avatar module, renaming to vcard-temp
* Support for PubSub and PEP. This will allow many new XEP modules to be written, including vcard4 and the new avatar XEP
* Improvements to the SASL authentication module, including DIGEST-MD5 and SCRAM-SHA1 support
* Tests are currently broken. It's probably worth rewriting them instead of trying to fix them (maybe using Guiceberry?)
* Platform support is incomplete. This may require some changes on the build system. The goal is to allow Emite to work as a Java library as well as a GWT one
* I haven't updated Hablar yet. It should be straightforward to do though