
com.hubspot.slimfast.DownloadJars Maven / Gradle / Ivy
The newest version!
package com.hubspot.slimfast;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.jar.Manifest;
import java.util.stream.Collectors;
public class DownloadJars {
public static void main(String... args) throws Exception {
Manifest manifest = Utils.readManifest();
Configuration config = Utils.readConfiguration();
List jars = Utils.parseClassPath(manifest, config);
ExecutorService executor = Executors.newFixedThreadPool(config.getS3DownloadThreads());
JarDownloader downloader = Utils.findImplementation(JarDownloader.class, new DefaultJarDownloader());
List> futures = jars.stream()
.map(jar -> executor.submit(() -> {
downloader.download(config, jar);
return null;
}))
.collect(Collectors.toList());
executor.shutdown();
if (!executor.awaitTermination(5, TimeUnit.MINUTES)) {
System.out.println("Took more than 5 minutes to download JARs, quitting!");
System.exit(1);
}
for (Future> future : futures) {
future.get();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy