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