@Override public URI[] resolve(Map args, Map... dependencyMaps) { return this.resolve(args, null, dependencyMaps); }
@Override public Object grab(Map args) { return grab(args, args); }
@Override public void addResolver(Map<String, Object> args) { grapeEngine.addResolver(args); }
protected void addRepository(RemoteRepository repository) { if (this.repositories.contains(repository)) { return; } repository = getPossibleMirror(repository); repository = applyProxy(repository); repository = applyAuthentication(repository); this.repositories.add(0, repository); }
@Override public Object grab(Map args, Map... dependencyMaps) { List<Exclusion> exclusions = createExclusions(args); List<Dependency> dependencies = createDependencies(dependencyMaps, exclusions); try { List<File> files = resolve(dependencies); GroovyClassLoader classLoader = getClassLoader(args); for (File file : files) { classLoader.addURL(file.toURI().toURL()); } } catch (ArtifactResolutionException | MalformedURLException ex) { throw new DependencyResolutionFailedException(ex); } return null; }
@Override public URI[] resolve(Map args, List depsInfo, Map... dependencyMaps) { List<Exclusion> exclusions = createExclusions(args); List<Dependency> dependencies = createDependencies(dependencyMaps, exclusions); try { List<File> files = resolve(dependencies); List<URI> uris = new ArrayList<>(files.size()); for (File file : files) { uris.add(file.toURI()); } return uris.toArray(new URI[0]); } catch (Exception ex) { throw new DependencyResolutionFailedException(ex); } }
private List<File> resolve(List<Dependency> dependencies) throws ArtifactResolutionException { try { CollectRequest collectRequest = getCollectRequest(dependencies); DependencyRequest dependencyRequest = getDependencyRequest(collectRequest); DependencyResult result = this.repositorySystem .resolveDependencies(this.session, dependencyRequest); addManagedDependencies(result); return getFiles(result); } catch (Exception ex) { throw new DependencyResolutionFailedException(ex); } finally { this.progressReporter.finished(); } }
public AetherGrapeEngine(GroovyClassLoader classLoader, RepositorySystem repositorySystem, DefaultRepositorySystemSession repositorySystemSession, List<RemoteRepository> remoteRepositories, DependencyResolutionContext resolutionContext, boolean quiet) { this.classLoader = classLoader; this.repositorySystem = repositorySystem; this.session = repositorySystemSession; this.resolutionContext = resolutionContext; this.repositories = new ArrayList<>(); List<RemoteRepository> remotes = new ArrayList<>(remoteRepositories); Collections.reverse(remotes); // priority is reversed in addRepository for (RemoteRepository repository : remotes) { addRepository(repository); } this.progressReporter = getProgressReporter(this.session, quiet); }
private Dependency createDependency(Map<?, ?> dependencyMap, List<Exclusion> exclusions) { Artifact artifact = createArtifact(dependencyMap); if (isTransitive(dependencyMap)) { return new Dependency(artifact, JavaScopes.COMPILE, false, exclusions); } return new Dependency(artifact, JavaScopes.COMPILE, null, WILDCARD_EXCLUSION); }
public static AetherGrapeEngine create(GroovyClassLoader classLoader, List<RepositoryConfiguration> repositoryConfigurations, DependencyResolutionContext dependencyResolutionContext, boolean quiet) { RepositorySystem repositorySystem = createServiceLocator() .getService(RepositorySystem.class); DefaultRepositorySystemSession repositorySystemSession = MavenRepositorySystemUtils .newSession(); ServiceLoader<RepositorySystemSessionAutoConfiguration> autoConfigurations = ServiceLoader .load(RepositorySystemSessionAutoConfiguration.class); for (RepositorySystemSessionAutoConfiguration autoConfiguration : autoConfigurations) { autoConfiguration.apply(repositorySystemSession, repositorySystem); } new DefaultRepositorySystemSessionAutoConfiguration() .apply(repositorySystemSession, repositorySystem); return new AetherGrapeEngine(classLoader, repositorySystem, repositorySystemSession, createRepositories(repositoryConfigurations), dependencyResolutionContext, quiet); }
@Override public void addResolver(Map<String, Object> args) { String name = (String) args.get("name"); String root = (String) args.get("root"); RemoteRepository.Builder builder = new RemoteRepository.Builder(name, "default", root); RemoteRepository repository = builder.build(); addRepository(repository); }
@Override public Object grab(Map args) { return grapeEngine.grab(args); }
@Override public URI[] resolve(Map args, Map... dependencies) { return grapeEngine.resolve(args, dependencies); }
@Override public Object grab(String endorsedModule) { return grapeEngine.grab(endorsedModule); }
@Override public URI[] resolve(Map args, List depsInfo, Map... dependencies) { return grapeEngine.resolve(args, depsInfo, dependencies); }
@Override public Object grab(Map args, Map... dependencies) { return grapeEngine.grab(args, dependencies); }
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; }