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

    ComponentInfo that = (ComponentInfo) o;

    if (deleted != that.deleted) return false;
    if (autoDeploy != null ? !autoDeploy.equals(that.autoDeploy) : that.autoDeploy != null) return false;
    if (cardinality != null ? !cardinality.equals(that.cardinality) : that.cardinality != null) return false;
    if (versionAdvertisedField != null ? !versionAdvertisedField.equals(that.versionAdvertisedField) : that.versionAdvertisedField != null) return false;
    if (versionAdvertisedInternal != that.versionAdvertisedInternal) return false;
    if (decommissionAllowed != null ? !decommissionAllowed.equals(that.decommissionAllowed) : that.decommissionAllowed != null) return false;
    if (unlimitedKeyJCERequired != null ? !unlimitedKeyJCERequired.equals(that.unlimitedKeyJCERequired) : that.unlimitedKeyJCERequired != null) return false;
    if (reassignAllowed != null ? !reassignAllowed.equals(that.reassignAllowed) : that.reassignAllowed != null) return false;
    if (category != null ? !category.equals(that.category) : that.category != null) return false;
    if (clientConfigFiles != null ? !clientConfigFiles.equals(that.clientConfigFiles) : that.clientConfigFiles != null)
      return false;
    if (commandScript != null ? !commandScript.equals(that.commandScript) : that.commandScript != null) return false;
    if (logs != null ? !logs.equals(that.logs) : that.logs != null) return false;
    if (configDependencies != null ? !configDependencies.equals(that.configDependencies) : that.configDependencies != null)
      return false;
    if (customCommands != null ? !customCommands.equals(that.customCommands) : that.customCommands != null)
      return false;
    if (bulkCommandDefinition != null ? !bulkCommandDefinition.equals(that.bulkCommandDefinition) : that.bulkCommandDefinition != null)
      return false;
    if (dependencies != null ? !dependencies.equals(that.dependencies) : that.dependencies != null) return false;
    if (displayName != null ? !displayName.equals(that.displayName) : that.displayName != null) return false;
    if (name != null ? !name.equals(that.name) : that.name != null) return false;
    if (clientConfigFiles != null ? !clientConfigFiles.equals(that.clientConfigFiles) :
        that.clientConfigFiles != null) return false;
    if (customFolder != null ? !customFolder.equals(that.customFolder) : that.customFolder != null) return false;

    return true;
  }
Determine if this component advertises a version. This Boolean has already resolved to true|false depending
on explicitly overriding the value or inheriting from an ancestor.
@return boolean of whether this component advertises a version.
ambari-server/src/main/java/org/apache/ambari/server/state/ComponentInfo.java