Skip to content

Commit

Permalink
Reduce our exposure to DefaultArtifactVersion
Browse files Browse the repository at this point in the history
It is quite buggy for now so let's not use it as most of the time it's
not necessary.

(cherry picked from commit d2f53ad)
  • Loading branch information
gsmet committed Mar 4, 2025
1 parent 9f0c348 commit 2dfa186
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 2dfa186

Please sign in to comment.