Skip to content

Commit

Permalink
Merge pull request #46578 from gsmet/reduce-DefaultArtifactVersion-ex…
Browse files Browse the repository at this point in the history
…posure

Reduce our exposure to DefaultArtifactVersion
  • Loading branch information
gastaldi authored Mar 3, 2025
2 parents f875e4b + d2f53ad commit 335c4a9
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,18 @@
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;

import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Scm;
import org.apache.maven.plugin.AbstractMojo;
Expand Down Expand Up @@ -550,8 +557,13 @@ private static String toVersionRange(String version) {
if (version == null) {
return null;
}
DefaultArtifactVersion dav = new DefaultArtifactVersion(version);
return "[" + dav.getMajorVersion() + "." + dav.getMinorVersion() + ",)";

// we don't use DefaultArtifactVersion here as it doesn't support 4 dotted number parts
// we might get rid of this version scheme but let's make sure we support it just in case
String[] versionItems = version.split("-");
versionItems = versionItems[0].split("\\.");

return "[" + versionItems[0] + "." + (versionItems.length > 1 ? versionItems[1] : "0") + ",)";
}

private void ensureArtifactCoords(ObjectNode extObject) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
import javax.lang.model.SourceVersion;

import org.apache.commons.lang3.StringUtils;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.ComparableVersion;
import org.apache.maven.model.Model;

import io.quarkus.devtools.codestarts.extension.QuarkusExtensionCodestartCatalog;
Expand Down Expand Up @@ -355,7 +355,7 @@ public CreateExtensionCommandHandler prepare() throws QuarkusCommandException {
final Optional<String> quarkusVersion = data.getStringValue(QUARKUS_VERSION);
// in 2.10.0.CR1 quarkus-bootstrap-maven-plugin was deprecated in favor of quarkus-extension-maven-plugin
if (quarkusVersion.isPresent() &&
new DefaultArtifactVersion("2.10.0.CR1").compareTo(new DefaultArtifactVersion(quarkusVersion.get())) > 0) {
new ComparableVersion("2.10.0.CR1").compareTo(new ComparableVersion(quarkusVersion.get())) > 0) {
// the legacy bootstrap plugin, if MAVEN_QUARKUS_EXTENSION_PLUGIN isn't set, it will default to the quarkus-extension-maven-plugin
data.putIfAbsent(MAVEN_QUARKUS_EXTENSION_PLUGIN, "quarkus-bootstrap-maven-plugin");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.ComparableVersion;
import org.eclipse.aether.artifact.Artifact;

import io.quarkus.bootstrap.resolver.maven.BootstrapMavenException;
Expand Down Expand Up @@ -173,9 +173,9 @@ public String getRewritePluginVersion() {

static boolean shouldApplyRecipe(String recipeFileName, String currentVersion, String targetVersion) {
String recipeVersion = VERSION_EXTRACTION_PATTERN.matcher(recipeFileName).replaceFirst("");
final DefaultArtifactVersion recipeAVersion = new DefaultArtifactVersion(recipeVersion);
final DefaultArtifactVersion currentAVersion = new DefaultArtifactVersion(currentVersion);
final DefaultArtifactVersion targetAVersion = new DefaultArtifactVersion(targetVersion);
final ComparableVersion recipeAVersion = new ComparableVersion(recipeVersion);
final ComparableVersion currentAVersion = new ComparableVersion(currentVersion);
final ComparableVersion targetAVersion = new ComparableVersion(targetVersion);
return currentAVersion.compareTo(recipeAVersion) < 0 && targetAVersion.compareTo(recipeAVersion) >= 0;
}

Expand Down Expand Up @@ -276,9 +276,9 @@ private static class RecipeVersionComparator implements Comparator<Path> {

@Override
public int compare(Path recipePath1, Path recipePath2) {
DefaultArtifactVersion recipeVersion1 = new DefaultArtifactVersion(
ComparableVersion recipeVersion1 = new ComparableVersion(
VERSION_EXTRACTION_PATTERN.matcher(recipePath1.getFileName().toString()).replaceFirst(""));
DefaultArtifactVersion recipeVersion2 = new DefaultArtifactVersion(
ComparableVersion recipeVersion2 = new ComparableVersion(
VERSION_EXTRACTION_PATTERN.matcher(recipePath2.getFileName().toString()).replaceFirst(""));

return recipeVersion1.compareTo(recipeVersion2);
Expand Down

0 comments on commit 335c4a9

Please sign in to comment.