git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272042 13f79535-47bb-0310-9956-ffa450edef68master
@@ -244,6 +244,8 @@ Other changes: | |||||
* New <ejbdeploy> "optional" task. | * New <ejbdeploy> "optional" task. | ||||
* <patternset> now supports nested patternsets. | |||||
Changes from Ant 1.4 to Ant 1.4.1 | Changes from Ant 1.4 to Ant 1.4.1 | ||||
=========================================== | =========================================== | ||||
@@ -164,6 +164,27 @@ public class PatternSet extends DataType { | |||||
super.setRefid(r); | super.setRefid(r); | ||||
} | } | ||||
public void addConfiguredPatternset(PatternSet p) { | |||||
if (isReference()) { | |||||
throw noChildrenAllowed(); | |||||
} | |||||
String[] nestedIncludes = p.getIncludePatterns(getProject()); | |||||
String[] nestedExcludes = p.getExcludePatterns(getProject()); | |||||
if (nestedIncludes != null) { | |||||
for (int i=0; i < nestedIncludes.length; i++) { | |||||
createInclude().setName(nestedIncludes[i]); | |||||
} | |||||
} | |||||
if (nestedExcludes != null) { | |||||
for (int i=0; i < nestedExcludes.length; i++) { | |||||
createExclude().setName(nestedExcludes[i]); | |||||
} | |||||
} | |||||
} | |||||
/** | /** | ||||
* add a name entry on the include list | * add a name entry on the include list | ||||
*/ | */ | ||||
@@ -222,4 +222,20 @@ public class PatternSetTest extends TestCase { | |||||
1, i.length); | 1, i.length); | ||||
assertEquals("exclude", i[0]); | assertEquals("exclude", i[0]); | ||||
} | } | ||||
public void testNestedPatternset() { | |||||
PatternSet p = new PatternSet(); | |||||
p.setIncludes("**/*.java"); | |||||
PatternSet nested = new PatternSet(); | |||||
nested.setExcludes("**/*.class"); | |||||
p.addConfiguredPatternset(nested); | |||||
String[] excludes = p.getExcludePatterns(project); | |||||
String[] includes = p.getIncludePatterns(project); | |||||
assertEquals("Includes","**/*.java", includes[0]); | |||||
assertEquals("Excludes","**/*.class", excludes[0]); | |||||
} | |||||
} | } |