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 org.apache.maven.api.annotations.Nonnull;
22 import org.apache.maven.api.di.Inject;
23 import org.apache.maven.api.di.Named;
24 import org.apache.maven.api.di.Singleton;
25 import org.apache.maven.api.services.ArtifactInstaller;
26 import org.apache.maven.api.services.ArtifactInstallerException;
27 import org.apache.maven.api.services.ArtifactInstallerRequest;
28 import org.eclipse.aether.RepositorySystem;
29 import org.eclipse.aether.installation.InstallRequest;
30 import org.eclipse.aether.installation.InstallationException;
31
32 import static org.apache.maven.internal.impl.Utils.nonNull;
33
34 @Named
35 @Singleton
36 public class DefaultArtifactInstaller implements ArtifactInstaller {
37
38 private final RepositorySystem repositorySystem;
39
40 @Inject
41 DefaultArtifactInstaller(@Nonnull RepositorySystem repositorySystem) {
42 this.repositorySystem = nonNull(repositorySystem);
43 }
44
45 @Override
46 public void install(ArtifactInstallerRequest request) throws ArtifactInstallerException, IllegalArgumentException {
47 nonNull(request, "request");
48 InternalSession session = InternalSession.from(request.getSession());
49 try {
50 InstallRequest installRequest =
51 new InstallRequest().setArtifacts(session.toArtifacts(request.getArtifacts()));
52
53 repositorySystem.install(session.getSession(), installRequest);
54 } catch (InstallationException e) {
55 throw new ArtifactInstallerException(e.getMessage(), e);
56 }
57 }
58 }