Offer an alternative to loading the Roster on login
Currently, Smack requests the roster as part of the login() method. This often is convenient, but is annoying if a more light-weight connection is required.
We, for example, use Smack for automated tests which run frequently. Most of the tests have no need for the roster. Retrieving the roster for every login causes useless overhead for those tests.
An additional login() method that does not "pre-load" the roster would solve our issue. The roster should be loaded during the first call to getRoster() if it wasn't pre-loaded.
Diego provided an additional patch that should be applied to the source code to which the previous patch has already been applied.
Diego found a problem in the modification that we did. The Roster object should always be initialized, no matter if we want to pre-load the roster or not. This sets a listener, that we need to have regardless of the preload boolean.
I'm attaching Diego's patch.
I've got a patch to fix this but I don't have enough rights to attach it to this issue.