public void mavenToDev()

in src/main/java/org/apache/openejb/tools/release/cmd/Dist.java [87:153]


    public void mavenToDev(final String version,
                           @Option("tmp") @Default("/tmp/") final File tmp,
                           @Option("maven-repo") @Default("https://repo1.maven.org/maven2/") final URI mavenRepoUri,
                           @Option("svn-repo") @Default("https://dist.apache.org/repos/dist/dev/tomee/") final URI svnRepo,
                           @Option("dry-run") @Default("false") final boolean dryRun,
                           final @Out PrintStream out) throws IOException {


        final String build = buildId(mavenRepoUri);
        final String tomeeVersionName = "tomee-" + version;
        final String svnBinaryLocation = format("https://dist.apache.org/repos/dist/dev/tomee/staging-%s/%s", build, tomeeVersionName);

        final File dir = new File(tmp, "tomee-" + version + "-work");

        { // Make and checkout the binaries dir in svn
            if (!dir.exists()) {
                Files.mkdirs(dir);
            }

            if (!dryRun) {
                exec("svn", "-m", format("[release-tools] staged binary dir for %s", tomeeVersionName), "mkdir", "--parents", svnBinaryLocation);
                exec("svn", "co", svnBinaryLocation, dir.getAbsolutePath());
            }
        }


        final MavenRepo repo = new MavenRepo(mavenRepoUri, out);

        final List<URI> binaries = new ArrayList<>();
        binaries.addAll(repo.binaries("org/apache/tomee/apache-tomee/", version));
        binaries.addAll(repo.binaries("org/apache/tomee/tomee-project/", version));

        binaries.forEach(repo.downloadTo(dir));
        out.printf("Downloaded %s binaries to %s%n", binaries.size(), dir.getAbsolutePath());

        final Work work = Dir.of(Work.class, dir);

        final List<Binary> invalid = work.binaries()
                .filter(((Predicate<Binary>) Binary::verifySha1).negate())
                .collect(Collectors.toList());

        if (invalid.size() != 0) {
            invalid.forEach(binary -> out.printf("SHA1 check failed %s%n", binary.get().getAbsolutePath()));
            throw new CommandFailedException("Remove the invalid files and try again");
        }

        work.binaries()
                .peek(Binary::createSha256)
                .peek(Binary::createSha512)
                .forEach(binary -> out.println("Hashed " + binary.get().getName()));

        if (!dryRun) {

            Consumer<File> svnAdd = file -> exec("svn", "add", file.getAbsolutePath());

            work.binaries()
                    .peek(binary -> svnAdd.accept(binary.get()))
                    .peek(binary -> svnAdd.accept(binary.asc()))
                    .peek(binary -> svnAdd.accept(binary.sha256()))
                    .peek(binary -> svnAdd.accept(binary.sha512()))
                    .forEach(binary -> out.println("Added " + binary.get().getName()));

            exec("svn", "-m", format("[release-tools] staged binaries for %s", tomeeVersionName), "ci", dir.getAbsolutePath());

            out.printf("Binaries published to %s%n", svnBinaryLocation);
        }
    }