public void contribute()

in winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/OSGIInfContributor.java [26:51]


    public void contribute(final AnnotationFinder finder, final Supplier<Manifest> manifest) {
        final Archive archive = finder.getArchive();
        if (JarArchive.class.isInstance(archive)) {
            try (final JarFile jar = new JarFile(Files.toFile(JarArchive.class.cast(archive).getUrl()))) {
                final Collection<JarEntry> entries = list(jar.entries());
                addBlueprintEntries(manifest, filterEntries(entries, "OSGI-INF/blueprint/"));
                addServiceComponentEntries(manifest, filterEntries(entries, "OSGI-INF/"));
            } catch (final IOException e) {
                // no-op
            }
        } else if (FileArchive.class.isInstance(archive)) {
            final File base = FileArchive.class.cast(archive).getDir();
            {
                final File blueprint = new File(base, "OSGI-INF/blueprint/");
                if (blueprint.isDirectory()) {
                    addBlueprintEntries(manifest, filterChildren(blueprint, "OSGI-INF/blueprint/"));
                }
            }
            {
                final File from = new File(base, "OSGI-INF/");
                if (from.isDirectory()) {
                    addServiceComponentEntries(manifest, filterChildren(from, "OSGI-INF/"));
                }
            }
        }
    }