Author: maartenc
Date: Wed Oct 1 14:00:57 2008
New Revision: 700920
URL: http://svn.apache.org/viewvc?rev=700920&view=rev
Log:
FIX: ivy:settings doesn't work if id is a property (IVY-925)
Modified:
ant/ivy/core/trunk/CHANGES.txt
ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyAntSettings.java
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFile.xml
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFileTest.java
Modified: ant/ivy/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=700920&r1=700919&r2=700920&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Wed Oct 1 14:00:57 2008
@@ -95,6 +95,7 @@
- FIX: Maven packaging of "pom" should add a "jar" artifact if present
(IVY-920)
- FIX: StackOverflow when using ivy:settings with "ivy.instance" as id
(IVY-924)
- FIX: Maven Pom reader doesn't handle optional dependencies correctly in some
instances (IVY-926) (thanks to Phil Messenger)
+- FIX: ivy:settings doesn't work if id is a property (IVY-925)
2.0.0-rc1
=====================================
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyAntSettings.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyAntSettings.java?rev=700920&r1=700919&r2=700920&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyAntSettings.java
(original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyAntSettings.java Wed Oct
1 14:00:57 2008
@@ -134,6 +134,12 @@
return (IvyAntSettings) defaultInstanceObj;
}
}
+
+ public IvyAntSettings() {
+ super();
+ System.out.println(this);
+ Thread.dumpStack();
+ }
public File getFile() {
return file;
@@ -178,7 +184,7 @@
public void setProject(Project p) {
super.setProject(p);
- if ("ivy.instance".equals(id) && getProject().getReferences().get(id)
== null) {
+ if ("ivy.instance".equals(id) &&
!getProject().getReferences().containsKey(id)) {
// register ourselfs as default settings, just in case the id
attribute is not set
getProject().addReference("ivy.instance", this);
autoRegistered = true;
@@ -216,6 +222,10 @@
autoRegistered = false;
}
this.id = id;
+
+ if (getProject() != null) {
+ getProject().addReference(this.id, this);
+ }
}
public String getId() {
Modified:
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFile.xml
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFile.xml?rev=700920&r1=700919&r2=700920&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFile.xml
(original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFile.xml
Wed Oct 1 14:00:57 2008
@@ -39,4 +39,10 @@
<ivy:configure settingsId="testUnnecessaryDefaultIvyInstance"
file="test/repositories/ivysettings.xml" override="true" />
<ivy:cachepath settingsRef="testUnnecessaryDefaultIvyInstance"
file="test/java/org/apache/ivy/ant/ivy-simple.xml" pathid="ptest" />
</target>
+
+ <target name="testSettingsWithPropertyAsId">
+ <property name="my.property" value="whatever" />
+ <ivy:settings id="${my.property}"
file="test/repositories/ivysettings.xml" />
+ <ivy:resolve settingsRef="${my.property}"
file="test/java/org/apache/ivy/ant/ivy-simple.xml" />
+ </target>
</project>
\ No newline at end of file
Modified:
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFileTest.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFileTest.java?rev=700920&r1=700919&r2=700920&view=diff
==============================================================================
---
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFileTest.java
(original)
+++
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyAntSettingsBuildFileTest.java
Wed Oct 1 14:00:57 2008
@@ -47,4 +47,12 @@
assertNull("Default ivy.instance settings shouldn't have been loaded",
getProject().getReference("ivy.instance"));
}
+
+ public void testSettingsWithIdIvyInstance() {
+ executeTarget("testSettingsWithPropertyAsId");
+ ResolveReport report = (ResolveReport)
getProject().getReference("ivy.resolved.report");
+ assertNotNull(report);
+ assertFalse(report.hasError());
+ assertEquals(1, report.getDependencies().size());
+ }
}