@Override
    public Collection<User> getUsers(int startIndex, int numResults) {
        Collection<String> usernames = getUsernames(startIndex, numResults);
        return new UserCollection(usernames.toArray(new String[usernames.size()]));
    }
Default implementation of the UserProvider interface, which reads and writes data
from the {@code ofUser} database table.<p>

Passwords can be stored as plain text, or encrypted using Blowfish. The
encryption/decryption key is stored as the Openfire property {@code passwordKey},
which is automatically created on first-time use. It's critical that the password key
not be changed once created, or existing passwords will be lost. By default
passwords will be stored encrypted. Plain-text password storage can be enabled
by setting the Openfire property {@code user.usePlainPassword} to {@code true}.

@author Matt Tucker
xmppserver/src/main/java/org/jivesoftware/openfire/user/DefaultUserProvider.java