diff --git a/CHANGES.txt b/CHANGES.txt index 7d5839f7..1e31b01b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -85,6 +85,7 @@ for detailed view of each issue, please consult http://issues.apache.org/jira/br Chris Wood Patrick Woodworth Jaroslaw Wypychowski + Aleksey Zhukov trunk ===================================== @@ -94,6 +95,7 @@ for detailed view of each issue, please consult http://issues.apache.org/jira/br - IMPROVEMENT: Standalone runner should accept all the same parameters as ant tasks (IVY-1090) - IMPROVEMENT: Pre and post retrieve artifact events (IVY-1084) +- FIX: ivy:resolve ignores branch in "dynamic" resolve mode (IVY-1087) (thanks to Aleksey Zhukov) - FIX: [originalname] not expanded during retrieve when module descriptor contains extra attributes (IVY-1096) - FIX: The Ant output wasn't always prefixed by the name of the task - FIX: Ivy buildnumber task does not find artifact in Sonatype Nexus repo (IVY-1069) diff --git a/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java b/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java index 22f52fbd..3510e441 100644 --- a/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java +++ b/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java @@ -25,6 +25,7 @@ import java.util.Map; import java.util.Map.Entry; import org.apache.ivy.core.RelativeUrlResolver; +import org.apache.ivy.core.module.id.ModuleId; import org.apache.ivy.core.module.id.ModuleRevisionId; import org.apache.ivy.core.module.status.StatusManager; import org.apache.ivy.plugins.conflict.ConflictManager; @@ -129,6 +130,10 @@ class ParserSettingsMonitor { public File resolveFile(String filename) { return delegatedSettings.resolveFile(filename); } + + public String getDefaultBranch(ModuleId moduleId) { + return delegatedSettings.getDefaultBranch(moduleId); + } public Map substitute(Map strings) { Map substituted = new LinkedHashMap(); diff --git a/src/java/org/apache/ivy/plugins/parser/ParserSettings.java b/src/java/org/apache/ivy/plugins/parser/ParserSettings.java index 1cd865a7..14099a74 100644 --- a/src/java/org/apache/ivy/plugins/parser/ParserSettings.java +++ b/src/java/org/apache/ivy/plugins/parser/ParserSettings.java @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.ivy.core.RelativeUrlResolver; import org.apache.ivy.core.cache.ResolutionCacheManager; +import org.apache.ivy.core.module.id.ModuleId; import org.apache.ivy.core.module.id.ModuleRevisionId; import org.apache.ivy.core.module.status.StatusManager; import org.apache.ivy.plugins.conflict.ConflictManager; @@ -52,5 +53,7 @@ public interface ParserSettings { File resolveFile(String filename); File getBaseDir(); + + String getDefaultBranch(ModuleId moduleId); } diff --git a/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java b/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java index c90264e5..7e854d69 100644 --- a/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java +++ b/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java @@ -49,6 +49,7 @@ import org.apache.ivy.core.module.descriptor.OverrideDependencyDescriptorMediato import org.apache.ivy.core.module.id.ArtifactId; import org.apache.ivy.core.module.id.ModuleId; import org.apache.ivy.core.module.id.ModuleRevisionId; +import org.apache.ivy.core.settings.IvySettings; import org.apache.ivy.plugins.conflict.ConflictManager; import org.apache.ivy.plugins.conflict.FixedConflictManager; import org.apache.ivy.plugins.matcher.PatternMatcher; @@ -521,6 +522,12 @@ public class XmlModuleDescriptorParser extends AbstractModuleDescriptorParser { String name = settings.substitute(attributes.getValue("name")); String branch = settings.substitute(attributes.getValue("branch")); String branchConstraint = settings.substitute(attributes.getValue("branchConstraint")); + if (branchConstraint == null) { + // there was no branch constraint before, so we should + // set the branchConstraint to the current default branch + branchConstraint = settings.getDefaultBranch(ModuleId.newInstance(org, name)); + } + String rev = settings.substitute(attributes.getValue("rev")); String revConstraint = settings.substitute(attributes.getValue("revConstraint")); revConstraint = revConstraint == null ? rev : revConstraint;