private void populateCache()

in src/main/java/org/apache/sling/feature/scanner/Scanner.java [232:252]


    private void populateCache(Feature feature) throws IOException {
        AnalyserMetaDataExtension extension = AnalyserMetaDataExtension.getAnalyserMetaDataExtension(feature);

        if (extension != null) {
            for (Artifact bundle : feature.getBundles()) {
                ArtifactId id = bundle.getId();
                final String key = id.toMvnId().concat(":")
                        .concat(String.valueOf(bundle.getStartOrder())).concat(":")
                        .concat(Stream.of(bundle.getFeatureOrigins()).map(ArtifactId::toMvnId).collect(Collectors.joining(",")));
                if (this.cache.get(key) == null) {
                    Map<String, String> headers = extension.getManifest(id);
                    if (headers != null) {
                        Manifest manifest = new Manifest();
                        headers.forEach(manifest.getMainAttributes()::putValue);
                        BundleDescriptor desc = new BundleDescriptorImpl(bundle, artifactProvider, manifest, bundle.getStartOrder());
                        this.cache.put(key, desc);
                    }
                }
            }
        }
    }