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.ArtifactCoordinate;
25 import org.apache.maven.api.annotations.Nonnull;
26 import org.apache.maven.api.services.ArtifactCoordinateFactory;
27 import org.apache.maven.api.services.ArtifactCoordinateFactoryRequest;
28 import org.apache.maven.shared.utils.StringUtils;
29 import org.eclipse.aether.artifact.ArtifactType;
30
31 import static org.apache.maven.internal.impl.Utils.cast;
32 import static org.apache.maven.internal.impl.Utils.nonNull;
33
34 @Named
35 @Singleton
36 public class DefaultArtifactCoordinateFactory implements ArtifactCoordinateFactory {
37 @Override
38 public ArtifactCoordinate create(@Nonnull ArtifactCoordinateFactoryRequest request) {
39 nonNull(request, "request can not be null");
40 DefaultSession session =
41 cast(DefaultSession.class, request.getSession(), "request.session should be a " + DefaultSession.class);
42 ArtifactType type = null;
43 if (request.getType() != null) {
44 type = session.getSession().getArtifactTypeRegistry().get(request.getType());
45 }
46 String classifier = StringUtils.isNotEmpty(request.getClassifier())
47 ? request.getClassifier()
48 : type != null ? type.getClassifier() : "";
49 String extension = StringUtils.isNotEmpty(request.getExtension())
50 ? request.getExtension()
51 : type != null ? type.getExtension() : "";
52 return new DefaultArtifactCoordinate(
53 session,
54 new org.eclipse.aether.artifact.DefaultArtifact(
55 request.getGroupId(),
56 request.getArtifactId(),
57 classifier,
58 extension,
59 request.getVersion(),
60 type));
61 }
62 }