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

svn commit: r793708 - in /maven/maven-2/branches/maven-2.2.x: maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ maven-core/src/test/java/org/apache/maven/ maven-core/src/test/resources/org/apache/maven/

Author: jdcasey
Date: Mon Jul 13 20:42:54 2009
New Revision: 793708

URL: http://svn.apache.org/viewvc?rev=793708&view=rev
Log:
[MNG-4228] Missed some new files.

Added:
    maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonProviderMapping.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-core/src/test/java/org/apache/maven/WagonSelectorTest.java
    maven/maven-2/branches/maven-2.2.x/maven-core/src/test/resources/org/apache/maven/WagonSelectorTest.xml

Added: maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonProviderMapping.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/DefaultWagonProviderMapping.java?rev=793708&view=auto
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonProviderMapping.java (added)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonProviderMapping.java Mon Jul 13 20:42:54 2009
@@ -0,0 +1,27 @@
+package org.apache.maven.artifact.manager;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DefaultWagonProviderMapping
+    implements WagonProviderMapping
+{
+    
+    private Map<String, String> wagonProviders = new HashMap<String, String>();
+    
+    public String getWagonProvider( String protocol )
+    {
+        return wagonProviders.get( protocol );
+    }
+
+    public void setWagonProvider( String protocol, String provider )
+    {
+        wagonProviders.put( protocol, provider );
+    }
+    
+    public void setWagonProviders( Map<String, String> wagonProviders )
+    {
+        this.wagonProviders = wagonProviders;
+    }
+
+}

Added: 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=793708&view=auto
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java (added)
+++ maven/maven-2/branches/maven-2.2.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonProviderMapping.java Mon Jul 13 20:42:54 2009
@@ -0,0 +1,10 @@
+package org.apache.maven.artifact.manager;
+
+public interface WagonProviderMapping
+{
+    
+    public void setWagonProvider( String protocol, String provider );
+    
+    public String getWagonProvider( String protocol );
+
+}

Added: 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=793708&view=auto
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java (added)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/test/java/org/apache/maven/WagonSelectorTest.java Mon Jul 13 20:42:54 2009
@@ -0,0 +1,169 @@
+package org.apache.maven;
+
+import org.apache.maven.artifact.manager.WagonConfigurationException;
+import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.RuntimeInformation;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.monitor.event.DefaultEventDispatcher;
+import org.apache.maven.monitor.event.EventDispatcher;
+import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.reactor.MavenExecutionException;
+import org.apache.maven.settings.Settings;
+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.repository.Repository;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+public class WagonSelectorTest
+    extends PlexusTestCase
+{
+
+    private WagonManager manager;
+
+    private ArtifactRepository localRepository;
+
+    private Maven maven;
+
+    private File dir;
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        manager = (WagonManager) lookup( WagonManager.class.getName() );
+
+        ArtifactRepositoryLayout layout =
+            (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.class.getName(), "default" );
+        localRepository = new DefaultArtifactRepository( "local", System.getProperty( "java.io.tmpdir" ), layout );
+
+        maven = (Maven) lookup( Maven.class.getName() );
+    }
+
+    public void tearDown()
+        throws Exception
+    {
+        release( manager );
+        super.tearDown();
+        
+        if ( dir != null )
+        {
+            try
+            {
+                FileUtils.forceDelete( dir );
+            }
+            catch ( IOException e )
+            {
+            }
+        }
+    }
+
+    public void testSelectHttpclientWagonFromSimulatedMavenCliConfiguration()
+        throws WagonConfigurationException, UnsupportedProtocolException
+    {
+        manager.setWagonProvider( "http", "httpclient" );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
+
+        assertTrue( "Should use " + HttpWagon.class.getName(), wagon instanceof HttpWagon );
+    }
+
+    public void testSelectHttpclientWagonFromServerConfiguration()
+        throws WagonConfigurationException, UnsupportedProtocolException
+    {
+        Xpp3Dom config = new Xpp3Dom( "configuration" );
+        Xpp3Dom provider = new Xpp3Dom( "wagonProvider" );
+        provider.setValue( "httpclient" );
+        config.addChild( provider );
+
+        manager.addConfiguration( "id", config );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
+        assertTrue( "Should use " + HttpWagon.class.getName(), wagon instanceof HttpWagon );
+    }
+
+    public void testSelectHttpclientWagonFromMavenCLIParameter()
+        throws WagonConfigurationException, UnsupportedProtocolException, MavenExecutionException, IOException
+    {
+        Settings settings = new Settings();
+        EventDispatcher eventDispatcher = new DefaultEventDispatcher();
+
+        List<String> goals = new ArrayList<String>();
+        goals.add( "validate" );
+
+        dir = File.createTempFile( "WagonSelectorTest.", ".dir" );
+        dir.delete();
+        dir.mkdirs();
+
+        File pom = new File( dir, "pom.xml" );
+
+        Model model = new Model();
+        model.setModelVersion( "4.0.0" );
+        model.setGroupId( "wagon.selector.test" );
+        model.setArtifactId( "wagon-selector-test" );
+        model.setVersion( "1" );
+        model.setPackaging( "pom" );
+        
+        FileWriter writer = null;
+        try
+        {
+            writer = new FileWriter( pom );
+            new MavenXpp3Writer().write( writer, model );
+        }
+        finally
+        {
+            IOUtil.close( writer );
+        }
+
+        String baseDirectory = dir.getAbsolutePath();
+        ProfileManager globalProfileManager = new DefaultProfileManager( getContainer(), new Properties() );
+
+        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 );
+        
+        req.setPomFile( pom.getAbsolutePath() );
+
+        maven.execute( req );
+
+        Wagon wagon = manager.getWagon( new Repository( "id", "http://www.google.com/" ) );
+        assertTrue( "Should use " + HttpWagon.class.getName(), wagon instanceof HttpWagon );
+    }
+
+    public static final class TestRuntimeInformation
+        implements RuntimeInformation
+    {
+
+        public ArtifactVersion getApplicationVersion()
+        {
+            return new DefaultArtifactVersion( "TEST" );
+        }
+
+    }
+
+}

Added: maven/maven-2/branches/maven-2.2.x/maven-core/src/test/resources/org/apache/maven/WagonSelectorTest.xml
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/test/resources/org/apache/maven/WagonSelectorTest.xml?rev=793708&view=auto
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/test/resources/org/apache/maven/WagonSelectorTest.xml (added)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/test/resources/org/apache/maven/WagonSelectorTest.xml Mon Jul 13 20:42:54 2009
@@ -0,0 +1,8 @@
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.execution.RuntimeInformation</role>
+      <implementation>org.apache.maven.WagonSelectorTest$TestRuntimeInformation</implementation>
+    </component>
+  </components>
+</component-set>
\ No newline at end of file