My project has a class path containing about 100 jars stored in a Clearcase
vob. We have a this fileset definition:
<path id ="classpath.unit_test">
<pathelement path="bin"/>
<!-- add all files in lib.dir to path -->
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
which is used to run JUnit tests like this:
<target name="utest">
<junit showoutput="true">
<classpath refid="classpath.unit_test"/>
<formatter type="plain" usefile="false" />
<test name="test1"/>
<test name="test2"/>
...
</junit>
</target>
It takes about 30 seconds for the file set to scan the lib directory for
jars. This happens for each test element.
To fix this, I modified the AbstractFileSet class to save the
DirectoryScanner, instead of rescanning each time:
68a69,70
private DirectoryScanner scanner = null;
355,359c357,365
< DirectoryScanner ds = new DirectoryScanner();
< setupDirectoryScanner(ds, p);
< ds.setFollowSymlinks(followSymlinks);
< ds.scan();
< return ds;
---
if (scanner == null) {
scanner = new DirectoryScanner();
setupDirectoryScanner(scanner, p);
scanner.setFollowSymlinks(followSymlinks);
scanner.scan();
}
return scanner;
Can this change be incorporated in the next version of Ant?