git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@808310 13f79535-47bb-0310-9956-ffa450edef68master
@@ -4,6 +4,7 @@ Adam Blinkinsop | |||||
Adam Bryzak | Adam Bryzak | ||||
Adam Sotona | Adam Sotona | ||||
Aleksandr Ishutin | Aleksandr Ishutin | ||||
Alexei Yudichev | |||||
Alexey Panchenko | Alexey Panchenko | ||||
Alexey Solofnenko | Alexey Solofnenko | ||||
Alison Winters | Alison Winters | ||||
@@ -930,6 +930,10 @@ Other changes: | |||||
* A new token filter <uniqfilter> that suppresses tokens that match | * A new token filter <uniqfilter> that suppresses tokens that match | ||||
their ancestor token has been added. | 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 | Changes from Ant 1.7.0 TO Ant 1.7.1 | ||||
============================================= | ============================================= | ||||
@@ -46,6 +46,10 @@ | |||||
<first>Aleksandr</first> | <first>Aleksandr</first> | ||||
<last>Ishutin</last> | <last>Ishutin</last> | ||||
</name> | </name> | ||||
<name> | |||||
<first>Alexei</first> | |||||
<last>Yudichev</last> | |||||
</name> | |||||
<name> | <name> | ||||
<first>Alexey</first> | <first>Alexey</first> | ||||
<last>Panchenko</last> | <last>Panchenko</last> | ||||
@@ -121,6 +121,8 @@ public class ClassfileSet extends FileSet { | |||||
return getRef(p).getDirectoryScanner(p); | return getRef(p).getDirectoryScanner(p); | ||||
} | } | ||||
dieOnCircularReference(p); | dieOnCircularReference(p); | ||||
DirectoryScanner parentScanner = super.getDirectoryScanner(p); | |||||
DependScanner scanner = new DependScanner(parentScanner); | |||||
Vector allRootClasses = (Vector) rootClasses.clone(); | Vector allRootClasses = (Vector) rootClasses.clone(); | ||||
for (Enumeration e = rootFileSets.elements(); e.hasMoreElements();) { | for (Enumeration e = rootFileSets.elements(); e.hasMoreElements();) { | ||||
FileSet additionalRootSet = (FileSet) e.nextElement(); | FileSet additionalRootSet = (FileSet) e.nextElement(); | ||||
@@ -135,9 +137,8 @@ public class ClassfileSet extends FileSet { | |||||
allRootClasses.addElement(className); | allRootClasses.addElement(className); | ||||
} | } | ||||
} | } | ||||
scanner.addBasedir(additionalRootSet.getDir(p)); | |||||
} | } | ||||
DirectoryScanner parentScanner = super.getDirectoryScanner(p); | |||||
DependScanner scanner = new DependScanner(parentScanner); | |||||
scanner.setBasedir(getDir(p)); | scanner.setBasedir(getDir(p)); | ||||
scanner.setRootClasses(allRootClasses); | scanner.setRootClasses(allRootClasses); | ||||
scanner.scan(); | scanner.scan(); | ||||
@@ -47,6 +47,8 @@ public class DependScanner extends DirectoryScanner { | |||||
*/ | */ | ||||
private Vector included; | private Vector included; | ||||
private Vector additionalBaseDirs = new Vector(); | |||||
/** | /** | ||||
* The parent scanner which gives the basic set of files. Only files which | * 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 | * 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(); | analyzer = (DependencyAnalyzer) analyzerClass.newInstance(); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
throw new BuildException("Unable to load dependency analyzer: " | throw new BuildException("Unable to load dependency analyzer: " | ||||
+ analyzerClassName, e); | |||||
+ analyzerClassName, e); | |||||
} | } | ||||
analyzer.addClassPath(new Path(null, basedir.getPath())); | 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();) { | for (Enumeration e = rootClasses.elements(); e.hasMoreElements();) { | ||||
String rootClass = (String) e.nextElement(); | String rootClass = (String) e.nextElement(); | ||||
@@ -210,4 +216,8 @@ public class DependScanner extends DirectoryScanner { | |||||
/** {@inheritDoc}. */ | /** {@inheritDoc}. */ | ||||
public void setCaseSensitive(boolean isCaseSensitive) { | public void setCaseSensitive(boolean isCaseSensitive) { | ||||
} | } | ||||
public void addBasedir(File baseDir) { | |||||
additionalBaseDirs.addElement(baseDir); | |||||
} | |||||
} | } |