mirror of https://github.com/apache/maven.git
o using the repository system and repositories to mediate proxy use. proxies restored.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@796903 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
88216c6532
commit
684eed4a0c
|
@ -18,6 +18,7 @@ package org.apache.maven.artifact.repository;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.repository.Proxy;
|
||||
|
||||
public interface ArtifactRepository
|
||||
{
|
||||
|
@ -58,7 +59,9 @@ public interface ArtifactRepository
|
|||
//
|
||||
Artifact find( Artifact artifact );
|
||||
|
||||
void setAuthentication( Authentication authentication );
|
||||
|
||||
void setAuthentication( Authentication authentication );
|
||||
Authentication getAuthentication();
|
||||
|
||||
void setProxy( Proxy proxy );
|
||||
Proxy getProxy();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.io.File;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.repository.Proxy;
|
||||
import org.apache.maven.wagon.repository.Repository;
|
||||
|
||||
/**
|
||||
|
@ -216,4 +217,17 @@ public class DefaultArtifactRepository
|
|||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
//
|
||||
// This implementation does not support proxies
|
||||
//
|
||||
public Proxy getProxy()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setProxy( Proxy proxy )
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.io.File;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.repository.Proxy;
|
||||
|
||||
//TODO: completely separate local and remote artifact repositories
|
||||
public class MavenArtifactRepository
|
||||
|
@ -45,6 +46,8 @@ public class MavenArtifactRepository
|
|||
|
||||
private Authentication authentication;
|
||||
|
||||
private Proxy proxy;
|
||||
|
||||
public MavenArtifactRepository()
|
||||
{
|
||||
}
|
||||
|
@ -353,4 +356,14 @@ public class MavenArtifactRepository
|
|||
{
|
||||
this.authentication = authentication;
|
||||
}
|
||||
|
||||
public Proxy getProxy()
|
||||
{
|
||||
return proxy;
|
||||
}
|
||||
|
||||
public void setProxy( Proxy proxy )
|
||||
{
|
||||
this.proxy = proxy;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,6 +86,10 @@ public class LegacyRepositorySystem
|
|||
@Requirement
|
||||
private PlexusContainer plexus;
|
||||
|
||||
private Map<String, Authentication> authentications = new HashMap<String, Authentication>();
|
||||
|
||||
private Map<String, Proxy> proxies = new HashMap<String,Proxy>();
|
||||
|
||||
public Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type )
|
||||
{
|
||||
return artifactFactory.createArtifact( groupId, artifactId, version, scope, type );
|
||||
|
@ -490,8 +494,6 @@ public class LegacyRepositorySystem
|
|||
wagonManager.putRemoteFile( repository, source, remotePath, downloadMonitor );
|
||||
}
|
||||
|
||||
private Map<String, Authentication> authentications = new HashMap<String, Authentication>();
|
||||
|
||||
//
|
||||
// serverId = repository id
|
||||
//
|
||||
|
@ -550,6 +552,25 @@ public class LegacyRepositorySystem
|
|||
artifactRepository.setAuthentication( authentication );
|
||||
}
|
||||
|
||||
Proxy proxy = proxies.get( artifactRepository.getProtocol() );
|
||||
|
||||
if ( proxy != null )
|
||||
{
|
||||
artifactRepository.setProxy( proxy );
|
||||
}
|
||||
|
||||
return artifactRepository;
|
||||
}
|
||||
|
||||
public void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts )
|
||||
{
|
||||
Proxy proxy = new Proxy();
|
||||
proxy.setHost( host );
|
||||
proxy.setProtocol( protocol );
|
||||
proxy.setPort( port );
|
||||
proxy.setNonProxyHosts( nonProxyHosts );
|
||||
proxy.setUserName( username );
|
||||
proxy.setPassword( password );
|
||||
proxies.put( protocol, proxy );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public class Proxy
|
|||
/**
|
||||
* Type of the proxy
|
||||
*/
|
||||
private String type;
|
||||
private String protocol;
|
||||
|
||||
/**
|
||||
* The non-proxy hosts. Follows Java system property format: <code>*.foo.com|localhost</code>.
|
||||
|
@ -152,17 +152,17 @@ public class Proxy
|
|||
*
|
||||
* @return the type of the proxy server
|
||||
*/
|
||||
public String getType()
|
||||
public String getProtocol()
|
||||
{
|
||||
return type;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param type the type of the proxy server like <i>SOCKSv4</i>
|
||||
*/
|
||||
public void setType( String type )
|
||||
public void setProtocol( String protocol )
|
||||
{
|
||||
this.type = type;
|
||||
this.protocol = protocol;
|
||||
}
|
||||
|
||||
public String getNonProxyHosts()
|
||||
|
|
|
@ -114,5 +114,7 @@ public interface RepositorySystem
|
|||
void retrieve( ArtifactRepository repository, File destination, String remotePath, TransferListener downloadMonitor )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void addAuthenticationForArtifactRepository( String repositoryId, String username, String password );
|
||||
void addAuthenticationForArtifactRepository( String repositoryId, String username, String password );
|
||||
|
||||
void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts );
|
||||
}
|
||||
|
|
|
@ -223,25 +223,42 @@ public class DefaultWagonManager
|
|||
{
|
||||
if ( repository.getAuthentication() != null )
|
||||
{
|
||||
//
|
||||
// We have authentication we have been asked to deal with.
|
||||
//
|
||||
AuthenticationInfo ai = new AuthenticationInfo();
|
||||
ai.setUserName( repository.getAuthentication().getUsername() );
|
||||
ai.setPassword( repository.getAuthentication().getPassword() );
|
||||
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ), ai );
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ), authenticationInfo( repository ) );
|
||||
}
|
||||
else if ( repository.getProxy() != null )
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ), proxyInfo( repository ) );
|
||||
}
|
||||
else if ( repository.getAuthentication() != null && repository.getProxy() != null )
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ), authenticationInfo( repository ), proxyInfo( repository ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ) );
|
||||
}
|
||||
|
||||
//
|
||||
// ProxyInfo proxyInfo = new ProxyInfo();
|
||||
//
|
||||
}
|
||||
|
||||
private AuthenticationInfo authenticationInfo( ArtifactRepository repository )
|
||||
{
|
||||
AuthenticationInfo ai = new AuthenticationInfo();
|
||||
ai.setUserName( repository.getAuthentication().getUsername() );
|
||||
ai.setPassword( repository.getAuthentication().getPassword() );
|
||||
return ai;
|
||||
}
|
||||
|
||||
private ProxyInfo proxyInfo( ArtifactRepository repository )
|
||||
{
|
||||
ProxyInfo proxyInfo = new ProxyInfo();
|
||||
proxyInfo.setHost( repository.getProxy().getHost() );
|
||||
proxyInfo.setType( repository.getProxy().getProtocol() );
|
||||
proxyInfo.setPort( repository.getProxy().getPort() );
|
||||
proxyInfo.setNonProxyHosts( repository.getProxy().getNonProxyHosts() );
|
||||
proxyInfo.setUserName( repository.getProxy().getUserName() );
|
||||
proxyInfo.setPassword( repository.getProxy().getPassword() );
|
||||
return proxyInfo;
|
||||
}
|
||||
|
||||
public void getRemoteFile( ArtifactRepository repository, File destination, String remotePath, TransferListener downloadMonitor, String checksumPolicy, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
|
|
|
@ -186,7 +186,6 @@ public class DefaultMavenExecutionRequestPopulator
|
|||
// </proxy>
|
||||
// </proxies>
|
||||
|
||||
/*
|
||||
Proxy proxy = settings.getActiveProxy();
|
||||
|
||||
if ( proxy != null )
|
||||
|
@ -198,7 +197,6 @@ public class DefaultMavenExecutionRequestPopulator
|
|||
|
||||
repositorySystem.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), proxy.getPassword(), proxy.getNonProxyHosts() );
|
||||
}
|
||||
*/
|
||||
|
||||
for ( Server server : settings.getServers() )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue