Class DefaultWagonManager
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.apache.maven.artifact.manager.DefaultWagonManager
-
- All Implemented Interfaces:
WagonManager
,org.codehaus.plexus.logging.LogEnabled
,org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
,org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
public class DefaultWagonManager extends org.codehaus.plexus.logging.AbstractLogEnabled implements WagonManager, org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable, org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
-
-
Field Summary
Fields Modifier and Type Field Description private static int
anonymousMirrorIdSeed
private java.util.Map
authenticationInfoMap
private java.util.Map<java.lang.String,org.codehaus.plexus.PlexusContainer>
availableWagons
private org.codehaus.plexus.PlexusContainer
container
private org.apache.maven.wagon.repository.RepositoryPermissions
defaultRepositoryPermissions
private org.apache.maven.wagon.events.TransferListener
downloadMonitor
private static java.lang.String
EXTERNAL_WILDCARD
private java.lang.String
httpUserAgent
private boolean
interactive
private static java.lang.String
MAVEN_ARTIFACT_PROPERTIES
private java.util.Map
mirrors
private boolean
online
private WagonProviderMapping
providerMapping
private java.util.Map
proxies
private ArtifactRepositoryFactory
repositoryFactory
private java.util.Map<java.lang.String,org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration>
serverConfigurationMap
Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configurationprivate java.util.Map
serverPermissionsMap
private java.util.Map<java.lang.String,java.lang.String>
serverWagonProviderMap
private static java.lang.String
WAGON_PROVIDER_CONFIGURATION
private static java.lang.String
WILDCARD
-
Fields inherited from interface org.apache.maven.artifact.manager.WagonManager
ROLE
-
-
Constructor Summary
Constructors Constructor Description DefaultWagonManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAuthenticationInfo(java.lang.String repositoryId, java.lang.String username, java.lang.String password, java.lang.String privateKey, java.lang.String passphrase)
void
addConfiguration(java.lang.String repositoryId, org.codehaus.plexus.util.xml.Xpp3Dom configuration)
Set the configuration for a repositoryvoid
addMirror(java.lang.String id, java.lang.String mirrorOf, java.lang.String url)
void
addPermissionInfo(java.lang.String repositoryId, java.lang.String filePermissions, java.lang.String directoryPermissions)
void
addProxy(java.lang.String protocol, java.lang.String host, int port, java.lang.String username, java.lang.String password, java.lang.String nonProxyHosts)
Set the proxy used for a particular protocol.private void
configureWagon(org.apache.maven.wagon.Wagon wagon, java.lang.String repositoryId, java.lang.String protocol)
private void
configureWagon(org.apache.maven.wagon.Wagon wagon, ArtifactRepository repository)
Applies the server configuration to the wagonvoid
contextualize(org.codehaus.plexus.context.Context context)
private void
disconnectWagon(org.apache.maven.wagon.Wagon wagon)
private void
failIfNotOnline()
void
getArtifact(Artifact artifact, java.util.List remoteRepositories)
void
getArtifact(Artifact artifact, ArtifactRepository repository)
void
getArtifactMetadata(ArtifactMetadata metadata, ArtifactRepository repository, java.io.File destination, java.lang.String checksumPolicy)
void
getArtifactMetadataFromDeploymentRepository(ArtifactMetadata metadata, ArtifactRepository repository, java.io.File destination, java.lang.String checksumPolicy)
org.apache.maven.wagon.authentication.AuthenticationInfo
getAuthenticationInfo(java.lang.String id)
java.lang.String
getHttpUserAgent()
ArtifactRepository
getMirror(ArtifactRepository originalRepository)
This method finds a matching mirror for the selected repository.ArtifactRepository
getMirrorRepository(ArtifactRepository repository)
org.apache.maven.wagon.proxy.ProxyInfo
getProxy(java.lang.String protocol)
private void
getRemoteFile(ArtifactRepository repository, java.io.File destination, java.lang.String remotePath, org.apache.maven.wagon.events.TransferListener downloadMonitor, java.lang.String checksumPolicy, boolean force)
org.apache.maven.wagon.Wagon
getWagon(java.lang.String protocol)
Get a Wagon provider that understands the protocol passed as argument.private org.apache.maven.wagon.Wagon
getWagon(java.lang.String protocol, java.lang.String repositoryId)
org.apache.maven.wagon.Wagon
getWagon(org.apache.maven.wagon.repository.Repository repository)
Get a Wagon provider for the provided repository.private org.codehaus.plexus.PlexusContainer
getWagonContainer(java.lang.String hint)
private java.lang.String
getWagonHint(java.lang.String protocol, java.lang.String repositoryId)
private void
handleChecksumFailure(java.lang.String checksumPolicy, java.lang.String message, java.lang.Throwable cause)
void
initialize()
boolean
isExternalRepo(ArtifactRepository originalRepository)
Checks the URL to see if this repository refers to an external repositoryboolean
isOnline()
boolean
matchPattern(ArtifactRepository originalRepository, java.lang.String pattern)
This method checks if the pattern matches the originalRepository.void
putArtifact(java.io.File source, Artifact artifact, ArtifactRepository deploymentRepository)
void
putArtifactMetadata(java.io.File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository)
private void
putRemoteFile(ArtifactRepository repository, java.io.File source, java.lang.String remotePath, org.apache.maven.wagon.events.TransferListener downloadMonitor)
void
registerWagons(java.util.Collection wagons, org.codehaus.plexus.PlexusContainer extensionContainer)
private void
releaseWagon(java.lang.String protocol, org.apache.maven.wagon.Wagon wagon, java.lang.String repositoryId)
void
setDefaultRepositoryPermissions(org.apache.maven.wagon.repository.RepositoryPermissions defaultRepositoryPermissions)
void
setDownloadMonitor(org.apache.maven.wagon.events.TransferListener downloadMonitor)
void
setHttpUserAgent(java.lang.String userAgent)
void
setInteractive(boolean interactive)
void
setOnline(boolean online)
private org.codehaus.plexus.configuration.PlexusConfiguration
updateUserAgentForHttp(org.apache.maven.wagon.Wagon wagon, org.codehaus.plexus.configuration.PlexusConfiguration config)
private void
verifyChecksum(org.apache.maven.wagon.observers.ChecksumObserver checksumObserver, java.io.File destination, java.io.File tempDestination, java.lang.String remotePath, java.lang.String checksumFileExtension, org.apache.maven.wagon.Wagon wagon)
-
-
-
Field Detail
-
WILDCARD
private static final java.lang.String WILDCARD
- See Also:
- Constant Field Values
-
EXTERNAL_WILDCARD
private static final java.lang.String EXTERNAL_WILDCARD
- See Also:
- Constant Field Values
-
MAVEN_ARTIFACT_PROPERTIES
private static final java.lang.String MAVEN_ARTIFACT_PROPERTIES
- See Also:
- Constant Field Values
-
WAGON_PROVIDER_CONFIGURATION
private static final java.lang.String WAGON_PROVIDER_CONFIGURATION
- See Also:
- Constant Field Values
-
anonymousMirrorIdSeed
private static int anonymousMirrorIdSeed
-
container
private org.codehaus.plexus.PlexusContainer container
-
proxies
private java.util.Map proxies
-
authenticationInfoMap
private java.util.Map authenticationInfoMap
-
serverPermissionsMap
private java.util.Map serverPermissionsMap
-
mirrors
private java.util.Map mirrors
-
serverConfigurationMap
private java.util.Map<java.lang.String,org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration> serverConfigurationMap
Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration
-
serverWagonProviderMap
private java.util.Map<java.lang.String,java.lang.String> serverWagonProviderMap
-
downloadMonitor
private org.apache.maven.wagon.events.TransferListener downloadMonitor
-
online
private boolean online
-
repositoryFactory
private ArtifactRepositoryFactory repositoryFactory
-
interactive
private boolean interactive
-
availableWagons
private java.util.Map<java.lang.String,org.codehaus.plexus.PlexusContainer> availableWagons
-
defaultRepositoryPermissions
private org.apache.maven.wagon.repository.RepositoryPermissions defaultRepositoryPermissions
-
httpUserAgent
private java.lang.String httpUserAgent
-
providerMapping
private WagonProviderMapping providerMapping
-
-
Method Detail
-
getWagon
public org.apache.maven.wagon.Wagon getWagon(org.apache.maven.wagon.repository.Repository repository) throws org.apache.maven.wagon.UnsupportedProtocolException, WagonConfigurationException
Description copied from interface:WagonManager
Get a Wagon provider for the provided repository. It will configure the Wagon for that repository.- Specified by:
getWagon
in interfaceWagonManager
- Parameters:
repository
- the repository- Returns:
- the
Wagon
instance that can be used to connect to the repository - Throws:
org.apache.maven.wagon.UnsupportedProtocolException
- if there is no provider able to handle the protocolWagonConfigurationException
- if the wagon can't be configured for the repository
-
getWagon
public org.apache.maven.wagon.Wagon getWagon(java.lang.String protocol) throws org.apache.maven.wagon.UnsupportedProtocolException
Description copied from interface:WagonManager
Get a Wagon provider that understands the protocol passed as argument. It doesn't configure the Wagon.- Specified by:
getWagon
in interfaceWagonManager
- Parameters:
protocol
- the protocol theWagon
will handle- Returns:
- the
Wagon
instance able to handle the protocol provided - Throws:
org.apache.maven.wagon.UnsupportedProtocolException
- if there is no provider able to handle the protocol
-
getWagon
private org.apache.maven.wagon.Wagon getWagon(java.lang.String protocol, java.lang.String repositoryId) throws org.apache.maven.wagon.UnsupportedProtocolException
- Throws:
org.apache.maven.wagon.UnsupportedProtocolException
-
getWagonHint
private java.lang.String getWagonHint(java.lang.String protocol, java.lang.String repositoryId)
-
getWagonContainer
private org.codehaus.plexus.PlexusContainer getWagonContainer(java.lang.String hint)
-
putArtifact
public void putArtifact(java.io.File source, Artifact artifact, ArtifactRepository deploymentRepository) throws org.apache.maven.wagon.TransferFailedException
- Specified by:
putArtifact
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
-
putArtifactMetadata
public void putArtifactMetadata(java.io.File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository) throws org.apache.maven.wagon.TransferFailedException
- Specified by:
putArtifactMetadata
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
-
putRemoteFile
private void putRemoteFile(ArtifactRepository repository, java.io.File source, java.lang.String remotePath, org.apache.maven.wagon.events.TransferListener downloadMonitor) throws org.apache.maven.wagon.TransferFailedException
- Throws:
org.apache.maven.wagon.TransferFailedException
-
getArtifact
public void getArtifact(Artifact artifact, java.util.List remoteRepositories) throws org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.ResourceDoesNotExistException
- Specified by:
getArtifact
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
-
getArtifact
public void getArtifact(Artifact artifact, ArtifactRepository repository) throws org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.ResourceDoesNotExistException
- Specified by:
getArtifact
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
-
getArtifactMetadata
public void getArtifactMetadata(ArtifactMetadata metadata, ArtifactRepository repository, java.io.File destination, java.lang.String checksumPolicy) throws org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.ResourceDoesNotExistException
- Specified by:
getArtifactMetadata
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
-
getArtifactMetadataFromDeploymentRepository
public void getArtifactMetadataFromDeploymentRepository(ArtifactMetadata metadata, ArtifactRepository repository, java.io.File destination, java.lang.String checksumPolicy) throws org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.ResourceDoesNotExistException
- Specified by:
getArtifactMetadataFromDeploymentRepository
in interfaceWagonManager
- Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
-
getRemoteFile
private void getRemoteFile(ArtifactRepository repository, java.io.File destination, java.lang.String remotePath, org.apache.maven.wagon.events.TransferListener downloadMonitor, java.lang.String checksumPolicy, boolean force) throws org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.ResourceDoesNotExistException
- Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
-
getMirrorRepository
public ArtifactRepository getMirrorRepository(ArtifactRepository repository)
- Specified by:
getMirrorRepository
in interfaceWagonManager
-
failIfNotOnline
private void failIfNotOnline() throws org.apache.maven.wagon.TransferFailedException
- Throws:
org.apache.maven.wagon.TransferFailedException
-
handleChecksumFailure
private void handleChecksumFailure(java.lang.String checksumPolicy, java.lang.String message, java.lang.Throwable cause) throws ChecksumFailedException
- Throws:
ChecksumFailedException
-
verifyChecksum
private void verifyChecksum(org.apache.maven.wagon.observers.ChecksumObserver checksumObserver, java.io.File destination, java.io.File tempDestination, java.lang.String remotePath, java.lang.String checksumFileExtension, org.apache.maven.wagon.Wagon wagon) throws org.apache.maven.wagon.ResourceDoesNotExistException, org.apache.maven.wagon.TransferFailedException, org.apache.maven.wagon.authorization.AuthorizationException
- Throws:
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.authorization.AuthorizationException
-
disconnectWagon
private void disconnectWagon(org.apache.maven.wagon.Wagon wagon)
-
releaseWagon
private void releaseWagon(java.lang.String protocol, org.apache.maven.wagon.Wagon wagon, java.lang.String repositoryId)
-
getProxy
public org.apache.maven.wagon.proxy.ProxyInfo getProxy(java.lang.String protocol)
- Specified by:
getProxy
in interfaceWagonManager
-
getAuthenticationInfo
public org.apache.maven.wagon.authentication.AuthenticationInfo getAuthenticationInfo(java.lang.String id)
- Specified by:
getAuthenticationInfo
in interfaceWagonManager
-
getMirror
public ArtifactRepository getMirror(ArtifactRepository originalRepository)
This method finds a matching mirror for the selected repository. If there is an exact match, this will be used. If there is no exact match, then the list of mirrors is examined to see if a pattern applies.- Parameters:
originalRepository
- See if there is a mirror for this repository.- Returns:
- the selected mirror or null if none are found.
-
matchPattern
public boolean matchPattern(ArtifactRepository originalRepository, java.lang.String pattern)
This method checks if the pattern matches the originalRepository. Valid patterns: * = everything external:* = everything not on the localhost and not file based. repo,repo1 = repo or repo1 *,!repo1 = everything except repo1- Parameters:
originalRepository
- to compare for a match.pattern
- used for match. Currently only '*' is supported.- Returns:
- true if the repository is a match to this pattern.
-
isExternalRepo
public boolean isExternalRepo(ArtifactRepository originalRepository)
Checks the URL to see if this repository refers to an external repository- Parameters:
originalRepository
-- Returns:
- true if external.
-
addProxy
public void addProxy(java.lang.String protocol, java.lang.String host, int port, java.lang.String username, java.lang.String password, java.lang.String nonProxyHosts)
Set the proxy used for a particular protocol.- Specified by:
addProxy
in interfaceWagonManager
- Parameters:
protocol
- the protocol (required)host
- the proxy host name (required)port
- the proxy port (required)username
- the username for the proxy, or null if there is nonepassword
- the password for the proxy, or null if there is nonenonProxyHosts
- the set of hosts not to use the proxy for. Follows Java system property format:*.foo.com|localhost
.
-
contextualize
public void contextualize(org.codehaus.plexus.context.Context context) throws org.codehaus.plexus.context.ContextException
- Specified by:
contextualize
in interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
- Throws:
org.codehaus.plexus.context.ContextException
-
setDownloadMonitor
public void setDownloadMonitor(org.apache.maven.wagon.events.TransferListener downloadMonitor)
- Specified by:
setDownloadMonitor
in interfaceWagonManager
-
addAuthenticationInfo
public void addAuthenticationInfo(java.lang.String repositoryId, java.lang.String username, java.lang.String password, java.lang.String privateKey, java.lang.String passphrase)
- Specified by:
addAuthenticationInfo
in interfaceWagonManager
-
addPermissionInfo
public void addPermissionInfo(java.lang.String repositoryId, java.lang.String filePermissions, java.lang.String directoryPermissions)
- Specified by:
addPermissionInfo
in interfaceWagonManager
-
addMirror
public void addMirror(java.lang.String id, java.lang.String mirrorOf, java.lang.String url)
- Specified by:
addMirror
in interfaceWagonManager
-
setOnline
public void setOnline(boolean online)
- Specified by:
setOnline
in interfaceWagonManager
-
isOnline
public boolean isOnline()
- Specified by:
isOnline
in interfaceWagonManager
-
setInteractive
public void setInteractive(boolean interactive)
- Specified by:
setInteractive
in interfaceWagonManager
-
registerWagons
public void registerWagons(java.util.Collection wagons, org.codehaus.plexus.PlexusContainer extensionContainer)
- Specified by:
registerWagons
in interfaceWagonManager
-
configureWagon
private void configureWagon(org.apache.maven.wagon.Wagon wagon, ArtifactRepository repository) throws WagonConfigurationException
Applies the server configuration to the wagon- Parameters:
wagon
- the wagon to configurerepository
- the repository that has the configuration- Throws:
WagonConfigurationException
- wraps any error given during configuration of the wagon instance
-
configureWagon
private void configureWagon(org.apache.maven.wagon.Wagon wagon, java.lang.String repositoryId, java.lang.String protocol) throws WagonConfigurationException
- Throws:
WagonConfigurationException
-
updateUserAgentForHttp
private org.codehaus.plexus.configuration.PlexusConfiguration updateUserAgentForHttp(org.apache.maven.wagon.Wagon wagon, org.codehaus.plexus.configuration.PlexusConfiguration config)
-
addConfiguration
public void addConfiguration(java.lang.String repositoryId, org.codehaus.plexus.util.xml.Xpp3Dom configuration)
Description copied from interface:WagonManager
Set the configuration for a repository- Specified by:
addConfiguration
in interfaceWagonManager
- Parameters:
repositoryId
- id of the repository to set the configuration toconfiguration
- dom tree of the xml with the configuration for theWagon
-
setDefaultRepositoryPermissions
public void setDefaultRepositoryPermissions(org.apache.maven.wagon.repository.RepositoryPermissions defaultRepositoryPermissions)
- Specified by:
setDefaultRepositoryPermissions
in interfaceWagonManager
-
initialize
public void initialize() throws org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
- Specified by:
initialize
in interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
- Throws:
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
-
setHttpUserAgent
public void setHttpUserAgent(java.lang.String userAgent)
-
getHttpUserAgent
public java.lang.String getHttpUserAgent()
-
-