diff --git a/cdi-embedder/src/test/java/org/commonjava/maven/galley/embed/TestCDIProvider.java b/cdi-embedder/src/test/java/org/commonjava/maven/galley/embed/TestCDIProvider.java index 52c934151..63fc867b5 100644 --- a/cdi-embedder/src/test/java/org/commonjava/maven/galley/embed/TestCDIProvider.java +++ b/cdi-embedder/src/test/java/org/commonjava/maven/galley/embed/TestCDIProvider.java @@ -30,6 +30,7 @@ import org.commonjava.maven.galley.transport.NoOpLocationExpander; import org.commonjava.maven.galley.transport.SimpleUrlLocationResolver; import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; +import org.commonjava.maven.galley.transport.htcli.conf.GlobalProxyConfig; import org.commonjava.o11yphant.metrics.AbstractTrafficClassifier; import org.commonjava.o11yphant.metrics.TrafficClassifier; import org.commonjava.o11yphant.metrics.conf.DefaultMetricsConfig; @@ -100,6 +101,33 @@ public String getMetricUniqueName( Location location ) } }; + private final GlobalProxyConfig globalProxyConfig = new GlobalProxyConfig() + { + @Override + public String getHost() + { + return "proxy.com"; + } + + @Override + public int getPort() + { + return 3128; + } + + @Override + public String getUser() + { + return null; + } + + @Override + public List getAllowHttpJobTypes() + { + return new ArrayList<>(); + } + }; + @Inject private PathGenerator pathGenerator; @@ -191,6 +219,13 @@ public TransportMetricConfig getTransportMetricConfig() return transportMetricConfig; } + @Produces + @Default + public GlobalProxyConfig getGlobalProxyConfig() + { + return globalProxyConfig; + } + @Produces @Default public MetricsConfig getMetricsConfig() diff --git a/core/src/test/java/org/commonjava/maven/galley/internal/xfer/DownloadHandlerConcurrencyTest.java b/core/src/test/java/org/commonjava/maven/galley/internal/xfer/DownloadHandlerConcurrencyTest.java index 016ba9f63..627d27d4d 100644 --- a/core/src/test/java/org/commonjava/maven/galley/internal/xfer/DownloadHandlerConcurrencyTest.java +++ b/core/src/test/java/org/commonjava/maven/galley/internal/xfer/DownloadHandlerConcurrencyTest.java @@ -91,7 +91,7 @@ public void before() new TransferDecoratorManager( new NoOpTransferDecorator() ), false ); transport = new HttpClientTransport( new HttpImpl( new MemoryPasswordManager() ), new ObjectMapper(), - new GlobalHttpConfiguration(), null, null ); + new GlobalHttpConfiguration().getGlobalProxyConfig(), null, null ); } @BMRules( rules = { @BMRule( name = "init rendezvous", targetClass = "DownloadHandler", targetMethod = "", diff --git a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/HttpClientTransport.java b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/HttpClientTransport.java index be3712e0d..c958809f3 100644 --- a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/HttpClientTransport.java +++ b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/HttpClientTransport.java @@ -28,7 +28,7 @@ import org.commonjava.maven.galley.spi.transport.ListingJob; import org.commonjava.maven.galley.spi.transport.PublishJob; import org.commonjava.maven.galley.spi.transport.Transport; -import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; +import org.commonjava.maven.galley.transport.htcli.conf.GlobalProxyConfig; import org.commonjava.maven.galley.transport.htcli.conf.HttpJobType; import org.commonjava.maven.galley.transport.htcli.internal.HttpDownload; import org.commonjava.maven.galley.transport.htcli.internal.HttpExistence; @@ -67,7 +67,7 @@ public class HttpClientTransport private Http http; @Inject - private GlobalHttpConfiguration globalConfig; + private GlobalProxyConfig globalProxyConfig; @Inject private ObjectMapper mapper; @@ -87,12 +87,12 @@ public HttpClientTransport( final Http http ) this( http, new ObjectMapper(), null, null, null ); } - public HttpClientTransport( final Http http, final ObjectMapper mapper, final GlobalHttpConfiguration globalConfig, + public HttpClientTransport( final Http http, final ObjectMapper mapper, final GlobalProxyConfig globalProxyConfig, final MetricRegistry metricRegistry, final TransportMetricConfig metricConfig ) { this.http = http; this.mapper = mapper; - this.globalConfig = globalConfig; + this.globalProxyConfig = globalProxyConfig; this.metricRegistry = metricRegistry; this.metricConfig = metricConfig; } @@ -168,7 +168,8 @@ private HttpLocation getHttpLocation( final Location repository, HttpJobType htt { try { - return new WrapperHttpLocation( repository, globalConfig, httpJobType ); + logger.debug( "Wrap location with the global proxy config, httpJobType: {}", httpJobType.name() ); + return new WrapperHttpLocation( repository, globalProxyConfig, httpJobType ); } catch ( final MalformedURLException e ) { diff --git a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalHttpConfiguration.java b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalHttpConfiguration.java index f62bedeff..399a21832 100644 --- a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalHttpConfiguration.java +++ b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalHttpConfiguration.java @@ -18,19 +18,19 @@ public class GlobalHttpConfiguration { - ProxyConfig proxyConfig; + GlobalProxyConfig globalProxyConfig; public GlobalHttpConfiguration() { } - public GlobalHttpConfiguration( ProxyConfig proxyConfig ) + public GlobalHttpConfiguration( GlobalProxyConfig globalProxyConfig ) { - this.proxyConfig = proxyConfig; + this.globalProxyConfig = globalProxyConfig; } - public ProxyConfig getProxyConfig() + public GlobalProxyConfig getGlobalProxyConfig() { - return proxyConfig; + return globalProxyConfig; } } diff --git a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/ProxyConfig.java b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalProxyConfig.java similarity index 96% rename from transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/ProxyConfig.java rename to transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalProxyConfig.java index 5bf85dca1..42c0ce565 100644 --- a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/ProxyConfig.java +++ b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/conf/GlobalProxyConfig.java @@ -17,7 +17,7 @@ import java.util.List; -public interface ProxyConfig +public interface GlobalProxyConfig { String getHost(); diff --git a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/internal/model/WrapperHttpLocation.java b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/internal/model/WrapperHttpLocation.java index e4f908c6e..ec6914db5 100644 --- a/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/internal/model/WrapperHttpLocation.java +++ b/transports/httpclient/src/main/java/org/commonjava/maven/galley/transport/htcli/internal/model/WrapperHttpLocation.java @@ -16,9 +16,8 @@ package org.commonjava.maven.galley.transport.htcli.internal.model; import org.commonjava.maven.galley.model.Location; -import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; +import org.commonjava.maven.galley.transport.htcli.conf.GlobalProxyConfig; import org.commonjava.maven.galley.transport.htcli.conf.HttpJobType; -import org.commonjava.maven.galley.transport.htcli.conf.ProxyConfig; import org.commonjava.maven.galley.transport.htcli.model.HttpLocation; import org.commonjava.maven.galley.transport.htcli.model.LocationTrustType; @@ -34,16 +33,16 @@ public class WrapperHttpLocation private final URL url; - private final GlobalHttpConfiguration globalConfig; + private final GlobalProxyConfig globalProxyConfig; private final HttpJobType httpJobType; - public WrapperHttpLocation( final Location delegate, final GlobalHttpConfiguration globalConfig, + public WrapperHttpLocation( final Location delegate, final GlobalProxyConfig globalProxyConfig, final HttpJobType httpJobType ) throws MalformedURLException { this.delegate = delegate; - this.globalConfig = globalConfig; + this.globalProxyConfig = globalProxyConfig; this.url = new URL( delegate.getUri() ); this.httpJobType = httpJobType; } @@ -117,21 +116,21 @@ public String getUser() @Override public String getProxyHost() { - ProxyConfig proxy = getProxyConfig(); + GlobalProxyConfig proxy = getGlobalProxyConfig(); return isProxyAllowHttpJobType( proxy ) ? proxy.getHost() : null; } @Override public String getProxyUser() { - ProxyConfig proxy = getProxyConfig(); + GlobalProxyConfig proxy = getGlobalProxyConfig(); return isProxyAllowHttpJobType( proxy ) ? proxy.getUser() : null; } @Override public int getProxyPort() { - ProxyConfig proxy = getProxyConfig(); + GlobalProxyConfig proxy = getGlobalProxyConfig(); return isProxyAllowHttpJobType( proxy ) ? proxy.getPort() : 8080; } @@ -214,12 +213,12 @@ public String getName() return delegate.getName(); } - private ProxyConfig getProxyConfig() + private GlobalProxyConfig getGlobalProxyConfig() { - return globalConfig == null ? null : globalConfig.getProxyConfig(); + return globalProxyConfig; } - private boolean isProxyAllowHttpJobType( ProxyConfig proxy ) + private boolean isProxyAllowHttpJobType( GlobalProxyConfig proxy ) { return proxy != null && proxy.getAllowHttpJobTypes().contains( httpJobType.name() ); }