1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.artifact.manager;
20
21 import java.util.List;
22
23 import org.apache.maven.artifact.Artifact;
24 import org.apache.maven.artifact.repository.ArtifactRepository;
25 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
26 import org.apache.maven.execution.MavenExecutionRequest;
27 import org.apache.maven.execution.MavenSession;
28 import org.apache.maven.plugin.LegacySupport;
29 import org.apache.maven.repository.MirrorSelector;
30 import org.apache.maven.settings.Mirror;
31 import org.apache.maven.settings.Proxy;
32 import org.apache.maven.settings.Server;
33 import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
34 import org.apache.maven.settings.crypto.SettingsDecrypter;
35 import org.apache.maven.settings.crypto.SettingsDecryptionResult;
36 import org.apache.maven.wagon.ResourceDoesNotExistException;
37 import org.apache.maven.wagon.TransferFailedException;
38 import org.apache.maven.wagon.authentication.AuthenticationInfo;
39 import org.apache.maven.wagon.proxy.ProxyInfo;
40 import org.codehaus.plexus.component.annotations.Component;
41 import org.codehaus.plexus.component.annotations.Requirement;
42 import org.codehaus.plexus.logging.Logger;
43
44
45
46
47 @Component(role = WagonManager.class)
48 public class DefaultWagonManager extends org.apache.maven.repository.legacy.DefaultWagonManager
49 implements WagonManager {
50
51
52 @Requirement
53 private Logger log;
54
55 @Requirement
56 private LegacySupport legacySupport;
57
58 @Requirement
59 private SettingsDecrypter settingsDecrypter;
60
61 @Requirement
62 private MirrorSelector mirrorSelector;
63
64 @Requirement
65 private ArtifactRepositoryFactory artifactRepositoryFactory;
66
67 public AuthenticationInfo getAuthenticationInfo(String id) {
68 MavenSession session = legacySupport.getSession();
69
70 if (session != null && id != null) {
71 MavenExecutionRequest request = session.getRequest();
72
73 if (request != null) {
74 List<Server> servers = request.getServers();
75
76 if (servers != null) {
77 for (Server server : servers) {
78
79
80
81 if (id.equals(server.getId())) {
82 SettingsDecryptionResult result =
83 settingsDecrypter.decrypt(new DefaultSettingsDecryptionRequest(server));
84 server = result.getServer();
85
86 AuthenticationInfo authInfo = new AuthenticationInfo();
87 authInfo.setUserName(server.getUsername());
88 authInfo.setPassword(server.getPassword());
89 authInfo.setPrivateKey(server.getPrivateKey());
90 authInfo.setPassphrase(server.getPassphrase());
91
92 return authInfo;
93 }
94 }
95 }
96 }
97 }
98
99
100 return new AuthenticationInfo();
101 }
102
103 public ProxyInfo getProxy(String protocol) {
104 MavenSession session = legacySupport.getSession();
105
106 if (session != null && protocol != null) {
107 MavenExecutionRequest request = session.getRequest();
108
109 if (request != null) {
110 List<Proxy> proxies = request.getProxies();
111
112 if (proxies != null) {
113 for (Proxy proxy : proxies) {
114 if (proxy.isActive() && protocol.equalsIgnoreCase(proxy.getProtocol())) {
115 SettingsDecryptionResult result =
116 settingsDecrypter.decrypt(new DefaultSettingsDecryptionRequest(proxy));
117 proxy = result.getProxy();
118
119 ProxyInfo proxyInfo = new ProxyInfo();
120 proxyInfo.setHost(proxy.getHost());
121 proxyInfo.setType(proxy.getProtocol());
122 proxyInfo.setPort(proxy.getPort());
123 proxyInfo.setNonProxyHosts(proxy.getNonProxyHosts());
124 proxyInfo.setUserName(proxy.getUsername());
125 proxyInfo.setPassword(proxy.getPassword());
126
127 return proxyInfo;
128 }
129 }
130 }
131 }
132 }
133
134 return null;
135 }
136
137 public void getArtifact(Artifact artifact, ArtifactRepository repository)
138 throws TransferFailedException, ResourceDoesNotExistException {
139 getArtifact(artifact, repository, null, false);
140 }
141
142 public void getArtifact(Artifact artifact, List<ArtifactRepository> remoteRepositories)
143 throws TransferFailedException, ResourceDoesNotExistException {
144 getArtifact(artifact, remoteRepositories, null, false);
145 }
146
147 @Deprecated
148 public ArtifactRepository getMirrorRepository(ArtifactRepository repository) {
149
150 Mirror mirror = mirrorSelector.getMirror(
151 repository, legacySupport.getSession().getSettings().getMirrors());
152
153 if (mirror != null) {
154 String id = mirror.getId();
155 if (id == null) {
156
157 id = repository.getId();
158 }
159
160 log.debug("Using mirror: " + mirror.getUrl() + " (id: " + id + ")");
161
162 repository = artifactRepositoryFactory.createArtifactRepository(
163 id, mirror.getUrl(), repository.getLayout(), repository.getSnapshots(), repository.getReleases());
164 }
165 return repository;
166 }
167 }