private URLClassLoader populateClassloader(OptionSet options)
throws MalformedURLException {
DependencyResolutionContext resolutionContext = new DependencyResolutionContext();
List<RepositoryConfiguration> repositoryConfiguration = RepositoryConfigurationFactory
.createDefaultRepositoryConfiguration();
repositoryConfiguration.add(0, new RepositoryConfiguration("local",
new File("repository").toURI(), true));
boolean quiet = true;
if (options.has(debugOption)) {
System.setProperty("groovy.grape.report.downloads", "true");
quiet = false;
}
AetherGrapeEngine grapeEngine = AetherGrapeEngineFactory.create(null,
repositoryConfiguration, resolutionContext, quiet);
HashMap<String, Object> dependency = new HashMap<>();
dependency.put("group", "org.springframework.cloud.launcher");
dependency.put("module", "spring-cloud-launcher-deployer");
dependency.put("version", getVersion());
dependency.put("transitive", false);
URI[] uris = grapeEngine.resolve(null, dependency);
URLClassLoader loader = new URLClassLoader(new URL[] { uris[0].toURL() },
getClass().getClassLoader().getParent().getParent());
log.debug("resolved URIs " + Arrays.asList(loader.getURLs()));
return loader;
}