@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    ModuleComponent that = (ModuleComponent) o;

    if (id != null ? !id.equals(that.id) : that.id != null) return false;
    if (name != null ? !name.equals(that.name) : that.name != null) return false;
    if (category != null ? !category.equals(that.category) : that.category != null) return false;
    if (isExternal != null ? !isExternal.equals(that.isExternal) : that.isExternal != null) return false;
    return version != null ? version.equals(that.version) : that.version == null;
  }
The owning module for this module component.
ambari-server/src/main/java/org/apache/ambari/server/state/ModuleComponent.java