@Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }

    if (o == null || getClass() != o.getClass()) {
      return false;
    }

    HostComponentStateEntity that = (HostComponentStateEntity) o;

    if (id != null ? !id.equals(that.id) : that.id != null) {
      return false;
    }

    if (clusterId != null ? !clusterId.equals(that.clusterId) : that.clusterId != null) {
      return false;
    }

    if (componentName != null ? !componentName.equals(that.componentName)
        : that.componentName != null) {
      return false;
    }

    if (currentState != null ? !currentState.equals(that.currentState)
        : that.currentState != null) {
      return false;
    }

    if (upgradeState != null ? !upgradeState.equals(that.upgradeState)
        : that.upgradeState != null) {
      return false;
    }

    if (hostEntity != null ? !hostEntity.equals(that.hostEntity) : that.hostEntity != null) {
      return false;
    }

    if (serviceName != null ? !serviceName.equals(that.serviceName) : that.serviceName != null) {
      return false;
    }

    if (version != null ? !version.equals(that.version) : that.version != null) {
      return false;
    }

    return true;
  }
Version reported by host component during last status update.
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java