First, events:
We are moving from old Suco Event/Listener system (back in the old days of gwt) to the widely used (and soon standardized in GWT2.1) EventBus/GwtEvent and EventHandlers. The current trunk version have both systems (so I hope its possible to change to the new emite library without errors) and the old system is NOT yet @deprecated (but will be soon in next versions).
I will write a wiki guide as soon it's finished (currently it only affects to connection, session and chats), but its pretty straightforward. Instead of use onIncomingMessage we will use addIncomingMessageHandler, and instead of use Listener<Message> as parameter we will use a MessageHandler interface.
One instant benefit (apart from the fact that we move to a more gwt idiomatic code) is that now we can remove handlers (listeners).
Second, chat and rooms:
The bigger refactorings are in the Chat, Room, ChatManager and RoomManager, but mostly internals (so, again, if you don't do anything weird, you should not notice any change). The only outside difference (apart from the new event system implemented... the old one still works and is not deprecated) is that you can't create Chat and Room directly anymore (something that, I hope again, you are not doing). So if you write some code like:
chat = new PairChat(uri);
now you have to write:
chat = chatManager.open(uri);
The refactoring concerns to how chat and room managers choose the target chat from the incoming message. Basically, instead of look the chat/room by uri or occupant, we use a ChatProperties object. This allows to implement new selection strategies easily and use stanza extra-meta-data to choose one chat or another.
With the new event system, a new addErrorHandler method is added to Chat/Rooms (so we can know if something goes wrong inside...). Also Rooms are now interfaces, so I think the code and documentation will be more clear. A new method is added to rooms: addBeforeRoomInvitationSendHandler
2) Message contructors parameters now have the same order in all the constructor methods. Older versions are @deprecated
3) Two new classes: XmppConnection and XmppSession. If you are using Connection or Session, move to the new classes is recommended. The only difference is that both implements the new event systems and the rest of the interface is identical.
At this point, apart from the Connection package movement, the new library should be a ready-to-work replacement of the old one (but not yet recommended for production). There are some deprecations in order to get better method names... I think you will see by yourself as soon you try the new library.
In the near future, we will implement the new event system in the rest of the modules (probably next week) and then we will move from Suco to gin to manage IoC dependencies. Again, more widespread technologies will help (we hope) in the adoption of emite and the use of gin will reduce the size of the compiled output and give some performance improvements.
Any suggestion/feedback welcomed.
Saludos
Dani