private BundleDescriptor doScan()

in src/main/java/org/apache/sling/feature/scanner/Scanner.java [133:153]


    private BundleDescriptor doScan(final Artifact bundle, final int startLevel) throws IOException {
        final String key = bundle.getId()
                .toMvnId()
                .concat(":")
                .concat(String.valueOf(startLevel))
                .concat(":")
                .concat(Stream.of(bundle.getFeatureOrigins())
                        .map(ArtifactId::toMvnId)
                        .collect(Collectors.joining(",")));
        BundleDescriptor desc = (BundleDescriptor) this.cache.get(key);
        if (desc == null) {
            final URL file = artifactProvider.provide(bundle.getId());
            if (file == null) {
                throw new IOException("Unable to find file for " + bundle.getId());
            }

            desc = new BundleDescriptorImpl(bundle, file);
            this.cache.put(key, desc);
        }
        return desc;
    }