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]); | |||||
| } | |||||
| } | } | ||||