You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ma...@apache.org on 2008/04/21 21:21:51 UTC
svn commit: r650229 - in /ant/ivy/core/trunk: CHANGES.txt
src/java/org/apache/ivy/ant/IvyBuildList.java test/buildlist/H/
test/buildlist/H/build.xml test/java/org/apache/ivy/ant/IvyBuildListTest.java
Author: maartenc
Date: Mon Apr 21 12:21:49 2008
New Revision: 650229
URL: http://svn.apache.org/viewvc?rev=650229&view=rev
Log:
FIX: onMissingDescriptor doesn't work due to == comparison (IVY-805) (thanks to Ben Hale)
Added:
ant/ivy/core/trunk/test/buildlist/H/
ant/ivy/core/trunk/test/buildlist/H/build.xml
Modified:
ant/ivy/core/trunk/CHANGES.txt
ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyBuildList.java
ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java
Modified: ant/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=650229&r1=650228&r2=650229&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Mon Apr 21 12:21:49 2008
@@ -28,6 +28,7 @@
Jacob Grydholt Jensen
Scott Goldstein
Pierre Hägnestrand
+ Ben Hale
Peter Hayes
Matt Inger
Anders Janmyr
@@ -78,6 +79,7 @@
- IMPROVEMENT: Change allownomd and skipbuildwithoutivy into a more semantically correct name (IVY-297)
- IMPROVEMENT: Smarter determination if an expression is exact or not for RegexpPatternMatcher and GlobPatternMatcher
+- FIX: onMissingDescriptor doesn't work due to == comparison (IVY-805) (thanks to Ben Hale)
- FIX: revision token is not set in report outputpattern (IVY-272)
- FIX: Ivy uses the first set of configurations it sees when resolving multiple versions of a module (IVY-681)
- FIX: Eviction fails for libs not providing their ivy configuration and providing artifacts named different between lib versions (IVY-537)
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyBuildList.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyBuildList.java?rev=650229&r1=650228&r2=650229&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyBuildList.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyBuildList.java Mon Apr 21 12:21:49 2008
@@ -244,7 +244,7 @@
new WarningNonMatchingVersionReporter();
List sortedModules = ivy.sortModuleDescriptors(mds, nonMatchingVersionReporter);
- if (onMissingDescriptor != OnMissingDescriptor.TAIL) {
+ if (!OnMissingDescriptor.TAIL.equals(onMissingDescriptor)) {
for (ListIterator iter = noDescriptor.listIterator(); iter.hasNext();) {
File buildFile = (File) iter.next();
addBuildFile(path, buildFile);
@@ -286,7 +286,7 @@
File buildFile = (File) buildFiles.get(md);
addBuildFile(path, buildFile);
}
- if (onMissingDescriptor == OnMissingDescriptor.TAIL) {
+ if (OnMissingDescriptor.TAIL.equals(onMissingDescriptor)) {
for (ListIterator iter = noDescriptor.listIterator(); iter.hasNext();) {
File buildFile = (File) iter.next();
addBuildFile(path, buildFile);
@@ -298,23 +298,23 @@
}
private void onMissingDescriptor(File buildFile, File ivyFile, List noDescriptor) {
- if (onMissingDescriptor == OnMissingDescriptor.SKIP) {
+ if (OnMissingDescriptor.SKIP.equals(onMissingDescriptor)) {
Message.debug("skipping " + buildFile + ": descriptor " + ivyFile
+ " doesn't exist");
- } else if (onMissingDescriptor == OnMissingDescriptor.FAIL) {
+ } else if (OnMissingDescriptor.FAIL.equals(onMissingDescriptor)) {
throw new BuildException(
"a module has no module descriptor and onMissingDescriptor=fail. "
+ "Build file: " + buildFile + ". Expected descriptor: " + ivyFile);
} else {
- if (onMissingDescriptor == OnMissingDescriptor.WARN) {
+ if (OnMissingDescriptor.WARN.equals(onMissingDescriptor)) {
Message.warn(
"a module has no module descriptor. "
+ "Build file: " + buildFile + ". Expected descriptor: " + ivyFile);
}
Message.verbose("no descriptor for " + buildFile + ": descriptor=" + ivyFile
+ ": adding it at the "
- + onMissingDescriptor == OnMissingDescriptor.TAIL
- ? "tail" : "head" + " of the path");
+ + (OnMissingDescriptor.TAIL.equals(onMissingDescriptor)
+ ? "tail" : "head" + " of the path"));
Message.verbose(
"\t(change onMissingDescriptor if you want to take another action");
noDescriptor.add(buildFile);
Added: ant/ivy/core/trunk/test/buildlist/H/build.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/buildlist/H/build.xml?rev=650229&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/buildlist/H/build.xml (added)
+++ ant/ivy/core/trunk/test/buildlist/H/build.xml Mon Apr 21 12:21:49 2008
@@ -0,0 +1,18 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java?rev=650229&r1=650228&r2=650229&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java Mon Apr 21 12:21:49 2008
@@ -57,7 +57,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/build.xml,F/build.xml,G/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -96,7 +96,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/build.xml,F/build.xml,G/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("reverse.ordered.build.files");
buildlist.execute();
@@ -136,7 +136,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -167,7 +167,7 @@
fs.setDir(new File("test/buildlist"));
fs.setIncludes("**/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -194,7 +194,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -231,7 +231,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -263,7 +263,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -296,7 +296,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -331,7 +331,7 @@
fs.setDir(new File("test/buildlist"));
fs.setIncludes("**/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -359,7 +359,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -398,7 +398,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -432,7 +432,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/**");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -465,7 +465,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("E2/build.xml,F/build.xml,G/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();
@@ -489,6 +489,69 @@
assertEquals(new File("test/buildlist/E/build.xml").getAbsolutePath(), new File(files[3])
.getAbsolutePath());
}
+
+ public void testOnMissingDescriptor() {
+ Project p = new Project();
+
+ IvyBuildList buildlist = new IvyBuildList();
+ buildlist.setProject(p);
+
+ FileSet fs = new FileSet();
+ fs.setDir(new File("test/buildlist"));
+ fs.setIncludes("**/build.xml");
+ fs.setExcludes("E2/build.xml,F/build.xml,G/build.xml");
+ buildlist.addFileset(fs);
+ buildlist.setOnMissingDescriptor(new String("tail")); // IVY-805: new String instance
+ buildlist.setReference("ordered.build.files");
+ buildlist.execute();
+
+ Object o = p.getReference("ordered.build.files");
+ assertNotNull(o);
+ assertTrue(o instanceof Path);
+
+ Path path = (Path) o;
+ String[] files = path.list();
+ assertNotNull(files);
+
+ assertEquals(6, files.length);
+
+ assertEquals(new File("test/buildlist/B/build.xml").getAbsolutePath(), new File(files[0])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/C/build.xml").getAbsolutePath(), new File(files[1])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/A/build.xml").getAbsolutePath(), new File(files[2])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/D/build.xml").getAbsolutePath(), new File(files[3])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/E/build.xml").getAbsolutePath(), new File(files[4])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/H/build.xml").getAbsolutePath(), new File(files[5])
+ .getAbsolutePath());
+
+ buildlist.setOnMissingDescriptor(new String("skip")); // IVY-805: new String instance
+ buildlist.execute();
+
+ o = p.getReference("ordered.build.files");
+ assertNotNull(o);
+ assertTrue(o instanceof Path);
+
+ path = (Path) o;
+ files = path.list();
+ assertNotNull(files);
+
+ assertEquals(5, files.length);
+
+ assertEquals(new File("test/buildlist/B/build.xml").getAbsolutePath(), new File(files[0])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/C/build.xml").getAbsolutePath(), new File(files[1])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/A/build.xml").getAbsolutePath(), new File(files[2])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/D/build.xml").getAbsolutePath(), new File(files[3])
+ .getAbsolutePath());
+ assertEquals(new File("test/buildlist/E/build.xml").getAbsolutePath(), new File(files[4])
+ .getAbsolutePath());
+ }
public void testWithModuleWithSameNameAndDifferentOrg() {
Project p = new Project();
@@ -501,7 +564,7 @@
fs.setIncludes("**/build.xml");
fs.setExcludes("F/build.xml,G/build.xml");
buildlist.addFileset(fs);
-
+ buildlist.setOnMissingDescriptor("skip");
buildlist.setReference("ordered.build.files");
buildlist.execute();