@Override
    public void writeExternal(ObjectOutput out) throws IOException {
        ExternalizableUtil.getInstance().writeSafeUTF(out, username);
        ExternalizableUtil.getInstance().writeExternalizableMap(out, rosterItems);
        ExternalizableUtil.getInstance().writeStringsMap(out, implicitFrom);
    }
Generates a hash code based on only those fields that are relevant for Roster Versioning (as defined in RFC 6121 section 2.6).

@return A hash code
xmppserver/src/main/java/org/jivesoftware/openfire/roster/Roster.java