This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 00d243a92e [MNG-7978] Decouple maven-artifact from
maven-resolver-provider (#1352)
00d243a92e is described below
commit 00d243a92ea0fcbf3353d099ff551b068b04676a
Author: Tamas Cservenak <[email protected]>
AuthorDate: Wed Dec 20 14:03:35 2023 +0100
[MNG-7978] Decouple maven-artifact from maven-resolver-provider (#1352)
As it is actually not needed. This also "pulls in" all of VersionParser
into model version parser, so Core implementation now 100% just delegates over
there.
---
https://issues.apache.org/jira/browse/MNG-7978
---
.../org/apache/maven/internal/impl/DefaultArtifact.java | 3 ++-
.../org/apache/maven/internal/impl/DefaultDependency.java | 3 ++-
.../apache/maven/internal/impl/DefaultVersionParser.java | 11 +----------
.../maven/model/building/DefaultModelBuilderFactory.java | 6 ++++++
.../org/apache/maven/model/version/ModelVersionParser.java | 5 +++++
maven-resolver-provider/pom.xml | 4 ----
.../maven/repository/internal/ArtifactDescriptorUtils.java | 9 ++++-----
.../repository/internal/DefaultModelVersionParser.java | 13 +++++++++++++
.../repository/internal/DefaultVersionRangeResolver.java | 5 +++--
9 files changed, 36 insertions(+), 23 deletions(-)
diff --git
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
index 4175634ddc..563797f05c 100644
---
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
+++
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
@@ -24,6 +24,7 @@ import org.apache.maven.api.Artifact;
import org.apache.maven.api.ArtifactCoordinate;
import org.apache.maven.api.Version;
import org.apache.maven.api.annotations.Nonnull;
+import org.apache.maven.repository.internal.DefaultModelVersionParser;
import static org.apache.maven.internal.impl.Utils.nonNull;
@@ -94,7 +95,7 @@ public class DefaultArtifact implements Artifact {
@Override
public boolean isSnapshot() {
- return DefaultVersionParser.checkSnapshot(artifact.getVersion());
+ return DefaultModelVersionParser.checkSnapshot(artifact.getVersion());
}
@Nonnull
diff --git
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
index 654c688a0e..3f2f06893e 100644
---
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
+++
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
@@ -30,6 +30,7 @@ import org.apache.maven.api.Version;
import org.apache.maven.api.annotations.Nonnull;
import org.apache.maven.api.annotations.Nullable;
import org.apache.maven.api.services.TypeRegistry;
+import org.apache.maven.repository.internal.DefaultModelVersionParser;
import org.eclipse.aether.artifact.ArtifactProperties;
import static org.apache.maven.internal.impl.Utils.nonNull;
@@ -111,7 +112,7 @@ public class DefaultDependency implements Dependency {
@Override
public boolean isSnapshot() {
- return
DefaultVersionParser.checkSnapshot(dependency.getArtifact().getVersion());
+ return
DefaultModelVersionParser.checkSnapshot(dependency.getArtifact().getVersion());
}
@Nonnull
diff --git
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultVersionParser.java
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultVersionParser.java
index 780b9846d6..cee860f787 100644
---
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultVersionParser.java
+++
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultVersionParser.java
@@ -22,8 +22,6 @@ import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
-import java.util.regex.Pattern;
-
import org.apache.maven.api.Version;
import org.apache.maven.api.VersionConstraint;
import org.apache.maven.api.VersionRange;
@@ -38,9 +36,6 @@ import static org.apache.maven.internal.impl.Utils.nonNull;
@Named
@Singleton
public class DefaultVersionParser implements VersionParser {
- private static final String SNAPSHOT = "SNAPSHOT";
- private static final Pattern SNAPSHOT_TIMESTAMP =
Pattern.compile("^(.*-)?([0-9]{8}\\.[0-9]{6}-[0-9]+)$");
-
private final ModelVersionParser modelVersionParser;
@Inject
@@ -65,10 +60,6 @@ public class DefaultVersionParser implements VersionParser {
@Override
public boolean isSnapshot(String version) {
- return checkSnapshot(version);
- }
-
- static boolean checkSnapshot(String version) {
- return version.endsWith(SNAPSHOT) ||
SNAPSHOT_TIMESTAMP.matcher(version).matches();
+ return modelVersionParser.isSnapshot(version);
}
}
diff --git
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
index 7fcdeb30a7..363b9b67a3 100644
---
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
+++
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
@@ -367,6 +367,12 @@ public class DefaultModelBuilderFactory {
public VersionConstraint parseVersionConstraint(String constraint)
{
throw new IllegalArgumentException("constraint not supported
by this parser");
}
+
+ @Override
+ public boolean isSnapshot(String version) {
+ requireNonNull(version, "version");
+ return version.endsWith("SNAPSHOT");
+ }
};
}
diff --git
a/maven-model-builder/src/main/java/org/apache/maven/model/version/ModelVersionParser.java
b/maven-model-builder/src/main/java/org/apache/maven/model/version/ModelVersionParser.java
index 134be60271..73dd8d2b8d 100644
---
a/maven-model-builder/src/main/java/org/apache/maven/model/version/ModelVersionParser.java
+++
b/maven-model-builder/src/main/java/org/apache/maven/model/version/ModelVersionParser.java
@@ -62,4 +62,9 @@ public interface ModelVersionParser {
*/
@Nonnull
VersionConstraint parseVersionConstraint(@Nonnull String constraint);
+
+ /**
+ * Checks whether a given artifact version is considered a {@code
SNAPSHOT} or not.
+ */
+ boolean isSnapshot(@Nonnull String version);
}
diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml
index 7747d467cb..0180cf684b 100644
--- a/maven-resolver-provider/pom.xml
+++ b/maven-resolver-provider/pom.xml
@@ -32,10 +32,6 @@ under the License.
<description>Extensions to Maven Resolver for utilizing Maven POM and
repository metadata.</description>
<dependencies>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
diff --git
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
index d01265f43d..3cd64db236 100644
---
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
+++
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
@@ -18,7 +18,6 @@
*/
package org.apache.maven.repository.internal;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.model.Repository;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
@@ -64,7 +63,7 @@ public class ArtifactDescriptorUtils {
public static RepositoryPolicy
toRepositoryPolicy(org.apache.maven.model.RepositoryPolicy policy) {
boolean enabled = true;
- String checksums =
toRepositoryChecksumPolicy(ArtifactRepositoryPolicy.DEFAULT_CHECKSUM_POLICY);
+ String checksums =
toRepositoryChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN); // the
default
String updates = RepositoryPolicy.UPDATE_POLICY_DAILY;
if (policy != null) {
@@ -82,11 +81,11 @@ public class ArtifactDescriptorUtils {
public static String toRepositoryChecksumPolicy(final String
artifactRepositoryPolicy) {
switch (artifactRepositoryPolicy) {
- case ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL:
+ case RepositoryPolicy.CHECKSUM_POLICY_FAIL:
return RepositoryPolicy.CHECKSUM_POLICY_FAIL;
- case ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE:
+ case RepositoryPolicy.CHECKSUM_POLICY_IGNORE:
return RepositoryPolicy.CHECKSUM_POLICY_IGNORE;
- case ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN:
+ case RepositoryPolicy.CHECKSUM_POLICY_WARN:
return RepositoryPolicy.CHECKSUM_POLICY_WARN;
default:
throw new IllegalArgumentException("unknown repository
checksum policy: " + artifactRepositoryPolicy);
diff --git
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
index c5e01b2472..6716ba78f6 100644
---
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
+++
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
@@ -22,6 +22,8 @@ import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
+import java.util.regex.Pattern;
+
import org.apache.maven.api.Version;
import org.apache.maven.api.VersionConstraint;
import org.apache.maven.api.VersionRange;
@@ -35,6 +37,8 @@ import static java.util.Objects.requireNonNull;
@Named
@Singleton
public class DefaultModelVersionParser implements ModelVersionParser {
+ private static final String SNAPSHOT = "SNAPSHOT";
+ private static final Pattern SNAPSHOT_TIMESTAMP =
Pattern.compile("^(.*-)?([0-9]{8}\\.[0-9]{6}-[0-9]+)$");
private final VersionScheme versionScheme;
@Inject
@@ -54,6 +58,15 @@ public class DefaultModelVersionParser implements
ModelVersionParser {
return new DefaultVersionRange(versionScheme, range);
}
+ @Override
+ public boolean isSnapshot(String version) {
+ return checkSnapshot(version);
+ }
+
+ public static boolean checkSnapshot(String version) {
+ return version.endsWith(SNAPSHOT) ||
SNAPSHOT_TIMESTAMP.matcher(version).matches();
+ }
+
@Override
public VersionConstraint parseVersionConstraint(String constraint) {
requireNonNull(constraint, "constraint");
diff --git
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index c8ca6bd374..04aa979a6f 100644
---
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -31,7 +31,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.repository.metadata.io.MetadataStaxReader;
import org.eclipse.aether.RepositoryEvent;
@@ -226,7 +225,9 @@ public class DefaultVersionRangeResolver implements
VersionRangeResolver {
Versioning filteredVersions = versioning.clone();
for (String version : versioning.getVersions()) {
- if
(!remoteRepository.getPolicy(ArtifactUtils.isSnapshot(version)).isEnabled()) {
+ if (!remoteRepository
+
.getPolicy(DefaultModelVersionParser.checkSnapshot(version))
+ .isEnabled()) {
filteredVersions.removeVersion(version);
}
}