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 javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import org.apache.maven.api.DependencyCoordinate;
25 import org.apache.maven.api.Exclusion;
26 import org.apache.maven.api.annotations.Nonnull;
27 import org.apache.maven.api.services.DependencyCoordinateFactory;
28 import org.apache.maven.api.services.DependencyCoordinateFactoryRequest;
29 import org.eclipse.aether.artifact.ArtifactType;
30
31 import static org.apache.maven.internal.impl.Utils.map;
32 import static org.apache.maven.internal.impl.Utils.nonNull;
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");
42 InternalSession session = InternalSession.from(request.getSession());
43
44 ArtifactType type = null;
45 if (request.getType() != null) {
46 type = session.getSession().getArtifactTypeRegistry().get(request.getType());
47 }
48 return new DefaultDependencyCoordinate(
49 session,
50 new org.eclipse.aether.graph.Dependency(
51 new org.eclipse.aether.artifact.DefaultArtifact(
52 request.getGroupId(),
53 request.getArtifactId(),
54 request.getClassifier(),
55 request.getExtension(),
56 request.getVersion(),
57 type),
58 request.getScope(),
59 request.isOptional(),
60 map(request.getExclusions(), this::toExclusion)));
61 }
62
63 private org.eclipse.aether.graph.Exclusion toExclusion(Exclusion exclusion) {
64 return new org.eclipse.aether.graph.Exclusion(exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*");
65 }
66 }