Browse Source

allow rootfilesets with a dir other than the dir attribute of the classfileset. PR 37763. Submitted by Alexei Yudichev

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@808310 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
1c24c78ca5
5 changed files with 23 additions and 3 deletions
  1. +1
    -0
      CONTRIBUTORS
  2. +4
    -0
      WHATSNEW
  3. +4
    -0
      contributors.xml
  4. +3
    -2
      src/main/org/apache/tools/ant/types/optional/depend/ClassfileSet.java
  5. +11
    -1
      src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java

+ 1
- 0
CONTRIBUTORS View File

@@ -4,6 +4,7 @@ Adam Blinkinsop
Adam Bryzak
Adam Sotona
Aleksandr Ishutin
Alexei Yudichev
Alexey Panchenko
Alexey Solofnenko
Alison Winters


+ 4
- 0
WHATSNEW View File

@@ -930,6 +930,10 @@ Other changes:
* A new token filter <uniqfilter> that suppresses tokens that match
their ancestor token has been added.

* <rootfileset>s nested into <classfileset>s can now use a dir
attribute different from the <classfileset>.
Bugzilla Report 37763.

Changes from Ant 1.7.0 TO Ant 1.7.1
=============================================



+ 4
- 0
contributors.xml View File

@@ -46,6 +46,10 @@
<first>Aleksandr</first>
<last>Ishutin</last>
</name>
<name>
<first>Alexei</first>
<last>Yudichev</last>
</name>
<name>
<first>Alexey</first>
<last>Panchenko</last>


+ 3
- 2
src/main/org/apache/tools/ant/types/optional/depend/ClassfileSet.java View File

@@ -121,6 +121,8 @@ public class ClassfileSet extends FileSet {
return getRef(p).getDirectoryScanner(p);
}
dieOnCircularReference(p);
DirectoryScanner parentScanner = super.getDirectoryScanner(p);
DependScanner scanner = new DependScanner(parentScanner);
Vector allRootClasses = (Vector) rootClasses.clone();
for (Enumeration e = rootFileSets.elements(); e.hasMoreElements();) {
FileSet additionalRootSet = (FileSet) e.nextElement();
@@ -135,9 +137,8 @@ public class ClassfileSet extends FileSet {
allRootClasses.addElement(className);
}
}
scanner.addBasedir(additionalRootSet.getDir(p));
}
DirectoryScanner parentScanner = super.getDirectoryScanner(p);
DependScanner scanner = new DependScanner(parentScanner);
scanner.setBasedir(getDir(p));
scanner.setRootClasses(allRootClasses);
scanner.scan();


+ 11
- 1
src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java View File

@@ -47,6 +47,8 @@ public class DependScanner extends DirectoryScanner {
*/
private Vector included;

private Vector additionalBaseDirs = new Vector();

/**
* The parent scanner which gives the basic set of files. Only files which
* are in this set and which can be reached from a root class will end
@@ -109,9 +111,13 @@ public class DependScanner extends DirectoryScanner {
analyzer = (DependencyAnalyzer) analyzerClass.newInstance();
} catch (Exception e) {
throw new BuildException("Unable to load dependency analyzer: "
+ analyzerClassName, e);
+ analyzerClassName, e);
}
analyzer.addClassPath(new Path(null, basedir.getPath()));
for (Enumeration e = additionalBaseDirs.elements(); e.hasMoreElements();) {
File additionalBaseDir = (File) e.nextElement();
analyzer.addClassPath(new Path(null, additionalBaseDir.getPath()));
}

for (Enumeration e = rootClasses.elements(); e.hasMoreElements();) {
String rootClass = (String) e.nextElement();
@@ -210,4 +216,8 @@ public class DependScanner extends DirectoryScanner {
/** {@inheritDoc}. */
public void setCaseSensitive(boolean isCaseSensitive) {
}

public void addBasedir(File baseDir) {
additionalBaseDirs.addElement(baseDir);
}
}

Loading…
Cancel
Save