Class 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 Detail

      • 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
      • 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
    • Constructor Detail

      • DefaultWagonManager

        public DefaultWagonManager()
    • 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 interface WagonManager
        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 protocol
        WagonConfigurationException - 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 interface WagonManager
        Parameters:
        protocol - the protocol the Wagon 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 interface WagonManager
        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 interface WagonManager
        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 interface WagonManager
        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 interface WagonManager
        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 interface WagonManager
        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
      • failIfNotOnline

        private void failIfNotOnline()
                              throws org.apache.maven.wagon.TransferFailedException
        Throws:
        org.apache.maven.wagon.TransferFailedException
      • 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 interface WagonManager
      • getAuthenticationInfo

        public org.apache.maven.wagon.authentication.AuthenticationInfo getAuthenticationInfo​(java.lang.String id)
        Specified by:
        getAuthenticationInfo in interface WagonManager
      • 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 interface WagonManager
        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 none
        password - the password for the proxy, or null if there is none
        nonProxyHosts - 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 interface org.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 interface WagonManager
      • 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 interface WagonManager
      • addPermissionInfo

        public void addPermissionInfo​(java.lang.String repositoryId,
                                      java.lang.String filePermissions,
                                      java.lang.String directoryPermissions)
        Specified by:
        addPermissionInfo in interface WagonManager
      • addMirror

        public void addMirror​(java.lang.String id,
                              java.lang.String mirrorOf,
                              java.lang.String url)
        Specified by:
        addMirror in interface WagonManager
      • setOnline

        public void setOnline​(boolean online)
        Specified by:
        setOnline in interface WagonManager
      • registerWagons

        public void registerWagons​(java.util.Collection wagons,
                                   org.codehaus.plexus.PlexusContainer extensionContainer)
        Specified by:
        registerWagons in interface WagonManager
      • 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 configure
        repository - the repository that has the configuration
        Throws:
        WagonConfigurationException - wraps any error given during configuration of the wagon instance
      • 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 interface WagonManager
        Parameters:
        repositoryId - id of the repository to set the configuration to
        configuration - dom tree of the xml with the configuration for the Wagon
      • setDefaultRepositoryPermissions

        public void setDefaultRepositoryPermissions​(org.apache.maven.wagon.repository.RepositoryPermissions defaultRepositoryPermissions)
        Specified by:
        setDefaultRepositoryPermissions in interface WagonManager
      • initialize

        public void initialize()
                        throws org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
        Specified by:
        initialize in interface org.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()