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);
}
}