From aebe2c1f0fe8b2b1677ee62efed8978d05bef406 Mon Sep 17 00:00:00 2001 From: Eric Milles Date: Fri, 12 Jun 2026 13:06:56 -0500 Subject: [PATCH] IVY-1665: use configured LatestStrategy to compare revisions --- .../apache/ivy/ant/IvyDependencyUpdateChecker.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/java/org/apache/ivy/ant/IvyDependencyUpdateChecker.java b/src/java/org/apache/ivy/ant/IvyDependencyUpdateChecker.java index 509a02d4..4b5a7138 100644 --- a/src/java/org/apache/ivy/ant/IvyDependencyUpdateChecker.java +++ b/src/java/org/apache/ivy/ant/IvyDependencyUpdateChecker.java @@ -29,6 +29,9 @@ import org.apache.ivy.core.report.ResolveReport; import org.apache.ivy.core.resolve.IvyNode; import org.apache.ivy.core.resolve.ResolveOptions; import org.apache.ivy.plugins.latest.ArtifactInfo; +import org.apache.ivy.plugins.latest.LatestStrategy; +import org.apache.ivy.plugins.resolver.DependencyResolver; +import org.apache.ivy.plugins.resolver.util.HasLatestStrategy; import org.apache.tools.ant.BuildException; @@ -131,7 +134,7 @@ public class IvyDependencyUpdateChecker extends IvyPostResolveTask { if (latest.getModuleId().equals(originalDependency.getModuleId())) { ArtifactInfo in1 = toArtifactInfo(latest); ArtifactInfo in2 = toArtifactInfo(originalDependency); - ArtifactInfo out = getSettings().getDefaultLatestStrategy().findLatest(new ArtifactInfo[]{in1, in2}, null); + ArtifactInfo out = getLatestStrategy(originalDependency).findLatest(new ArtifactInfo[]{in1, in2}, null); if (out == in1) { // is this dependency a transitive or a direct dependency? // (unfortunately .isTransitive() methods do not have the same meaning) @@ -200,6 +203,14 @@ public class IvyDependencyUpdateChecker extends IvyPostResolveTask { //-------------------------------------------------------------------------- + private LatestStrategy getLatestStrategy(IvyNode node) { + DependencyResolver resolver = getSettings().getResolver(node.getResolvedId()); + if (resolver instanceof HasLatestStrategy) { + return ((HasLatestStrategy) resolver).getLatestStrategy(); + } + return getSettings().getDefaultLatestStrategy(); + } + private static ArtifactInfo toArtifactInfo(IvyNode node) { return new ArtifactInfo() { @Override