This is an automated email from the ASF dual-hosted git repository.
gnodet 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 6dc2178651 Add an unconditional `ns` version range filter to filter
out all snapshots (#2566)
6dc2178651 is described below
commit 6dc2178651634c69ea0a313b836d5305d783053b
Author: Tamas Cservenak <[email protected]>
AuthorDate: Thu Jul 17 07:56:35 2025 +0200
Add an unconditional `ns` version range filter to filter out all snapshots
(#2566)
---
api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java | 1 +
.../maven/internal/aether/DefaultRepositorySystemSessionFactory.java | 3 +++
2 files changed, 4 insertions(+)
diff --git
a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
index 871731fb17..97029821c0 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
@@ -352,6 +352,7 @@ public final class Constants {
* <li>"h" or "h(num)" - highest version or top list of highest ones
filter</li>
* <li>"l" or "l(num)" - lowest version or bottom list of lowest ones
filter</li>
* <li>"s" - contextual snapshot filter</li>
+ * <li>"ns" - unconditional snapshot filter (no snapshots selected
from ranges)</li>
* <li>"e(G:A:V)" - predicate filter (leaves out G:A:V from range, if
hit, V can be range)</li>
* </ul>
* Example filter expression: <code>"h(5);s;e(org.foo:bar:1)</code> will
cause: ranges are filtered for "top 5" (instead
diff --git
a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 6638b6a46f..541c8364ed 100644
---
a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++
b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -63,6 +63,7 @@
import org.eclipse.aether.util.graph.version.HighestVersionFilter;
import org.eclipse.aether.util.graph.version.LowestVersionFilter;
import org.eclipse.aether.util.graph.version.PredicateVersionFilter;
+import org.eclipse.aether.util.graph.version.SnapshotVersionFilter;
import org.eclipse.aether.util.listener.ChainedRepositoryListener;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.eclipse.aether.util.repository.ChainedLocalRepositoryManager;
@@ -435,6 +436,8 @@ private VersionFilter buildVersionFilter(String
filterExpression) {
filters.add(new LowestVersionFilter(num));
} else if ("s".equals(expression)) {
filters.add(new ContextualSnapshotVersionFilter());
+ } else if ("ns".equals(expression)) {
+ filters.add(new SnapshotVersionFilter());
} else if (expression.startsWith("e(") &&
expression.endsWith(")")) {
Artifact artifact = new
DefaultArtifact(expression.substring(2, expression.length() - 1));
VersionRange versionRange =