You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ni...@apache.org on 2011/08/28 16:24:23 UTC
svn commit: r1162529 - in
/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src:
main/java/org/apache/maven/wagon/providers/http/
test/java/org/apache/maven/wagon/providers/http/
Author: nicolas
Date: Sun Aug 28 14:24:23 2011
New Revision: 1162529
URL: http://svn.apache.org/viewvc?rev=1162529&view=rev
Log:
[WAGON-346] use openConnection(Proxy) in replacement to system properties
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonTest.java
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java
Modified: maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java?rev=1162529&r1=1162528&r2=1162529&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java Sun Aug 28 14:24:23 2011
@@ -38,8 +38,12 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.net.Authenticator;
import java.net.HttpURLConnection;
+import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
+import java.net.Proxy;
+import java.net.Proxy.Type;
+import java.net.SocketAddress;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
@@ -58,14 +62,10 @@ import java.util.zip.GZIPInputStream;
public class LightweightHttpWagon
extends StreamWagon
{
- private String previousProxyExclusions;
-
- private String previousHttpProxyHost;
-
- private String previousHttpProxyPort;
-
private HttpURLConnection putConnection;
+ private Proxy proxy = Proxy.NO_PROXY;
+
public static final int MAX_REDIRECTS = 10;
/**
@@ -80,13 +80,6 @@ public class LightweightHttpWagon
*/
private Properties httpHeaders;
-
- private static final String HTTP_PROXY_HOST_SYSPROPS = "http.proxyHost";
-
- private static final String HTTP_PROXY_PORT_SYSPROPS = "http.proxyPort";
-
- private static final String HTTP_NON_PROXY_HOSTS_SYSPROPS = "http.nonProxyHosts";
-
/**
* Builds a complete URL string from the repository URL and the relative path passed.
*
@@ -126,7 +119,7 @@ public class LightweightHttpWagon
visitedUrls.add( visitingUrl );
URL url = new URL( visitingUrl );
- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+ HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection( this.proxy );
urlConnection.setRequestProperty( "Accept-Encoding", "gzip" );
if ( !useCache )
{
@@ -178,8 +171,6 @@ public class LightweightHttpWagon
if ( getProxyInfo() != null && getProxyInfo().getHost() != null )
{
message.append( " with proxyInfo " ).append( getProxyInfo().toString() );
- message.append( " , proxy sysprops current " + System.getProperty( HTTP_PROXY_HOST_SYSPROPS ) + "/"
- + System.getProperty( HTTP_PROXY_PORT_SYSPROPS ) );
}
throw new TransferFailedException( message.toString(), e );
}
@@ -204,7 +195,7 @@ public class LightweightHttpWagon
try
{
URL url = new URL( buildUrl( resource.getName() ) );
- putConnection = (HttpURLConnection) url.openConnection();
+ putConnection = (HttpURLConnection) url.openConnection( this.proxy );
addHeaders( putConnection );
@@ -259,23 +250,10 @@ public class LightweightHttpWagon
protected void openConnectionInternal()
throws ConnectionException, AuthenticationException
{
-
- previousHttpProxyHost = System.getProperty( HTTP_PROXY_HOST_SYSPROPS );
- previousHttpProxyPort = System.getProperty( HTTP_PROXY_PORT_SYSPROPS );
- previousProxyExclusions = System.getProperty( HTTP_NON_PROXY_HOSTS_SYSPROPS );
-
final ProxyInfo proxyInfo = getProxyInfo( "http", getRepository().getHost() );
if ( proxyInfo != null )
{
- setSystemProperty( HTTP_PROXY_HOST_SYSPROPS, proxyInfo.getHost() );
- setSystemProperty( HTTP_PROXY_PORT_SYSPROPS, String.valueOf( proxyInfo.getPort() ) );
- setSystemProperty( HTTP_NON_PROXY_HOSTS_SYSPROPS, proxyInfo.getNonProxyHosts() );
- System.out.println(" open connection with proxyInfo " + proxyInfo );
- }
- else
- {
- setSystemProperty( HTTP_PROXY_HOST_SYSPROPS, null );
- setSystemProperty( HTTP_PROXY_PORT_SYSPROPS, null );
+ this.proxy = getProxy( proxyInfo );
}
final boolean hasProxy = ( proxyInfo != null && proxyInfo.getUserName() != null );
@@ -316,6 +294,24 @@ public class LightweightHttpWagon
}
}
+ private Proxy getProxy( ProxyInfo proxyInfo )
+ {
+ return new Proxy( getProxyType( proxyInfo ), getSocketAddress( proxyInfo ) );
+ }
+
+ private Type getProxyType( ProxyInfo proxyInfo ) {
+ if ( ProxyInfo.PROXY_SOCKS4.equals( proxyInfo.getType() ) || ProxyInfo.PROXY_SOCKS5.equals( proxyInfo.getType() ) )
+ {
+ return Type.SOCKS;
+ }
+ else return Type.HTTP;
+ }
+
+ public SocketAddress getSocketAddress( ProxyInfo proxyInfo )
+ {
+ return InetSocketAddress.createUnresolved(proxyInfo.getHost(), proxyInfo.getPort());
+ }
+
public void closeConnection()
throws ConnectionException
{
@@ -323,10 +319,6 @@ public class LightweightHttpWagon
{
putConnection.disconnect();
}
-
- setSystemProperty( HTTP_PROXY_HOST_SYSPROPS, previousHttpProxyHost );
- setSystemProperty( HTTP_PROXY_PORT_SYSPROPS, previousHttpProxyPort );
- setSystemProperty( HTTP_NON_PROXY_HOSTS_SYSPROPS, previousProxyExclusions );
}
public List getFileList( String destinationDirectory )
@@ -366,7 +358,7 @@ public class LightweightHttpWagon
try
{
URL url = new URL( buildUrl( new Resource( resourceName ).getName() ) );
- headConnection = (HttpURLConnection) url.openConnection();
+ headConnection = (HttpURLConnection) url.openConnection( this.proxy );
addHeaders( headConnection );
@@ -422,7 +414,6 @@ public class LightweightHttpWagon
void setSystemProperty( String key, String value )
{
- //System.out.println(" set sys prop " + key + "/" + value);
if ( value != null )
{
System.setProperty( key, value );
Modified: maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonTest.java?rev=1162529&r1=1162528&r2=1162529&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonTest.java Sun Aug 28 14:24:23 2011
@@ -24,9 +24,7 @@ import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.http.HttpWagonTestCase;
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.repository.Repository;
-import org.codehaus.plexus.util.FileUtils;
-import java.io.File;
import java.util.Properties;
/**
@@ -52,128 +50,4 @@ public class LightweightHttpWagonTest
( (LightweightHttpWagon) wagon ).setHttpHeaders( properties );
}
- public void testProxyReset()
- throws Exception
- {
- ProxyInfo proxyInfo = new ProxyInfo();
- proxyInfo.setType( "http" );
- proxyInfo.setHost( "proxyhost" );
- proxyInfo.setPort( 1234 );
- proxyInfo.setNonProxyHosts( "non" );
-
- Repository repository = new Repository();
-
- String proxyHost = System.getProperty( "http.proxyHost" );
- String proxyPort = System.getProperty( "http.proxyPort" );
- String nonProxyHosts = System.getProperty( "http.nonProxyHosts" );
-
- System.getProperties().remove( "http.proxyHost" );
- System.getProperties().remove( "http.proxyPort" );
-
- Wagon wagon = getWagon();
-
- wagon.connect( repository, proxyInfo );
-
- assertEquals( "proxyhost", System.getProperty( "http.proxyHost" ) );
- assertEquals( "1234", System.getProperty( "http.proxyPort" ) );
- assertEquals( "non", System.getProperty( "http.nonProxyHosts" ) );
-
- wagon.disconnect();
-
- assertNull( System.getProperty( "http.proxyHost" ) );
- assertNull( System.getProperty( "http.proxyPort" ) );
-
- System.setProperty( "http.proxyHost", "host" );
- System.setProperty( "http.proxyPort", "port" );
- System.setProperty( "http.nonProxyHosts", "hosts" );
-
- wagon = getWagon();
-
- wagon.connect( repository, proxyInfo );
-
- assertEquals( "proxyhost", System.getProperty( "http.proxyHost" ) );
- assertEquals( "1234", System.getProperty( "http.proxyPort" ) );
- assertEquals( "non", System.getProperty( "http.nonProxyHosts" ) );
-
- wagon.disconnect();
-
- assertEquals( "host", System.getProperty( "http.proxyHost" ) );
- assertEquals( "port", System.getProperty( "http.proxyPort" ) );
- assertEquals( "hosts", System.getProperty( "http.nonProxyHosts" ) );
-
- wagon = getWagon();
-
- wagon.connect( repository );
-
- assertNull( System.getProperty( "http.proxyHost" ) );
- assertNull( System.getProperty( "http.proxyPort" ) );
-
- wagon.disconnect();
-
- assertEquals( "host", System.getProperty( "http.proxyHost" ) );
- assertEquals( "port", System.getProperty( "http.proxyPort" ) );
- assertEquals( "hosts", System.getProperty( "http.nonProxyHosts" ) );
-
- if ( proxyHost != null )
- {
- System.setProperty( "http.proxyHost", proxyHost );
- }
- else
- {
- System.getProperties().remove( "http.proxyHost" );
- }
- if ( proxyPort != null )
- {
- System.setProperty( "http.proxyPort", proxyPort );
- }
- else
- {
- System.getProperties().remove( "http.proxyPort" );
- }
- if ( nonProxyHosts != null )
- {
- System.setProperty( "http.nonProxyHosts", nonProxyHosts );
- }
- else
- {
- System.getProperties().remove( "http.nonProxyHosts" );
- }
- }
-
- /**
- * This unit test will verify the behaviour of WAGON-314.
- * Handling a HTTP redirect (301) properly
- *
- * It is disabled by default because it needs an online connection to maven.central
- */
- public void disabledtestHttpRedirect() throws Exception
- {
- Repository repository = new Repository( "apache.releases",
- "http://repository.apache.org/service/local/repositories/releases/content/" );
-
- Wagon wagon = getWagon();
-
- wagon.connect( repository );
-
- File destinationDir = new File( "./target/" );
- assertTrue( destinationDir.exists() );
-
- File downloadedFile = new File( destinationDir, "downloadedFile.pom" );
-
- if ( downloadedFile.exists() )
- {
- downloadedFile.delete();
- assertFalse( downloadedFile.exists() );
- }
-
- wagon.get( "org/apache/maven/maven-parent/19/maven-parent-19.pom", downloadedFile );
-
- assertTrue( downloadedFile.exists() );
-
- String artifactContent = FileUtils.fileRead( downloadedFile, "UTF-8" );
- assertNotNull( artifactContent );
- assertTrue( artifactContent.contains( "<artifactId>maven-parent</artifactId>" ) );
-
- wagon.disconnect();
- }
}
Modified: maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java?rev=1162529&r1=1162528&r2=1162529&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java Sun Aug 28 14:24:23 2011
@@ -19,9 +19,6 @@ package org.apache.maven.wagon.providers
* under the License.
*/
-import org.apache.maven.wagon.Wagon;
-import org.apache.maven.wagon.proxy.ProxyInfo;
-import org.apache.maven.wagon.repository.Repository;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.security.SslSocketConnector;
@@ -48,93 +45,4 @@ public class LightweightHttpsWagonTest
connector.setTrustPassword( "wagonhttp" );
server.setConnectors( new Connector[] { connector } );
}
-
- public void testHttpsProxyReset()
- throws Exception
- {
- ProxyInfo proxyInfo = new ProxyInfo();
- proxyInfo.setType( "https" );
- proxyInfo.setHost( "proxyhost" );
- proxyInfo.setPort( 1234 );
- proxyInfo.setNonProxyHosts( "non" );
-
- Repository repository = new Repository();
-
- String proxyHost = System.getProperty( "https.proxyHost" );
- String proxyPort = System.getProperty( "https.proxyPort" );
- String nonProxyHosts = System.getProperty( "https.nonProxyHosts" );
-
- System.getProperties().remove( "https.proxyHost" );
- System.getProperties().remove( "https.proxyPort" );
-
- Wagon wagon = getWagon();
-
- wagon.connect( repository, proxyInfo );
-
- assertEquals( "proxyhost", System.getProperty( "https.proxyHost" ) );
- assertEquals( "1234", System.getProperty( "https.proxyPort" ) );
- assertEquals( "non", System.getProperty( "https.nonProxyHosts" ) );
-
- wagon.disconnect();
-
- assertNull( System.getProperty( "https.proxyHost" ) );
- assertNull( System.getProperty( "https.proxyPort" ) );
-
- System.setProperty( "https.proxyHost", "host" );
- System.setProperty( "https.proxyPort", "port" );
- System.setProperty( "https.nonProxyHosts", "hosts" );
-
- wagon = getWagon();
-
- wagon.connect( repository, proxyInfo );
-
- assertEquals( "proxyhost", System.getProperty( "https.proxyHost" ) );
- assertEquals( "1234", System.getProperty( "https.proxyPort" ) );
- assertEquals( "non", System.getProperty( "https.nonProxyHosts" ) );
-
- wagon.disconnect();
-
- assertEquals( "host", System.getProperty( "https.proxyHost" ) );
- assertEquals( "port", System.getProperty( "https.proxyPort" ) );
- assertEquals( "hosts", System.getProperty( "https.nonProxyHosts" ) );
-
- wagon = getWagon();
-
- wagon.connect( repository );
-
- assertNull( System.getProperty( "https.proxyHost" ) );
- assertNull( System.getProperty( "https.proxyPort" ) );
-
- wagon.disconnect();
-
- assertEquals( "host", System.getProperty( "https.proxyHost" ) );
- assertEquals( "port", System.getProperty( "https.proxyPort" ) );
- assertEquals( "hosts", System.getProperty( "https.nonProxyHosts" ) );
-
- if ( proxyHost != null )
- {
- System.setProperty( "https.proxyHost", proxyHost );
- }
- else
- {
- System.getProperties().remove( "https.proxyHost" );
- }
- if ( proxyPort != null )
- {
- System.setProperty( "https.proxyPort", proxyPort );
- }
- else
- {
- System.getProperties().remove( "https.proxyPort" );
- }
- if ( nonProxyHosts != null )
- {
- System.setProperty( "https.nonProxyHosts", nonProxyHosts );
- }
- else
- {
- System.getProperties().remove( "https.nonProxyHosts" );
- }
- }
-
}