private void findVersions(String fileName) {
    // this file is created by the gradle task :geode-old-versions:createGeodeClasspathsFile
    readVersionsFile(fileName, (version, path) -> {
      Optional<String> parsedVersion = parseVersion(version);
      if (parsedVersion.isPresent()) {
        if (parsedVersion.get().equals("1.4.0")
            && SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9)) {
          // Serialization filtering was added in 140, but the support for them in java 9+ was added
          // in 1.5.0. As a result, 1.4.0 servers and clients will fail categorically when run in
          // Java 9+ even with the additional libs (jaxb and activation) in the classpath
          System.err.println(
              "Geode version 1.4.0 is incompatible with Java 9 and higher.  Skipping this version.");
        } else {
          classPaths.put(parsedVersion.get(), path);
          testVersions.add(parsedVersion.get());
        }
      }
    });
    testVersions.sort(TestVersion::compare);
  }
Returns a list of testable versions sorted from oldest to newest

<p>
Note: if you need to compare version strings use {@link TestVersion#compare(String, String)} or
{@link TestVersion#equals}.

@return a list of testable versions sorted from oldest to newest
geode-junit/src/main/java/org/apache/geode/test/version/VersionManager.java