/** * Returns comparator that compares versions by distance to the base version. * @param base The base version. * @param versionParser Parser that will be used to parse the version. */ public VersionComparator(String base, VersionParser versionParser) { this.versionParser = versionParser; this.base = versionParser.parse(base); }
public VersionAnalysisResult analyseVersions(String querry, Collection<String> versions){ VersionComparator comparator = new VersionComparator(querry, versionParser); List<String> sortedVersions = new ArrayList<>(); List<SuffixedVersion> parsedVersions = versions.stream() .sorted(comparator) .distinct() .peek(v -> sortedVersions.add(v)) .map(versionParser::parse) .collect(Collectors.toList()); SuffixedVersion version = versionParser.parse(querry); Optional<String> bmv = findBiggestMatchingVersion(version, parsedVersions); return new VersionAnalysisResult(bmv, sortedVersions); }
@Override public SortedSet<BlackArtifact> getArtifacts(String groupId, String artifactId) { Comparator<BlackArtifact> baComparator = Comparator .comparing((BlackArtifact a) -> versionParser.parse(a.getVersion())); SortedSet<BlackArtifact> ret = new TreeSet<>(baComparator); ret.addAll(blackArtifactDAO.findArtifacts(groupId, artifactId)); return ret; } }
private Stream<String> getVersionsStream(GA ga) { if (!ga.isValid()) { log.warn("Received nonvalid GA: " + ga); return Stream.empty(); } try { return aproxConnector.getVersionsOfGA(ga).stream() .filter(v -> versionParser.parse(v).isSuffixed()) .distinct(); } catch (CommunicationException ex) { throw new ProductException(ex); } }
private Stream<String> getVersionsStream(GA ga, String repository) { if (!ga.isValid()) { log.warn("Received nonvalid GA: " + ga); return Stream.empty(); } try { return aproxConnector.getVersionsOfGA(ga, repository).stream() .filter(v -> versionParser.parse(v).isSuffixed()) .distinct(); } catch (CommunicationException ex) { throw new ProductException(ex); } }
@Override public Optional<BlackArtifact> getArtifact(String groupId, String artifactId, String version) { SuffixedVersion parsedVersion = versionParser.parse(version); Optional<BlackArtifact> artifact = blackArtifactDAO.findArtifact(groupId, artifactId, parsedVersion.unsuffixedVesion()); if (parsedVersion.isSuffixed() && !artifact.isPresent()) { artifact = blackArtifactDAO.findArtifact(groupId, artifactId, version); } return artifact; }
/** * Return information about first part of version that is different. */ public VersionDifference difference(String version1, String version2) { SuffixedVersion v1 = versionParser.parse(version1); SuffixedVersion v2 = versionParser.parse(version2); if (v1.getMajor() != v2.getMajor()) { return VersionDifference.MAJOR; } if (v1.getMinor() != v2.getMinor()) { return VersionDifference.MINOR; } if (v1.getMicro() != v2.getMicro()) { return VersionDifference.MICRO; } if (!v1.getQualifier().equals(v2.getQualifier())) { return VersionDifference.QUALIFIER; } if (!v1.getSuffix().equals(v2.getSuffix())) { return VersionDifference.SUFFIX; } if (!v1.getSuffixVersion().equals(v2.getSuffixVersion())) { return VersionDifference.RH_SUFFIX; } return VersionDifference.EQUAL; }
private WhiteArtifact createArtifact(String groupId, String artifactId, String version) { SuffixedVersion parsedVersion = versionParser.parse(version); final boolean is3rdParty = !parsedVersion.isSuffixed(); final String osgiVersion = VersionParser.getOSGiVersion(version); GA ga = gaDAO.findOrCreate(groupId, artifactId); WhiteArtifact a = new WhiteArtifact(ga, version, currentUser(), osgiVersion, is3rdParty); whiteArtifactDAO.create(a); return a; }
} else { if (parser.parse(dep.getVersion()).isSuffixed()) continue;