Search in sources :

Example 1 with Exclusion

use of org.eclipse.aether.graph.Exclusion in project buck by facebook.

the class Resolver method getDependenciesFromPom.

private ImmutableList<Dependency> getDependenciesFromPom(Model model) {
    return model.getDependencies().stream().map(dep -> {
        ArtifactType stereotype = session.getArtifactTypeRegistry().get(dep.getType());
        if (stereotype == null) {
            stereotype = new DefaultArtifactType(dep.getType());
        }
        Map<String, String> props = null;
        boolean system = dep.getSystemPath() != null && dep.getSystemPath().length() > 0;
        if (system) {
            props = ImmutableMap.of(ArtifactProperties.LOCAL_PATH, dep.getSystemPath());
        }
        @SuppressWarnings("PMD.PrematureDeclaration") DefaultArtifact artifact = new DefaultArtifact(dep.getGroupId(), dep.getArtifactId(), dep.getClassifier(), null, dep.getVersion(), props, stereotype);
        ImmutableList<Exclusion> exclusions = FluentIterable.from(dep.getExclusions()).transform(input -> {
            String group = input.getGroupId();
            String artifact1 = input.getArtifactId();
            group = (group == null || group.length() == 0) ? "*" : group;
            artifact1 = (artifact1 == null || artifact1.length() == 0) ? "*" : artifact1;
            return new Exclusion(group, artifact1, "*", "*");
        }).toList();
        return new Dependency(artifact, dep.getScope(), dep.isOptional(), exclusions);
    }).collect(MoreCollectors.toImmutableList());
}
Also used : ServiceLocator(org.eclipse.aether.spi.locator.ServiceLocator) STGroupString(org.stringtemplate.v4.STGroupString) DefaultDependencyManagementInjector(org.apache.maven.model.management.DefaultDependencyManagementInjector) SortedSet(java.util.SortedSet) DependencyFilterUtils(org.eclipse.aether.util.filter.DependencyFilterUtils) Version(org.eclipse.aether.version.Version) URL(java.net.URL) TEST(org.eclipse.aether.util.artifact.JavaScopes.TEST) DefaultModelBuilderFactory(org.apache.maven.model.building.DefaultModelBuilderFactory) ArtifactDescriptorException(org.eclipse.aether.resolution.ArtifactDescriptorException) Matcher(java.util.regex.Matcher) ModelBuilder(org.apache.maven.model.building.ModelBuilder) FluentIterable(com.google.common.collect.FluentIterable) DefaultProfileSelector(org.apache.maven.model.profile.DefaultProfileSelector) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) Map(java.util.Map) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) Path(java.nio.file.Path) ImmutableSetMultimap(com.google.common.collect.ImmutableSetMultimap) DefaultDependencyManagementImporter(org.apache.maven.model.composition.DefaultDependencyManagementImporter) LocalRepository(org.eclipse.aether.repository.LocalRepository) Function(com.google.common.base.Function) ImmutableMap(com.google.common.collect.ImmutableMap) RepositoryPolicy(org.eclipse.aether.repository.RepositoryPolicy) Collection(java.util.Collection) Artifact(org.eclipse.aether.artifact.Artifact) Executors(java.util.concurrent.Executors) Objects(java.util.Objects) CmdLineException(org.kohsuke.args4j.CmdLineException) List(java.util.List) ModelBuildingResult(org.apache.maven.model.building.ModelBuildingResult) ST(org.stringtemplate.v4.ST) ArtifactRequest(org.eclipse.aether.resolution.ArtifactRequest) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) ArtifactDescriptorResult(org.eclipse.aether.resolution.ArtifactDescriptorResult) DependencyResult(org.eclipse.aether.resolution.DependencyResult) ListeningExecutorService(com.google.common.util.concurrent.ListeningExecutorService) Model(org.apache.maven.model.Model) RepositorySystem(org.eclipse.aether.RepositorySystem) DependencyFilter(org.eclipse.aether.graph.DependencyFilter) MoreExecutors(com.google.common.util.concurrent.MoreExecutors) ArtifactDescriptorRequest(org.eclipse.aether.resolution.ArtifactDescriptorRequest) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) VersionScheme(org.eclipse.aether.version.VersionScheme) ArtifactProperties(org.eclipse.aether.artifact.ArtifactProperties) Dependency(org.eclipse.aether.graph.Dependency) JavaScopes(org.eclipse.aether.util.artifact.JavaScopes) MutableDirectedGraph(com.facebook.buck.graph.MutableDirectedGraph) GenericVersionScheme(org.eclipse.aether.util.version.GenericVersionScheme) Callable(java.util.concurrent.Callable) TraversableGraph(com.facebook.buck.graph.TraversableGraph) RepositorySystemSession(org.eclipse.aether.RepositorySystemSession) TreeSet(java.util.TreeSet) ArtifactType(org.eclipse.aether.artifact.ArtifactType) ImmutableList(com.google.common.collect.ImmutableList) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) Nullable(javax.annotation.Nullable) MoreCollectors(com.facebook.buck.util.MoreCollectors) ArtifactResolutionException(org.eclipse.aether.resolution.ArtifactResolutionException) ImmutableSortedSet(com.google.common.collect.ImmutableSortedSet) CollectRequest(org.eclipse.aether.collection.CollectRequest) Resources(com.google.common.io.Resources) DefaultPluginConfigurationExpander(org.apache.maven.model.plugin.DefaultPluginConfigurationExpander) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) Files(java.nio.file.Files) UTF_8(java.nio.charset.StandardCharsets.UTF_8) ModelBuildingException(org.apache.maven.model.building.ModelBuildingException) MostExecutors(com.facebook.buck.util.concurrent.MostExecutors) MavenRepositorySystemUtils(org.apache.maven.repository.internal.MavenRepositorySystemUtils) IOException(java.io.IOException) ArtifactResult(org.eclipse.aether.resolution.ArtifactResult) DependencyRequest(org.eclipse.aether.resolution.DependencyRequest) Maps(com.google.common.collect.Maps) DefaultRepositorySystemSession(org.eclipse.aether.DefaultRepositorySystemSession) InvalidVersionSpecificationException(org.eclipse.aether.version.InvalidVersionSpecificationException) ExecutionException(java.util.concurrent.ExecutionException) MorePaths(com.facebook.buck.io.MorePaths) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) Futures(com.google.common.util.concurrent.Futures) Ordering(com.google.common.collect.Ordering) RepositoryException(org.eclipse.aether.RepositoryException) Paths(java.nio.file.Paths) DefaultPluginManagementInjector(org.apache.maven.model.management.DefaultPluginManagementInjector) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) Exclusion(org.eclipse.aether.graph.Exclusion) Preconditions(com.google.common.base.Preconditions) VisibleForTesting(com.google.common.annotations.VisibleForTesting) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) ArtifactType(org.eclipse.aether.artifact.ArtifactType) ImmutableList(com.google.common.collect.ImmutableList) Exclusion(org.eclipse.aether.graph.Exclusion) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) STGroupString(org.stringtemplate.v4.STGroupString) Dependency(org.eclipse.aether.graph.Dependency) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 2 with Exclusion

