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