You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by br...@apache.org on 2005/02/08 08:48:08 UTC

cvs commit: maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager DefaultWagonManager.java WagonManager.java

brett       2005/02/07 23:48:08

  Modified:    maven-artifact/src/main/java/org/apache/maven/artifact/manager
                        DefaultWagonManager.java WagonManager.java
  Log:
  ability to set a proxy for a wagon
  
  Revision  Changes    Path
  1.8       +41 -7     maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
  
  Index: DefaultWagonManager.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DefaultWagonManager.java	27 Dec 2004 05:11:29 -0000	1.7
  +++ DefaultWagonManager.java	8 Feb 2005 07:48:08 -0000	1.8
  @@ -17,11 +17,9 @@
    * ====================================================================
    */
   
  -import org.apache.maven.artifact.Artifact;
  -import org.apache.maven.artifact.repository.ArtifactRepository;
   import org.apache.maven.artifact.AbstractArtifactComponent;
  +import org.apache.maven.artifact.Artifact;
   import org.apache.maven.artifact.DefaultArtifact;
  -import org.apache.maven.artifact.handler.manager.ArtifactHandlerNotFoundException;
   import org.apache.maven.artifact.repository.ArtifactRepository;
   import org.apache.maven.wagon.ConnectionException;
   import org.apache.maven.wagon.ResourceDoesNotExistException;
  @@ -30,18 +28,20 @@
   import org.apache.maven.wagon.Wagon;
   import org.apache.maven.wagon.authentication.AuthenticationException;
   import org.apache.maven.wagon.authorization.AuthorizationException;
  -import org.apache.maven.wagon.observers.ChecksumObserver;
  +import org.apache.maven.wagon.proxy.ProxyInfo;
   import org.codehaus.plexus.PlexusConstants;
   import org.codehaus.plexus.PlexusContainer;
  -import org.codehaus.plexus.util.FileUtils;
   import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
   import org.codehaus.plexus.context.Context;
   import org.codehaus.plexus.context.ContextException;
   import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
  +import org.codehaus.plexus.util.FileUtils;
   
   import java.io.File;
   import java.io.IOException;
  +import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.Map;
   import java.util.Set;
   
   public class DefaultWagonManager
  @@ -50,6 +50,8 @@
   {
       private PlexusContainer container;
   
  +    private Map proxies = new HashMap();
  +
       public Artifact createArtifact( String groupId, String artifactId, String version, String type )
       {
           Artifact artifact = new DefaultArtifact( groupId, artifactId, version, type );
  @@ -85,7 +87,7 @@
       {
           Wagon wagon = getWagon( repository.getProtocol() );
   
  -        wagon.connect( repository );
  +        wagon.connect( repository, getProxy( repository.getProtocol() ) );
   
           wagon.put( source, path( artifact ) );
   
  @@ -156,7 +158,7 @@
   
                   //wagon.addTransferListener( md5SumObserver );
   
  -                wagon.connect( repository );
  +                wagon.connect( repository, getProxy( repository.getProtocol() ) );
   
                   wagon.get( path( artifact ), temp );
   
  @@ -232,6 +234,38 @@
           throw new TransferFailedException( "Unable to download the artifact from any repository" );
       }
   
  +    private ProxyInfo getProxy( String protocol )
  +    {
  +        return (ProxyInfo) proxies.get( protocol );
  +    }
  +
  +    /**
  +     * Set the proxy used for a particular protocol.
  +     *
  +     * @todo [BP] would be nice to configure this via plexus in some way
  +     *
  +     * @param protocol the protocol (required)
  +     * @param host the proxy host name (required)
  +     * @param port the proxy port (required)
  +     * @param username the username for the proxy, or null if there is none
  +     * @param password the password for the proxy, or null if there is none
  +     * @param nonProxyHosts the set of hosts not to use the proxy for. Follows Java system property format:
  +     *  <code>*.foo.com|localhost</code>.
  +     */
  +    public void setProxy( String protocol, String host, int port, String username, String password,
  +                          String nonProxyHosts )
  +    {
  +        ProxyInfo proxyInfo = new ProxyInfo();
  +        proxyInfo.setHost( host );
  +        proxyInfo.setType( protocol );
  +        proxyInfo.setPort( port );
  +        proxyInfo.setNonProxyHosts( nonProxyHosts );
  +        proxyInfo.setUserName( username );
  +        proxyInfo.setPassword( password );
  +
  +        proxies.put( protocol, proxyInfo );
  +    }
  +
       public void contextualize( Context context )
           throws ContextException
       {
  
  
  
  1.3       +3 -3      maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
  
  Index: WagonManager.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/WagonManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WagonManager.java	27 Dec 2004 05:11:29 -0000	1.2
  +++ WagonManager.java	8 Feb 2005 07:48:08 -0000	1.3
  @@ -18,8 +18,6 @@
    */
   
   import org.apache.maven.artifact.Artifact;
  -import org.apache.maven.artifact.handler.manager.ArtifactHandlerNotFoundException;
  -import org.apache.maven.artifact.repository.ArtifactRepository;
   import org.apache.maven.artifact.repository.ArtifactRepository;
   import org.apache.maven.wagon.TransferFailedException;
   import org.apache.maven.wagon.UnsupportedProtocolException;
  @@ -49,5 +47,7 @@
       void put( File source, Artifact artifact, ArtifactRepository deploymentRepository )
           throws Exception;
   
  +    void setProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts );
  +
       Artifact createArtifact( String groupId, String artifactId, String version, String type );
   }
  \ No newline at end of file