in winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java [157:185]
public Collection<BundleDefinition> findPotentialOSGiBundles() {
if (potentialBundles != null) {
return potentialBundles;
}
final KnownJarsFilter filter = new KnownJarsFilter(configuration);
return potentialBundles = urls.stream()
.map(it -> new FileAndUrl(Files.toFile(it), it))
.filter(it -> !it.file.getAbsoluteFile().equals(frameworkJar))
.filter(it -> filter.test(it.file.getName()))
.filter(it -> toDefinition(it.file) == null)
.map(it -> {
final Archive jarArchive = archive(loader, it.url);
// we scan per archive to be able to create bundle after
try {
final String name = it.file.getName();
final Manifest manifest = tryLoadManifest(jarArchive, name);
if (manifest == null) {
return null;
}
LOGGER.debug("{} was scanned and is converted to a bundle", it.file);
return new BundleDefinition(manifest, it.file, null);
} catch (final LinkageError e) {
LOGGER.debug("{} is not scannable, maybe exclude it in framework configuration", it.file);
return null;
}
})
.filter(Objects::nonNull)
.collect(toList());
}