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.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Collection;
26
27 import org.apache.maven.api.Artifact;
28 import org.apache.maven.api.RemoteRepository;
29 import org.apache.maven.api.annotations.Nonnull;
30 import org.apache.maven.api.services.ArtifactDeployer;
31 import org.apache.maven.api.services.ArtifactDeployerException;
32 import org.apache.maven.api.services.ArtifactDeployerRequest;
33 import org.eclipse.aether.RepositorySystem;
34 import org.eclipse.aether.deployment.DeployRequest;
35 import org.eclipse.aether.deployment.DeployResult;
36 import org.eclipse.aether.deployment.DeploymentException;
37
38 import static org.apache.maven.internal.impl.Utils.cast;
39 import static org.apache.maven.internal.impl.Utils.nonNull;
40
41
42
43
44 @Named
45 @Singleton
46 public class DefaultArtifactDeployer implements ArtifactDeployer {
47 private final @Nonnull RepositorySystem repositorySystem;
48
49 @Inject
50 DefaultArtifactDeployer(@Nonnull RepositorySystem repositorySystem) {
51 this.repositorySystem = nonNull(repositorySystem, "repositorySystem can not be null");
52 }
53
54 @Override
55 public void deploy(@Nonnull ArtifactDeployerRequest request) {
56 nonNull(request, "request can not be null");
57 DefaultSession session =
58 cast(DefaultSession.class, request.getSession(), "request.session should be a " + DefaultSession.class);
59 Collection<Artifact> artifacts = nonNull(request.getArtifacts(), "request.artifacts can not be null");
60 RemoteRepository repository = nonNull(request.getRepository(), "request.repository can not be null");
61 try {
62 DeployRequest deployRequest = new DeployRequest()
63 .setRepository(session.toRepository(repository))
64 .setArtifacts(session.toArtifacts(artifacts));
65
66 DeployResult result = repositorySystem.deploy(session.getSession(), deployRequest);
67 } catch (DeploymentException e) {
68 throw new ArtifactDeployerException("Unable to deploy artifacts", e);
69 }
70 }
71 }