Author: bentmann
Date: Thu Nov 18 23:10:41 2010
New Revision: 1036677

URL: http://svn.apache.org/viewvc?rev=1036677&view=rev
Log:
[MNG-4850] [regression] several elements of server configuration in 
settings.xml are not honoured

Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=1036677&r1=1036676&r2=1036677&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java 
(original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java 
Thu Nov 18 23:10:41 2010
@@ -68,10 +68,12 @@ import org.codehaus.plexus.PlexusContain
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.sonatype.aether.ConfigurationProperties;
 import org.sonatype.aether.RepositoryEvent;
 import org.sonatype.aether.RepositorySystem;
@@ -331,14 +333,11 @@ public class DefaultMaven
 
         session.setIgnoreInvalidArtifactDescriptor( true 
).setIgnoreMissingArtifactDescriptor( true );
 
-        session.setUserProps( request.getUserProperties() );
-        session.setSystemProps( request.getSystemProperties() );
         Map<Object, Object> configProps = new LinkedHashMap<Object, Object>();
         configProps.put( ConfigurationProperties.USER_AGENT, getUserAgent() );
         configProps.put( ConfigurationProperties.INTERACTIVE, Boolean.valueOf( 
request.isInteractiveMode() ) );
         configProps.putAll( request.getSystemProperties() );
         configProps.putAll( request.getUserProperties() );
-        session.setConfigProps( configProps );
 
         session.setOffline( request.isOffline() );
         session.setChecksumPolicy( request.getGlobalChecksumPolicy() );
@@ -398,6 +397,25 @@ public class DefaultMaven
                 new Authentication( server.getUsername(), 
server.getPassword(), server.getPrivateKey(),
                                     server.getPassphrase() );
             authSelector.add( server.getId(), auth );
+
+            if ( server.getConfiguration() != null )
+            {
+                Xpp3Dom dom = (Xpp3Dom) server.getConfiguration();
+                for ( int i = dom.getChildCount() - 1; i >= 0; i-- )
+                {
+                    Xpp3Dom child = dom.getChild( i );
+                    if ( "wagonProvider".equals( child.getName() ) )
+                    {
+                        dom.removeChild( i );
+                    }
+                }
+
+                XmlPlexusConfiguration config = new XmlPlexusConfiguration( 
dom );
+                configProps.put( "aether.connector.wagon.config." + 
server.getId(), config );
+            }
+
+            configProps.put( "aether.connector.perms.fileMode." + 
server.getId(), server.getFilePermissions() );
+            configProps.put( "aether.connector.perms.dirMode." + 
server.getId(), server.getDirectoryPermissions() );
         }
         session.setAuthenticationSelector( authSelector );
 
@@ -422,6 +440,10 @@ public class DefaultMaven
 
         session.setRepositoryListener( new LoggingRepositoryListener( logger ) 
);
 
+        session.setUserProps( request.getUserProperties() );
+        session.setSystemProps( request.getSystemProperties() );
+        session.setConfigProps( configProps );
+
         return session;
     }
 


Reply via email to