Browse Source

Implementation of nested patternsets. Addresses PR3761

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272042 13f79535-47bb-0310-9956-ffa450edef68
master
Erik Hatcher 23 years ago
parent
commit
bcb2c234e8
3 changed files with 39 additions and 0 deletions
  1. +2
    -0
      WHATSNEW
  2. +21
    -0
      src/main/org/apache/tools/ant/types/PatternSet.java
  3. +16
    -0
      src/testcases/org/apache/tools/ant/types/PatternSetTest.java

+ 2
- 0
WHATSNEW View File

@@ -244,6 +244,8 @@ Other changes:
* New <ejbdeploy> "optional" task.

* <patternset> now supports nested patternsets.

Changes from Ant 1.4 to Ant 1.4.1
===========================================



+ 21
- 0
src/main/org/apache/tools/ant/types/PatternSet.java View File

@@ -164,6 +164,27 @@ public class PatternSet extends DataType {
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
*/


+ 16
- 0
src/testcases/org/apache/tools/ant/types/PatternSetTest.java View File

@@ -222,4 +222,20 @@ public class PatternSetTest extends TestCase {
1, i.length);
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]);
}
}

Loading…
Cancel
Save