code: public String getMinimumVersionForMissingProduct(String productId, String version, String edition) {
          Collection<LibertyVersionRange> filteredRanges = filterVersionRanges(productId, edition);
          Collection<LibertyVersion> minimumVersions = new HashSet<LibertyVersion>();
          for (LibertyVersionRange range : filteredRanges) {
              minimumVersions.add(range.getMinVersion());
          }
          Collection<LibertyVersion> filteredVersions = filterVersions(minimumVersions, version);
          LibertyVersion minimumVersion = null;
          for (LibertyVersion potentialNewMinVersion : filteredVersions) {
              if (minimumVersion == null || potentialNewMinVersion.compareTo(minimumVersion) < 0) {
                  minimumVersion = potentialNewMinVersion;
              }
          }
          return minimumVersion == null ? null : minimumVersion.toString();
      }
docs: This will iterate through the products that couldn't be found as supplied by {@link #getMissingProducts()} and look for the minimum version that was searched for. It will
  limit it to products that match the supplied <code>productId</code>, major, minor and micro <code>version</code>, and <code>edition</code>. Note that if the minimum version
  on a {@link ProductRequirementInformation} is not in the form digit.digit.digit.digit then it will be ignored.
  
  @param productId The product ID to find the minimum missing version for or <code>null</code> to match to all products
  @param version The version to find the minimum missing version for by matching the first three parts so if you supply "9.0.0.0" and this item applies to version "8.5.5.3"
  and "9.0.0.1" then "9.0.0.1" will be returned. Supply <code>null</code> to match all versions
  @param edition The edition to find the minimum missing version for or <code>null</code> to match to all products
  @return The minimum missing version or <code>null</code> if there were no relevant matches