Author: maartenc
Date: Mon Oct 20 14:47:15 2008
New Revision: 706421
URL: http://svn.apache.org/viewvc?rev=706421&view=rev
Log:
FIX: Extra Attributes specified in the Dependency's Module Descriptor are not
available to resolvers (IVY-929) (thanks to Scott Hebert)
Modified:
ant/ivy/core/trunk/CHANGES.txt
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java
ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
ant/ivy/core/trunk/test/repositories/extra-attributes/mymodule/task1/1854/ivy.xml
Modified: ant/ivy/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=706421&r1=706420&r2=706421&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Mon Oct 20 14:47:15 2008
@@ -31,6 +31,7 @@
Jacob Grydholt Jensen
Scott Goldstein
Pierre Hägnestrand
+ Scott Hebert
Tobias Himstedt
Ben Hale
Peter Hayes
@@ -106,6 +107,7 @@
- FIX: Unable to resolve snapshot versions depending on xml elements order
(IVY-940)
- FIX: pre-resolve-dependency event doesn't export branch information
(IVY-941) (thanks to Jaroslaw Wypychowski)
- FIX: cachefileset produces an empty fileset when the cache refers to libs in
directories that only have the root directory in common (IVY-948) (thanks to
Chris Wood)
+- FIX: Extra Attributes specified in the Dependency's Module Descriptor are
not available to resolvers (IVY-929) (thanks to Scott Hebert)
2.0.0-rc1
=====================================
Modified:
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java?rev=706421&r1=706420&r2=706421&view=diff
==============================================================================
---
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java
(original)
+++
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java
Mon Oct 20 14:47:15 2008
@@ -472,23 +472,28 @@
private ModuleRevisionId getRevision(ResolvedResource ivyRef,
ModuleRevisionId askedMrid,
ModuleDescriptor md) throws ParseException {
+ Map allAttributes = new HashMap();
+ allAttributes.putAll(md.getQualifiedExtraAttributes());
+ allAttributes.putAll(askedMrid.getQualifiedExtraAttributes());
+
String revision = ivyRef.getRevision();
if (revision == null) {
Message.debug("no revision found in reference for " + askedMrid);
if (getSettings().getVersionMatcher().isDynamic(askedMrid)) {
if (md.getModuleRevisionId().getRevision() == null) {
- return ModuleRevisionId.newInstance(askedMrid, "working@"
+ getName());
+ revision = "working@" + getName();
} else {
- Message.debug("using " + askedMrid);
- return askedMrid;
+ Message.debug("using " + askedMrid);
+ revision = askedMrid.getRevision();
}
} else {
- Message.debug("using " + askedMrid);
- return askedMrid;
+ Message.debug("using " + askedMrid);
+ revision = askedMrid.getRevision();
}
- } else {
- return ModuleRevisionId.newInstance(askedMrid, revision);
}
+
+ return ModuleRevisionId.newInstance(askedMrid.getOrganisation(),
askedMrid.getName(),
+ askedMrid.getBranch(), revision, allAttributes);
}
public ResolvedModuleRevision parse(final ResolvedResource mdRef,
DependencyDescriptor dd,
Modified:
ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java?rev=706421&r1=706420&r2=706421&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
(original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
Mon Oct 20 14:47:15 2008
@@ -27,6 +27,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
@@ -4148,6 +4149,9 @@
Ivy ivy = new Ivy();
ivy.configure(new
File("test/repositories/extra-attributes/ivysettings.xml"));
ivy.getSettings().setDefaultCache(cache);
+
+ FileSystemResolver fResolver = (FileSystemResolver)
ivy.getSettings().getDefaultResolver();
+ fResolver.setCheckconsistency(false); // important for testing IVY-929
ResolveReport report =
ivy.resolve(ResolveTest.class.getResource("ivy-extra-att.xml"),
getResolveOptions(ivy.getSettings(), new String[]
{"*"}).setValidate(false));
@@ -4156,6 +4160,15 @@
assertTrue(new File(cache,
"apache/mymodule/task1/1854/ivy.xml").exists());
assertTrue(new File(cache,
"apache/mymodule/task1/1854/mymodule-windows.jar").exists());
assertTrue(new File(cache,
"apache/mymodule/task1/1854/mymodule-linux.jar").exists());
+
+ Set moduleRevisions =
report.getConfigurationReport("default").getModuleRevisionIds();
+ assertEquals(1, moduleRevisions.size());
+ ModuleRevisionId resolveModRevId = (ModuleRevisionId)
moduleRevisions.iterator().next();
+ assertEquals("apache", resolveModRevId.getOrganisation());
+ assertEquals("mymodule", resolveModRevId.getName());
+ assertEquals("1854", resolveModRevId.getRevision());
+ assertEquals("task1", resolveModRevId.getExtraAttribute("eatt"));
+ assertEquals("another", resolveModRevId.getExtraAttribute("eatt2"));
}
public void testExtraAttributes2() throws Exception {
Modified:
ant/ivy/core/trunk/test/repositories/extra-attributes/mymodule/task1/1854/ivy.xml
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/extra-attributes/mymodule/task1/1854/ivy.xml?rev=706421&r1=706420&r2=706421&view=diff
==============================================================================
---
ant/ivy/core/trunk/test/repositories/extra-attributes/mymodule/task1/1854/ivy.xml
(original)
+++
ant/ivy/core/trunk/test/repositories/extra-attributes/mymodule/task1/1854/ivy.xml
Mon Oct 20 14:47:15 2008
@@ -22,6 +22,7 @@
organisation="apache"
module="mymodule"
eatt="task1"
+ eatt2="another"
revision="1854"
status="integration">
</info>