@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        HistoryStrategy that = (HistoryStrategy) o;
        return maxNumber == that.maxNumber && type == that.type
            && Objects.equals(contextPrefix, that.contextPrefix) && Objects.equals(contextSubdomain, that.contextSubdomain)
            && (roomSubject == that.roomSubject || (roomSubject != null && that.roomSubject != null && Objects.equals(roomSubject.toXML(), that.roomSubject.toXML())) )
            && Objects.equals(roomJID, that.roomJID) && Objects.equals(parent, that.parent);
    }
A wrapper for a collection of Message instances that is cached.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/HistoryStrategy.java