container/src/main/java/com/streamsets/datacollector/util/Version.java
public int compare(Version other) {
    int maxParts = Math.max(this.versions.length, other.versions.length);
    for(int i = 0; i < maxParts; i++) {
      int eq = this.getVersionPosition(i) - other.getVersionPosition(i);
      if(eq != 0) {
        if(eq > 0) {
          return 1;
        } else {
          return -1;
        }
      }
    }

    return 0;
  }
public int compare(Version other) {
    int maxParts = Math.max(this.versions.length, other.versions.length);
    for(int i = 0; i < maxParts; i++) {
      int eq = this.getVersionPosition(i) - other.getVersionPosition(i);
      if(eq != 0) {
        if(eq > 0) {
          return 1;
        } else {
          return -1;
        }
      }
    }

    return 0;
  }
Actual comparison with the same semantics as compareTo() method.