use of org.eclipse.aether.graph.Exclusion in project spring-boot by spring-projects.

the class DependencyResolutionContext method addDependencyManagement.

public void addDependencyManagement(DependencyManagement dependencyManagement) {
    for (org.springframework.boot.cli.compiler.dependencies.Dependency dependency : dependencyManagement.getDependencies()) {
        List<Exclusion> aetherExclusions = new ArrayList<>();
        for (org.springframework.boot.cli.compiler.dependencies.Dependency.Exclusion exclusion : dependency.getExclusions()) {
            aetherExclusions.add(new Exclusion(exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*"));
        }
        Dependency aetherDependency = new Dependency(new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), "jar", dependency.getVersion()), JavaScopes.COMPILE, false, aetherExclusions);
        this.managedDependencies.add(0, aetherDependency);
        this.managedDependencyByGroupAndArtifact.put(getIdentifier(aetherDependency), aetherDependency);
    }
    this.dependencyManagement = this.dependencyManagement == null ? dependencyManagement : new CompositeDependencyManagement(dependencyManagement, this.dependencyManagement);
    this.artifactCoordinatesResolver = new DependencyManagementArtifactCoordinatesResolver(this.dependencyManagement);
}
Also used : ArrayList(java.util.ArrayList) Dependency(org.eclipse.aether.graph.Dependency) DependencyManagementArtifactCoordinatesResolver(org.springframework.boot.cli.compiler.dependencies.DependencyManagementArtifactCoordinatesResolver) Exclusion(org.eclipse.aether.graph.Exclusion) CompositeDependencyManagement(org.springframework.boot.cli.compiler.dependencies.CompositeDependencyManagement) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 3 with Exclusion

use of org.eclipse.aether.graph.Exclusion in project spring-boot by spring-projects.

the class AetherGrapeEngine method grab.

@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 ex) {
        throw new DependencyResolutionFailedException(ex);
    } catch (MalformedURLException ex) {
        throw new DependencyResolutionFailedException(ex);
    }
    return null;
}
Also used : GroovyClassLoader(groovy.lang.GroovyClassLoader) ArtifactResolutionException(org.eclipse.aether.resolution.ArtifactResolutionException) MalformedURLException(java.net.MalformedURLException) Exclusion(org.eclipse.aether.graph.Exclusion) Dependency(org.eclipse.aether.graph.Dependency) File(java.io.File)

Example 4 with Exclusion

use of org.eclipse.aether.graph.Exclusion in project spring-boot by spring-projects.

the class AetherGrapeEngine method resolve.

@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[uris.size()]);
    } catch (Exception ex) {
        throw new DependencyResolutionFailedException(ex);
    }
}
Also used : Exclusion(org.eclipse.aether.graph.Exclusion) ArrayList(java.util.ArrayList) Dependency(org.eclipse.aether.graph.Dependency) File(java.io.File) URI(java.net.URI) MalformedURLException(java.net.MalformedURLException) ArtifactResolutionException(org.eclipse.aether.resolution.ArtifactResolutionException)

Aggregations

Dependency (org.eclipse.aether.graph.Dependency)4 Exclusion (org.eclipse.aether.graph.Exclusion)4 ArtifactResolutionException (org.eclipse.aether.resolution.ArtifactResolutionException)3 File (java.io.File)2 MalformedURLException (java.net.MalformedURLException)2 ArrayList (java.util.ArrayList)2 DefaultArtifact (org.eclipse.aether.artifact.DefaultArtifact)2 MutableDirectedGraph (com.facebook.buck.graph.MutableDirectedGraph)1 TraversableGraph (com.facebook.buck.graph.TraversableGraph)1 MorePaths (com.facebook.buck.io.MorePaths)1 MoreCollectors (com.facebook.buck.util.MoreCollectors)1 MostExecutors (com.facebook.buck.util.concurrent.MostExecutors)1 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 Function (com.google.common.base.Function)1 Preconditions (com.google.common.base.Preconditions)1 FluentIterable (com.google.common.collect.FluentIterable)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 ImmutableSetMultimap (com.google.common.collect.ImmutableSetMultimap)1 ImmutableSortedMap (com.google.common.collect.ImmutableSortedMap)1