public void execute()

in winegrower-extension/winegrower-build/winegrower-maven-plugin/src/main/java/org/apache/winegrower/extension/build/maven/MetadataBuilderMojo.java [44:83]


    public void execute() {
        final MetadataBuilder metadataBuilder = new MetadataBuilder(autoFiltering);
        final Set<String> alreadyAdded = new HashSet<>();
        collectJars().forEach(jar -> {
            if (jar.isDirectory()) {
                metadataBuilder.visitFolder(getProjectArtifactName(), jar.toPath(), new SimpleFileVisitor<Path>() {});
            } else {
                try (final JarInputStream inputStream = new JarInputStream(new BufferedInputStream(new FileInputStream(jar)))) {
                    metadataBuilder.onJar(jar.getName(), inputStream.getManifest());

                    ZipEntry nextEntry;
                    while ((nextEntry = inputStream.getNextEntry()) != null) {
                        final String name = nextEntry.getName();
                        if (!alreadyAdded.add(name)) {
                            continue;
                        }
                        metadataBuilder.onFile(name);
                    }
                } catch (final IOException e) {
                    throw new IllegalStateException(e);
                }
                metadataBuilder.afterJar();
            }
        });

        metadataBuilder.getMetadata().forEach((key, value) -> {
            final Path target = output.toPath().resolve(String.format(namingPattern, key));
            try {
                if (!Files.exists(target.getParent())) {
                    Files.createDirectories(target.getParent());
                }
                try (final OutputStream out = Files.newOutputStream(target)) {
                    value.store(out, "index");
                }
                getLog().info("Generated '" + target + "'");
            } catch (final IOException ioe) {
                throw new IllegalStateException(ioe);
            }
        });
    }