The method below is supposed to read classes/files out of a certain directory. It works alright when debugging the method in eclipse. But after building it using ant the scannedDir is not a directory anymore. Does anyone know how to change it so that it still works after deployment? Thanks in advance!
private static List<Class<?>> find(String scannedPackage) {
logger.trace("Scanned package='{}'", scannedPackage);
String scannedPath = scannedPackage.replace(DOT, SLASH);
logger.trace("Scanned path='{}'", scannedPath);
URL scannedUrl = Thread.currentThread().getContextClassLoader().getResource(scannedPath);
logger.trace("Scanned url='{}'", scannedUrl);
if (scannedUrl == null) {
throw new IllegalArgumentException(String.format(BAD_PACKAGE_ERROR, scannedPath, scannedPackage));
}
File scannedDir = new File(scannedUrl.getFile());
logger.trace("scannedDir.isDirecory='{}'", scannedDir.isDirectory());
List<Class<?>> classes = new ArrayList<Class<?>>();
for (File file : scannedDir.listFiles()) {
logger.trace("currentFile='{}'", file.getAbsolutePath());
classes.addAll(find(file, scannedPackage));
}
return classes;
}
So in detail: When I run it using eclipse debug mode scannedDir.isDirectory=true
. But after building it scannedDir.isDirectory=false
Cheers!
EDIT:
scannedDir.getAbsolutePath()
returns jar:file:/C:/Users/xxx.xxx/AppData/Local/XBRLGEN/app/xbrl_s2.jar!/eu/europa/eiopa/xbrl/s2c/dict/dom