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.