1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import static org.apache.maven.internal.impl.Utils.cast;
22 import static org.apache.maven.internal.impl.Utils.nonNull;
23
24 import java.util.stream.Collectors;
25 import javax.inject.Named;
26 import javax.inject.Singleton;
27 import org.apache.maven.api.DependencyCoordinate;
28 import org.apache.maven.api.Exclusion;
29 import org.apache.maven.api.annotations.Nonnull;
30 import org.apache.maven.api.services.DependencyCoordinateFactory;
31 import org.apache.maven.api.services.DependencyCoordinateFactoryRequest;
32 import org.eclipse.aether.artifact.ArtifactType;
33
34 @Named
35 @Singleton
36 public class DefaultDependencyCoordinateFactory implements DependencyCoordinateFactory {
37
38 @Nonnull
39 @Override
40 public DependencyCoordinate create(@Nonnull DependencyCoordinateFactoryRequest request) {
41 nonNull(request, "request can not be null");
42 DefaultSession session =
43 cast(DefaultSession.class, request.getSession(), "request.session should be a " + DefaultSession.class);
44
45 ArtifactType type = null;
46 if (request.getType() != null) {
47 type = session.getSession().getArtifactTypeRegistry().get(request.getType());
48 }
49 return new DefaultDependencyCoordinate(
50 session,
51 new org.eclipse.aether.graph.Dependency(
52 new org.eclipse.aether.artifact.DefaultArtifact(
53 request.getGroupId(),
54 request.getArtifactId(),
55 request.getClassifier(),
56 request.getExtension(),
57 request.getVersion(),
58 type),
59 request.getScope(),
60 request.isOptional(),
61 request.getExclusions().stream().map(this::toExclusion).collect(Collectors.toList())));
62 }
63
64 private org.eclipse.aether.graph.Exclusion toExclusion(Exclusion exclusion) {
65 return new org.eclipse.aether.graph.Exclusion(exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*");
66 }
67 }