in org.apache.easyant4e/src/org/apache/easyant4e/wizards/EasyAntImportWizardPage.java [450:493]
private boolean collectProjectFilesFromDirectory(Collection files, File directory, Set directoriesVisited,
IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return false;
}
monitor.subTask("Collect project files from "+ directory.getPath());
File[] contents = directory.listFiles();
if (contents == null){
return false;
}
// Initialize recursion guard for recursive symbolic links
if (directoriesVisited == null) {
directoriesVisited = new HashSet();
try {
directoriesVisited.add(directory.getCanonicalPath());
} catch (IOException exception) {
Activator.getEasyAntPlugin().log(IStatus.ERROR, exception.getMessage(), exception);
}
}
// first look for EasyAnt description files
for (int i = 0; i < contents.length; i++) {
File file = contents[i];
if (file.isFile() && file.getName().endsWith("ivy")) {
files.add(file);
}else if (contents[i].isDirectory()) {
if (!contents[i].getName().equals(METADATA_FOLDER) && !contents[i].getName().equals(TARGET_FOLDER)) {
try {
String canonicalPath = contents[i].getCanonicalPath();
if (!directoriesVisited.add(canonicalPath)) {
// already been here --> do not recurse
continue;
}
} catch (IOException exception) {
Activator.getEasyAntPlugin().log(IStatus.ERROR, exception.getMessage(), exception);
}
collectProjectFilesFromDirectory(files, contents[i], directoriesVisited, monitor);
}
}
}
return true;
}