You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2009/07/28 22:50:03 UTC

svn commit: r798706 - in /maven/maven-2/branches/maven-2.2.x: maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ maven-artifact-manager/src/main/resources/META-INF/plexus/ maven-core/src/main/java/org/apache/maven/ maven-core/src/m...

Author: brett
Date: Tue Jul 28 20:50:02 2009
New Revision: 798706

URL: http://svn.apache.org/viewvc?rev=798706&view=rev
Log:
[MNG-4254] remove use of Plexus component override as it is dependent on shading order to work correctly and can't be tested. Correct default for HTTPS wagon.

Modified:
    maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
    maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
    maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java
    maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
    maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
    maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java

Modified: maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Tue Jul 28 20:50:02 2009
@@ -1211,11 +1211,6 @@
         serverConfigurationMap.put( repositoryId, xmlConf );
     }
     
-    public void setWagonProvider( String protocol, String provider )
-    {
-        providerMapping.setWagonProvider( protocol, provider );
-    }
-
     public void setDefaultRepositoryPermissions( RepositoryPermissions defaultRepositoryPermissions )
     {
         this.defaultRepositoryPermissions = defaultRepositoryPermissions;

Modified: maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java Tue Jul 28 20:50:02 2009
@@ -126,11 +126,4 @@
     void setDefaultRepositoryPermissions( RepositoryPermissions permissions );
 
     ArtifactRepository getMirrorRepository( ArtifactRepository repository );
-    
-    /**
-     * Set the provider name for selecting one Wagon from a range of possible implementations for
-     * the give protocol. This provider name is combined with the protocol to form the role-hint
-     * for Wagon lookup, using the format: <code>[protocol]-[provider]</code>.
-     */
-    void setWagonProvider( String protocol, String provider );
 }

Modified: maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java Tue Jul 28 20:50:02 2009
@@ -21,6 +21,8 @@
 
 public interface WagonProviderMapping
 {
+
+    String ROLE = WagonProviderMapping.class.getName();
     
     public void setWagonProvider( String protocol, String provider );
     

Modified: maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml Tue Jul 28 20:50:02 2009
@@ -33,15 +33,12 @@
         </requirement>
         <requirement>
           <role>org.apache.maven.artifact.manager.WagonProviderMapping</role>
-          <role-hint>maven</role-hint>
         </requirement>
       </requirements>
     </component>
     
-    <!-- This component should be redefined to introduce new default provider mappings in maven-core. -->
     <component>
       <role>org.apache.maven.artifact.manager.WagonProviderMapping</role>
-      <role-hint>maven</role-hint>
       <implementation>org.apache.maven.artifact.manager.DefaultWagonProviderMapping</implementation>
     </component>
 

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Tue Jul 28 20:50:02 2009
@@ -37,6 +37,7 @@
 
 import org.apache.maven.artifact.manager.DefaultWagonManager;
 import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.manager.WagonProviderMapping;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
@@ -774,19 +775,6 @@
     
                     wagonManager.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() );
                 }
-                
-                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() );
-                        
-                        wagonManager.setWagonProvider( key, provider );
-                    }
-                    
-                }
             }
             finally
             {
@@ -801,6 +789,30 @@
             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 )

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml Tue Jul 28 20:50:02 2009
@@ -623,18 +623,6 @@
       </configuration>
     </component>    
     
-    <component>
-      <role>org.apache.maven.artifact.manager.WagonProviderMapping</role>
-      <role-hint>maven</role-hint>
-      <implementation>org.apache.maven.artifact.manager.DefaultWagonProviderMapping</implementation>
-      <configuration>
-        <wagonProviders>
-          <http>lightweight</http>
-          <http>lightweight</http>
-        </wagonProviders>
-      </configuration>
-    </component>
-
     <!-- TODO: The following wagon component definitions need to be moved into the proper wagon-* projects... -->
     <component>
       <role>org.apache.maven.wagon.Wagon</role>

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java?rev=798706&r1=798705&r2=798706&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java Tue Jul 28 20:50:02 2009
@@ -21,6 +21,7 @@
 
 import org.apache.maven.artifact.manager.WagonConfigurationException;
 import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.manager.WagonProviderMapping;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
