in meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java [145:208]
public void scan() {
if (delegate != null) {
if (getFinder() == null) {
delegate.scan();
}
if (finder == null) {
finder = getFinder();
}
}
if (finder != null) {
return;
}
super.scan();
scanGroovy(WebBeansUtil.getCurrentClassLoader());
if (!urls.isEmpty()) {
logger.info("OpenWebBeans scanning:");
final String m2 = new File(System.getProperty("user.home", "."), ".m2/repository").getAbsolutePath();
final String base = ofNullable(docBase).orElse("$$$");
final String sharedBase = ofNullable(shared).orElse("$$$");
final String runnerBase = ofNullable(System.getProperty("meecrowave.base")).orElse("$$$");
final String runnerHome = ofNullable(System.getProperty("meecrowave.home")).orElse("$$$");
urls.stream().map(u -> {
String shownValue = u
// protocol
.replace("file://", "")
.replace("file:", "")
.replace("jar:", "")
// URL suffix
.replace("!/META-INF/beans.xml", "")
.replace("!/", "")
// beans.xml
.replace("META-INF/beans.xml", "");
// try to make it shorter
if (shownValue.startsWith(m2)) {
shownValue = "${maven}/" + shownValue.substring(shownValue.replace(File.separatorChar, '/').lastIndexOf('/') + 1);
} else if (shownValue.startsWith(base)) {
shownValue = "${app}" + shownValue.replace(base, "");
} else if (shownValue.startsWith(sharedBase)) {
shownValue = "${shared}" + shownValue.replace(sharedBase, "");
} else if (shownValue.startsWith(runnerBase)) {
shownValue = "${base}" + shownValue.replace(runnerBase, "");
} else if (shownValue.startsWith(runnerHome)) {
shownValue = "${home}" + shownValue.replace(runnerHome, "");
}
return shownValue;
}).sorted().forEach(v -> logger.info(" " + v));
if (fileVisitor != null) {
urls.stream()
.filter(this::isFile)
.map(this::toFile)
.filter(File::isDirectory)
.forEach(fileVisitor);
}
}
urls.clear(); // no more needed
filter = null;
docBase = null;
shared = null;
}