Skip to content

Commit cce6c37

Browse files
authored
Add https_proxy and no_proxy configurations to the Maven repository resolution (#725)
1 parent 2385fb1 commit cce6c37

File tree

18 files changed

+1000
-281
lines changed

18 files changed

+1000
-281
lines changed

Diff for: build-info-client/src/main/java/org/jfrog/build/client/PreemptiveHttpClientBuilder.java

+2
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,11 @@ public PreemptiveHttpClientBuilder setProxyConfiguration(ProxyConfiguration prox
103103
}
104104
return this;
105105
}
106+
106107
public ProxyConfiguration getProxyConfiguration(){
107108
return proxyConfiguration;
108109
}
110+
109111
public PreemptiveHttpClientBuilder setConnectionRetries(int connectionRetries) {
110112
this.connectionRetries = connectionRetries;
111113
return this;

Diff for: build-info-extractor-maven3/src/main/java/org/jfrog/build/extractor/maven/ArtifactoryManagerBuilder.java

+18-18
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.codehaus.plexus.component.annotations.Component;
55
import org.codehaus.plexus.component.annotations.Requirement;
66
import org.codehaus.plexus.logging.Logger;
7+
import org.jfrog.build.extractor.Proxy;
8+
import org.jfrog.build.extractor.ProxySelector;
79
import org.jfrog.build.extractor.clientConfiguration.ArtifactoryClientConfiguration;
810
import org.jfrog.build.extractor.clientConfiguration.ClientConfigurationFields;
911
import org.jfrog.build.extractor.clientConfiguration.client.artifactory.ArtifactoryManager;
@@ -25,7 +27,7 @@ public class ArtifactoryManagerBuilder {
2527
public ArtifactoryManager resolveProperties(ArtifactoryClientConfiguration clientConf) {
2628
ArtifactoryManager artifactoryManager = resolveClientProps(clientConf);
2729
resolveTimeout(clientConf, artifactoryManager);
28-
resolveProxy(clientConf.proxy, artifactoryManager);
30+
resolveProxy(clientConf, artifactoryManager);
2931
resolveRetriesParams(clientConf, artifactoryManager);
3032
resolveInsecureTls(clientConf, artifactoryManager);
3133
return artifactoryManager;
@@ -72,23 +74,21 @@ private void resolveInsecureTls(ArtifactoryClientConfiguration clientConf, Artif
7274
artifactoryManager.setInsecureTls(clientConf.getInsecureTls());
7375
}
7476

75-
private void resolveProxy(ArtifactoryClientConfiguration.ProxyHandler proxyConf,
76-
ArtifactoryManager artifactoryManager) {
77-
String proxyHost = proxyConf.getHost();
78-
79-
if (StringUtils.isNotBlank(proxyHost)) {
80-
logResolvedProperty(ClientConfigurationFields.HOST, proxyHost);
81-
if (proxyConf.getPort() == null) {
82-
return;
83-
}
84-
String proxyUsername = proxyConf.getUsername();
85-
if (StringUtils.isNotBlank(proxyUsername)) {
86-
logResolvedProperty(ClientConfigurationFields.USERNAME, proxyUsername);
87-
artifactoryManager.setProxyConfiguration(proxyHost, proxyConf.getPort(), proxyUsername,
88-
proxyConf.getPassword());
89-
} else {
90-
artifactoryManager.setProxyConfiguration(proxyHost, proxyConf.getPort());
91-
}
77+
private void resolveProxy(ArtifactoryClientConfiguration clientConf, ArtifactoryManager artifactoryManager) {
78+
ProxySelector proxySelector = new ProxySelector(
79+
clientConf.proxy.getHost(),
80+
clientConf.proxy.getPort(),
81+
clientConf.proxy.getUsername(),
82+
clientConf.proxy.getPassword(),
83+
clientConf.httpsProxy.getHost(),
84+
clientConf.httpsProxy.getPort(),
85+
clientConf.httpsProxy.getUsername(),
86+
clientConf.httpsProxy.getPassword(),
87+
clientConf.proxy.getNoProxy()
88+
);
89+
Proxy proxy = proxySelector.getProxy(clientConf.publisher.getContextUrl());
90+
if (proxy != null) {
91+
artifactoryManager.setProxyConfiguration(proxy.getHost(), proxy.getPort(), proxy.getUsername(), proxy.getPassword());
9292
}
9393
}
9494

Diff for: build-info-extractor-maven3/src/main/java/org/jfrog/build/extractor/maven/ArtifactoryProjectBuilder.java

+10-50
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
package org.jfrog.build.extractor.maven;
22

3-
import org.apache.commons.lang3.StringUtils;
43
import org.apache.maven.artifact.repository.ArtifactRepository;
5-
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
6-
import org.apache.maven.artifact.repository.MavenArtifactRepository;
7-
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
84
import org.apache.maven.project.DefaultProjectBuilder;
95
import org.apache.maven.project.ProjectBuildingException;
106
import org.apache.maven.project.ProjectBuildingRequest;
117
import org.apache.maven.project.ProjectBuildingResult;
128
import org.codehaus.plexus.component.annotations.Component;
139
import org.codehaus.plexus.component.annotations.Requirement;
10+
import org.jfrog.build.extractor.ProxySelector;
11+
import org.jfrog.build.extractor.maven.resolver.ArtifactoryPluginResolution;
1412
import org.jfrog.build.extractor.maven.resolver.ResolutionHelper;
15-
import org.sonatype.aether.repository.RepositoryPolicy;
1613

1714
import javax.inject.Named;
1815
import java.io.File;
@@ -52,53 +49,16 @@ public List<ProjectBuildingResult> build(List<File> pomFiles, boolean recursive,
5249

5350
private List<ArtifactRepository> getRepositories() {
5451
List<ArtifactRepository> repositories = new ArrayList<>();
52+
ProxySelector proxySelector = new ProxySelector(resolutionHelper.getHttpProxyHost(), resolutionHelper.getHttpProxyPort(), resolutionHelper.getHttpProxyUsername(), resolutionHelper.getHttpProxyPassword(), resolutionHelper.getHttpsProxyHost(), resolutionHelper.getHttpsProxyPort(), resolutionHelper.getHttpsProxyUsername(), resolutionHelper.getHttpsProxyPassword(), resolutionHelper.getNoProxy());
5553

56-
String releaseRepoUrl = resolutionHelper.getRepoReleaseUrl();
57-
String snapshotRepoUrl = resolutionHelper.getRepoSnapshotUrl();
58-
59-
org.apache.maven.artifact.repository.Authentication authentication = null;
60-
if (StringUtils.isNotBlank(resolutionHelper.getRepoUsername())) {
61-
authentication = new org.apache.maven.artifact.repository.Authentication(resolutionHelper.getRepoUsername(), resolutionHelper.getRepoPassword());
62-
}
63-
org.apache.maven.repository.Proxy proxy = null;
64-
if (StringUtils.isNotBlank(resolutionHelper.getProxyHost())) {
65-
proxy = new org.apache.maven.repository.Proxy();
66-
proxy.setHost(resolutionHelper.getProxyHost());
67-
proxy.setPort(resolutionHelper.getProxyPort());
68-
proxy.setUserName(resolutionHelper.getProxyUsername());
69-
proxy.setPassword(resolutionHelper.getProxyPassword());
54+
ArtifactoryPluginResolution artifactoryResolution = new ArtifactoryPluginResolution(resolutionHelper.getRepoReleaseUrl(), resolutionHelper.getRepoSnapshotUrl(), resolutionHelper.getRepoUsername(), resolutionHelper.getRepoPassword(), proxySelector, resolutionHelper.getLogger());
55+
ArtifactRepository snapshotRepository = artifactoryResolution.createSnapshotRepository();
56+
if (snapshotRepository != null) {
57+
repositories.add(snapshotRepository);
7058
}
71-
72-
if (StringUtils.isNotBlank(snapshotRepoUrl)) {
73-
ArtifactRepositoryPolicy snapshotPolicy = new ArtifactRepositoryPolicy(true, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN);
74-
ArtifactRepositoryPolicy releasePolicy = new ArtifactRepositoryPolicy(false, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN);
75-
MavenArtifactRepository repository = new MavenArtifactRepository("artifactory-snapshot", snapshotRepoUrl, new DefaultRepositoryLayout(), snapshotPolicy, releasePolicy);
76-
77-
if (authentication != null) {
78-
repository.setAuthentication(authentication);
79-
}
80-
if (proxy != null) {
81-
repository.setProxy(proxy);
82-
}
83-
84-
repositories.add(repository);
85-
}
86-
if (StringUtils.isNotBlank(releaseRepoUrl)) {
87-
boolean snapshotPolicyEnabled = StringUtils.isBlank(snapshotRepoUrl);
88-
String repositoryId = snapshotPolicyEnabled ? "artifactory-release-snapshot" : "artifactory-release";
89-
90-
ArtifactRepositoryPolicy snapshotPolicy = new ArtifactRepositoryPolicy(snapshotPolicyEnabled, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN);
91-
ArtifactRepositoryPolicy releasePolicy = new ArtifactRepositoryPolicy(true, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN);
92-
MavenArtifactRepository repository = new MavenArtifactRepository(repositoryId, releaseRepoUrl, new DefaultRepositoryLayout(), snapshotPolicy, releasePolicy);
93-
94-
if (authentication != null) {
95-
repository.setAuthentication(authentication);
96-
}
97-
if (proxy != null) {
98-
repository.setProxy(proxy);
99-
}
100-
101-
repositories.add(repository);
59+
ArtifactRepository releaseRepository = artifactoryResolution.createReleaseRepository();
60+
if (releaseRepository != null) {
61+
repositories.add(releaseRepository);
10262
}
10363
return repositories;
10464
}

0 commit comments

Comments
 (0)