@@ -40,6 +41,8 @@
 import org.apache.maven.wagon.UnsupportedProtocolException;
 import org.apache.maven.wagon.Wagon;
 import org.apache.maven.wagon.providers.http.HttpWagon;
+import org.apache.maven.wagon.providers.http.LightweightHttpWagon;
+import org.apache.maven.wagon.providers.http.LightweightHttpsWagon;
 import org.apache.maven.wagon.repository.Repository;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
@@ -57,6 +60,8 @@
     extends PlexusTestCase
 {
 
+    private WagonProviderMapping mapping;
+
     private WagonManager manager;
 
     private ArtifactRepository localRepository;
@@ -69,7 +74,10 @@
         throws Exception
     {
         super.setUp();
-        manager = (WagonManager) lookup( WagonManager.class.getName() );
+
+        mapping = (WagonProviderMapping) lookup( WagonProviderMapping.ROLE );
+
+        manager = (WagonManager) lookup( WagonManager.ROLE );
 
         ArtifactRepositoryLayout layout =
             (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.class.getName(), "default" );
@@ -81,6 +89,7 @@
     public void tearDown()
         throws Exception
     {
+        release( mapping );
         release( manager );
         super.tearDown();
         
@@ -96,10 +105,34 @@
         }
     }
 
+    public void testSelectHttpWagonFromDefault()
+        throws Exception
+    {
+        Properties executionProperties = new Properties();
+
+        MavenExecutionRequest req = createMavenRequest( executionProperties );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
+
+        assertTrue( "Should use " + LightweightHttpWagon.class.getName(), wagon instanceof LightweightHttpWagon );
+    }
+
+    public void testSelectHttpsWagonFromDefault()
+        throws Exception
+    {
+        Properties executionProperties = new Properties();
+
+        MavenExecutionRequest req = createMavenRequest( executionProperties );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "https://www.google.com/" ) );
+
+        assertTrue( "Should use " + LightweightHttpsWagon.class.getName(), wagon instanceof LightweightHttpsWagon );
+    }
+
     public void testSelectHttpclientWagonFromSimulatedMavenCliConfiguration()
         throws WagonConfigurationException, UnsupportedProtocolException
     {
-        manager.setWagonProvider( "http", "httpclient" );
+        mapping.setWagonProvider( "http", "httpclient" );
 
         Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
 
@@ -123,6 +156,18 @@
     public void testSelectHttpclientWagonFromMavenCLIParameter()
         throws WagonConfigurationException, UnsupportedProtocolException, MavenExecutionException, IOException
     {
+        Properties executionProperties = new Properties();
+        executionProperties.setProperty( "maven.wagon.provider.http", "httpclient" );
+
+        MavenExecutionRequest req = createMavenRequest( executionProperties );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
+        assertTrue( "Should use " + HttpWagon.class.getName(), wagon instanceof HttpWagon );
+    }
+
+    public MavenExecutionRequest createMavenRequest( Properties executionProperties )
+        throws IOException, MavenExecutionException
+    {
         Settings settings = new Settings();
         EventDispatcher eventDispatcher = new DefaultEventDispatcher();
 
@@ -159,9 +204,6 @@
         boolean showErrors = false;
         Properties userProperties = new Properties();
 
-        Properties executionProperties = new Properties();
-        executionProperties.setProperty( "maven.wagon.provider.http", "httpclient" );
-
         MavenExecutionRequest req =
             new DefaultMavenExecutionRequest( localRepository, settings, eventDispatcher, goals, baseDirectory,
                                               globalProfileManager, executionProperties, userProperties, showErrors );
@@ -170,8 +212,7 @@
 
         maven.execute( req );
 
-        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
-        assertTrue( "Should use " + HttpWagon.class.getName(), wagon instanceof HttpWagon );
+        return req;
     }
 
     public static final class TestRuntimeInformation