private void resolveParameters()

in maven-core/src/main/java/org/apache/maven/DefaultMaven.java [634:853]


    private void resolveParameters( Settings settings, Properties executionProperties )
        throws ComponentLookupException, ComponentLifecycleException, SettingsConfigurationException
    {
        WagonManager wagonManager = (WagonManager) container.lookup( WagonManager.ROLE );

        try
        {
            if ( settings.isOffline() )
            {
                getLogger().info( SystemWarnings.getOfflineWarning() );

                wagonManager.setOnline( false );
            }

            try
            {
                DefaultWagonManager wm = (DefaultWagonManager) wagonManager;

                String oldUserAgent = wm.getHttpUserAgent();
                int firstSpace = oldUserAgent == null ? -1 : oldUserAgent.indexOf( " " );

                StringBuffer buffer = new StringBuffer();

                buffer.append( "Apache-Maven/" );

                ArtifactVersion version = runtimeInformation.getApplicationVersion();
                if ( version != null )
                {
                    buffer.append( version.getMajorVersion() );
                    buffer.append( '.' );
                    buffer.append( version.getMinorVersion() );
                }
                else
                {
                    buffer.append( "unknown" );
                }

                buffer.append( ' ' );
                if ( firstSpace > -1 )
                {
                    buffer.append( oldUserAgent.substring( firstSpace + 1 ) );
                    buffer.append( ' ' );
                    buffer.append( oldUserAgent.substring( 0, firstSpace ) );
                }
                else
                {
                    buffer.append( oldUserAgent );
                }

                wm.setHttpUserAgent( buffer.toString() );
            }
            catch ( ClassCastException e )
            {
                // ignore
            }

            SecDispatcher sd = null;

            try
            {
                Proxy proxy = settings.getActiveProxy();

                try
                {
                    sd = (SecDispatcher) container.lookup( SecDispatcher.ROLE, "maven" );
                }
                catch ( Exception e )
                {
                    getLogger().warn( "Security features are disabled. Cannot find plexus component " + SecDispatcher.ROLE + ":maven" );

                    line();
                }

                if ( proxy != null )
                {
                    if ( proxy.getHost() == null )
                    {
                        throw new SettingsConfigurationException( "Proxy in settings.xml has no host" );
                    }

                    String pass = proxy.getPassword();

                    if ( sd != null )
                    {
                        try
                        {
                            pass = sd.decrypt( pass );
                        }
                        catch ( SecDispatcherException e )
                        {
                            reportSecurityConfigurationError( "password for proxy '" + proxy.getId() + "'", e );
                        }
                    }

                    wagonManager.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(),
                                           pass, proxy.getNonProxyHosts() );
                }

                for ( Iterator i = settings.getServers().iterator(); i.hasNext(); )
                {
                    Server server = (Server) i.next();

                    String passWord = server.getPassword();

                    if ( sd != null )
                    {
                        try
                        {
                            passWord = sd.decrypt( passWord );
                        }
                        catch ( SecDispatcherException e )
                        {
                            reportSecurityConfigurationError( "password for server '" + server.getId() + "'", e );
                        }
                    }

                    String passPhrase = server.getPassphrase();

                    if ( sd != null )
                    {
                        try
                        {
                            passPhrase = sd.decrypt( passPhrase );
                        }
                        catch ( SecDispatcherException e )
                        {
                            reportSecurityConfigurationError( "passphrase for server '" + server.getId() + "'", e );
                        }
                    }

                    wagonManager.addAuthenticationInfo( server.getId(), server.getUsername(), passWord,
                                                        server.getPrivateKey(), passPhrase );

                    wagonManager.addPermissionInfo( server.getId(), server.getFilePermissions(),
                                                    server.getDirectoryPermissions() );

                    if ( server.getConfiguration() != null )
                    {
                        wagonManager.addConfiguration( server.getId(), (Xpp3Dom) server.getConfiguration() );
                    }
                }

                for ( Iterator i = settings.getMirrors().iterator(); i.hasNext(); )
                {
                    Mirror mirror = (Mirror) i.next();

                    wagonManager.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() );
                }
            }
            finally
            {
                if ( sd != null )
                {
                    container.release( sd );
                }
            }
        }
        finally
        {
            container.release( wagonManager );
        }

        WagonProviderMapping mapping = (WagonProviderMapping) container.lookup( WagonProviderMapping.ROLE );
        try
        {
            // set defaults
            mapping.setWagonProvider( "http", "lightweight" );
            mapping.setWagonProvider( "https", "lightweight" );

            for ( Object k: executionProperties.keySet() )
            {
                String key = (String) k;
                if ( key.startsWith( "maven.wagon.provider." ) )
                {
                    String provider = executionProperties.getProperty( key );
                    key = key.substring( "maven.wagon.provider.".length() );

                    mapping.setWagonProvider( key, provider );
                }
            }
        }
        finally
        {
            container.release( mapping );
        }

        // Would be better in settings.xml, but it is not extensible yet
        String numThreads = System.getProperty( "maven.artifact.threads" );
        if ( numThreads != null )
        {
            int threads = 0;
            try
            {
                threads = Integer.valueOf( numThreads ).intValue();

                if ( threads < 1 )
                {
                    getLogger().warn( "Invalid number of threads '" + threads + "' will be ignored" );
                }
            }
            catch ( NumberFormatException e )
            {
                getLogger().warn( "Invalid number of threads '" + numThreads + "' will be ignored: " + e.getMessage() );
            }

            if ( threads > 0 )
            {
                DefaultArtifactResolver artifactResolver = (DefaultArtifactResolver) container.lookup( ArtifactResolver.ROLE );
                try
                {
                    artifactResolver.configureNumberOfThreads( threads );
                    getLogger().debug( "Resolution thread pool size set to: " + threads );
                }
                finally
                {
                    container.release( artifactResolver );
                }
            }
        }
    }