@Override
        public int hashCode() {
            // Note this is sub-optimal, but not an issue for the relatively low number of plugins Openfire will have
            // installed. It is necessary because of the Java equals/hashCode contract - two equals objects must have
            // the same hash code - but we don't know if the objects are equal because the share the same canonical name
            // or the same plugin name.
            return 0;
        }
Two plugins are considered "equal" if they share the same canonical name, <strong>or</strong> the same
name from the plugin.xml file. This class represents a plugin that could be loaded to encapsulate this concept
<p>
    Note: this class has a natural ordering that is inconsistent with equals.
</p>
xmppserver/src/main/java/org/jivesoftware/openfire/container/PluginMonitor.java