Author: jdcasey
Date: Thu Jul 31 08:41:13 2008
New Revision: 681399
URL: http://svn.apache.org/viewvc?rev=681399&view=rev
Log:
Reinstate wagon 1.0-beta-4.
Modified:
maven/components/branches/maven-2.0.10-RC/apache-maven/pom.xml
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
maven/components/branches/maven-2.0.10-RC/maven-core/pom.xml
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml
maven/components/branches/maven-2.0.10-RC/pom.xml
Modified: maven/components/branches/maven-2.0.10-RC/apache-maven/pom.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/apache-maven/pom.xml?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/apache-maven/pom.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/apache-maven/pom.xml Thu Jul 31
08:41:13 2008
@@ -46,9 +46,9 @@
org.codehaus.plexus:plexus-component-api
</exclude>
<exclude>classworlds:classworlds</exclude>
+ <exclude>xml-apis:xml-apis</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:jmock</exclude>
- <exclude>xml-apis:xml-apis</exclude>
</excludes>
</artifactSet>
<relocations>
@@ -69,6 +69,20 @@
<relocation>
<pattern>org.apache.commons.logging</pattern>
</relocation>
+
+ <!-- For jsch wagon -->
+ <relocation>
+ <pattern>com.jcraft</pattern>
+ </relocation>
+
+ <!-- For wagon API -->
+ <relocation>
+ <pattern>org.cyberneko</pattern>
+ </relocation>
+ <relocation>
+ <pattern>org.apache.xerces</pattern>
+ </relocation>
+
<relocation>
<pattern>org.codehaus.plexus.util</pattern>
<excludes>
Modified:
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
Thu Jul 31 08:41:13 2008
@@ -36,6 +36,7 @@
import org.apache.maven.wagon.events.TransferListener;
import org.apache.maven.wagon.observers.ChecksumObserver;
import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.proxy.ProxyInfoProvider;
import org.apache.maven.wagon.repository.Repository;
import org.apache.maven.wagon.repository.RepositoryPermissions;
import org.codehaus.plexus.PlexusConstants;
@@ -50,11 +51,15 @@
import org.codehaus.plexus.context.ContextException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
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.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
@@ -64,16 +69,19 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
public class DefaultWagonManager
extends AbstractLogEnabled
- implements WagonManager, Contextualizable
+ implements WagonManager, Contextualizable, Initializable
{
private static final String WILDCARD = "*";
private static final String EXTERNAL_WILDCARD = "external:*";
+ private static final String MAVEN_ARTIFACT_PROPERTIES =
"META-INF/maven/org.apache.maven/maven-artifact/pom.properties";
+
private static int anonymousMirrorIdSeed = 0;
private PlexusContainer container;
@@ -104,6 +112,8 @@
private RepositoryPermissions defaultRepositoryPermissions;
+ private String httpUserAgent;
+
// TODO: this leaks the component in the public api - it is never released
back to the container
public Wagon getWagon( Repository repository )
throws UnsupportedProtocolException, WagonConfigurationException
@@ -117,7 +127,7 @@
Wagon wagon = getWagon( protocol );
- configureWagon( wagon, repository.getId() );
+ configureWagon( wagon, repository.getId(), protocol );
return wagon;
}
@@ -241,7 +251,14 @@
}
}
- wagon.connect( artifactRepository, getAuthenticationInfo(
repository.getId() ), getProxy( protocol ) );
+// wagon.connect( artifactRepository, getAuthenticationInfo(
repository.getId() ), getProxy( protocol ) );
+ wagon.connect( artifactRepository, getAuthenticationInfo(
repository.getId() ), new ProxyInfoProvider()
+ {
+ public ProxyInfo getProxyInfo( String protocol )
+ {
+ return getProxy( protocol );
+ }
+ });
wagon.put( source, remotePath );
@@ -421,7 +438,13 @@
getLogger().debug( "Connecting to repository: \'" +
repository.getId() + "\' with url: \'" + repository.getUrl() + "\'." );
wagon.connect( new Repository( repository.getId(),
repository.getUrl() ),
- getAuthenticationInfo( repository.getId() ),
getProxy( protocol ) );
+ getAuthenticationInfo( repository.getId() ), new
ProxyInfoProvider()
+ {
+ public ProxyInfo getProxyInfo( String protocol )
+ {
+ return getProxy( protocol );
+ }
+ });
boolean firstRun = true;
boolean retry = true;
@@ -1007,21 +1030,27 @@
ArtifactRepository repository )
throws WagonConfigurationException
{
- configureWagon( wagon, repository.getId() );
+ configureWagon( wagon, repository.getId(), repository.getProtocol() );
}
private void configureWagon( Wagon wagon,
- String repositoryId )
+ String repositoryId,
+ String protocol )
throws WagonConfigurationException
{
- if ( serverConfigurationMap.containsKey( repositoryId ) )
+ PlexusConfiguration config = (PlexusConfiguration)
serverConfigurationMap.get( repositoryId );
+ if ( protocol.startsWith( "http" ) || protocol.startsWith( "dav" ) )
+ {
+ config = updateUserAgentForHttp( wagon, config );
+ }
+
+ if ( config != null )
{
ComponentConfigurator componentConfigurator = null;
try
{
componentConfigurator = (ComponentConfigurator)
container.lookup( ComponentConfigurator.ROLE );
- componentConfigurator.configureComponent( wagon,
(PlexusConfiguration) serverConfigurationMap
- .get( repositoryId ), container.getContainerRealm() );
+ componentConfigurator.configureComponent( wagon, config,
container.getContainerRealm() );
}
catch ( final ComponentLookupException e )
{
@@ -1051,6 +1080,69 @@
}
}
+ // TODO: Remove this, once the maven-shade-plugin 1.2 release is out,
allowing configuration of httpHeaders in the components.xml
+ private PlexusConfiguration updateUserAgentForHttp( Wagon wagon,
PlexusConfiguration config )
+ {
+ if ( config == null )
+ {
+ config = new XmlPlexusConfiguration( "configuration" );
+ }
+
+ if ( httpUserAgent != null )
+ {
+ try
+ {
+ wagon.getClass().getMethod( "setHttpHeaders", new Class[]{
Properties.class } );
+
+ PlexusConfiguration headerConfig = config.getChild(
"httpHeaders", true );
+ PlexusConfiguration[] children = headerConfig.getChildren(
"property" );
+ boolean found = false;
+
+ getLogger().debug( "Checking for pre-existing User-Agent
configuration." );
+ for ( int i = 0; i < children.length; i++ )
+ {
+ PlexusConfiguration c = children[i].getChild( "name",
false );
+ if ( c != null && "User-Agent".equals( c.getValue( null )
) )
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if ( !found )
+ {
+ getLogger().debug( "Adding User-Agent configuration." );
+ XmlPlexusConfiguration propertyConfig = new
XmlPlexusConfiguration( "property" );
+ headerConfig.addChild( propertyConfig );
+
+ XmlPlexusConfiguration nameConfig = new
XmlPlexusConfiguration( "name" );
+ nameConfig.setValue( "User-Agent" );
+ propertyConfig.addChild( nameConfig );
+
+ XmlPlexusConfiguration versionConfig = new
XmlPlexusConfiguration( "value" );
+ versionConfig.setValue( httpUserAgent );
+ propertyConfig.addChild( versionConfig );
+ }
+ else
+ {
+ getLogger().debug( "User-Agent configuration found." );
+ }
+ }
+ catch ( SecurityException e )
+ {
+ getLogger().debug( "setHttpHeaders method not accessible on
wagon: " + wagon + "; skipping User-Agent configuration." );
+ // forget it. this method is public, if it exists.
+ }
+ catch ( NoSuchMethodException e )
+ {
+ getLogger().debug( "setHttpHeaders method not found on wagon:
" + wagon + "; skipping User-Agent configuration." );
+ // forget it.
+ }
+ }
+
+ return config;
+ }
+
public void addConfiguration( String repositoryId,
Xpp3Dom configuration )
{
@@ -1068,4 +1160,58 @@
{
this.defaultRepositoryPermissions = defaultRepositoryPermissions;
}
+
+ // TODO: Remove this, once the maven-shade-plugin 1.2 release is out,
allowing configuration of httpHeaders in the components.xml
+ public void initialize()
+ throws InitializationException
+ {
+ if ( httpUserAgent == null )
+ {
+ InputStream resourceAsStream = null;
+ try
+ {
+ Properties properties = new Properties();
+ resourceAsStream =
getClass().getClassLoader().getResourceAsStream( MAVEN_ARTIFACT_PROPERTIES );
+
+ if ( resourceAsStream != null )
+ {
+ try
+ {
+ properties.load( resourceAsStream );
+
+ httpUserAgent =
+ "maven-artifact/" + properties.getProperty(
"version" ) + " (Java "
+ + System.getProperty( "java.version" ) + "; "
+ System.getProperty( "os.name" ) + " "
+ + System.getProperty( "os.version" ) + ")";
+ }
+ catch ( IOException e )
+ {
+ getLogger().warn(
+ "Failed to load Maven artifact
properties from:\n" + MAVEN_ARTIFACT_PROPERTIES
+ + "\n\nUser-Agent HTTP header
may be incorrect for artifact resolution." );
+ }
+ }
+ }
+ finally
+ {
+ IOUtil.close( resourceAsStream );
+ }
+ }
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public void setHttpUserAgent( String userAgent )
+ {
+ this.httpUserAgent = userAgent;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public String getHttpUserAgent()
+ {
+ return httpUserAgent;
+ }
}
Modified:
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
Thu Jul 31 08:41:13 2008
@@ -53,7 +53,7 @@
public class DefaultWagonManagerTest
extends PlexusTestCase
{
- private DefaultWagonManager wagonManager;
+ private WagonManager wagonManager;
private TransferListener transferListener = new Debug();
@@ -64,7 +64,7 @@
{
super.setUp();
- wagonManager = (DefaultWagonManager) lookup( WagonManager.ROLE );
+ wagonManager = (WagonManager) lookup( WagonManager.ROLE );
artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
}
Modified:
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/StringWagon.java
Thu Jul 31 08:41:13 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.io.File;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
@@ -29,7 +31,9 @@
import org.apache.maven.wagon.StreamWagon;
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.authentication.AuthenticationException;
+import org.apache.maven.wagon.authorization.AuthorizationException;
import org.apache.maven.wagon.resource.Resource;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringInputStream;
import org.codehaus.plexus.util.StringOutputStream;
@@ -54,7 +58,7 @@
}
public void fillInputData( InputData inputData )
- throws TransferFailedException, ResourceDoesNotExistException
+ throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
{
Resource resource = inputData.getResource();
@@ -88,11 +92,4 @@
{
expectedContent.clear();
}
-
- public void openConnection()
- throws ConnectionException, AuthenticationException
- {
- // TODO Auto-generated method stub
-
- }
}
Modified: maven/components/branches/maven-2.0.10-RC/maven-core/pom.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/pom.xml?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/maven-core/pom.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/maven-core/pom.xml Thu Jul 31
08:41:13 2008
@@ -25,7 +25,7 @@
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
Modified:
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Thu Jul 31 08:41:13 2008
@@ -21,8 +21,10 @@
import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.manager.DefaultWagonManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.execution.BuildFailure;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
@@ -602,6 +604,49 @@
private void resolveParameters( Settings settings )
throws ComponentLookupException, ComponentLifecycleException,
SettingsConfigurationException
{
+ // TODO: remove when components.xml can be used to configure this
instead
+ try
+ {
+ DefaultWagonManager wagonManager = (DefaultWagonManager)
container.lookup( WagonManager.ROLE );
+
+ String oldUserAgent = wagonManager.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 );
+ }
+
+ wagonManager.setHttpUserAgent( buffer.toString() );
+ }
+ catch ( ClassCastException e )
+ {
+ // ignore
+ }
+
WagonManager wagonManager = (WagonManager) container.lookup(
WagonManager.ROLE );
try
Modified:
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/MavenArtifactFilterManager.java
Thu Jul 31 08:41:13 2008
@@ -66,7 +66,6 @@
artifacts.add( "commons-cli" );
artifacts.add( "doxia-sink-api" );
artifacts.add( "doxia-logging-api" );
- artifacts.add( "jsch" );
artifacts.add( "maven-artifact" );
artifacts.add( "maven-artifact-manager" );
artifacts.add( "maven-core" );
@@ -84,10 +83,7 @@
artifacts.add( "maven-settings" );
artifacts.add( "plexus-container-default" );
artifacts.add( "plexus-interactivity-api" );
- //adding shared/maven-toolchain project here, even though not part of
the default
- //distro yet.
artifacts.add( "maven-toolchain" );
- //artifacts.add( "plexus-utils" );
artifacts.add( "wagon-provider-api" );
return artifacts;
}
Modified:
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml
(original)
+++
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml
Thu Jul 31 08:41:13 2008
@@ -583,5 +583,18 @@
</requirement>
</requirements>
</component>
+
+ <!-- TODO: Re-enable this once maven-shade-plugin 1.2 is release and can
be
+ used to merge this configuration with that of the wagon artifacts.
+ We also need a way not to filter in the os.name, etc during the
build, just the project version
+ <component>
+ <role>org.apache.maven.artifact.manager.WagonManager</role>
+ <role-hint>default</role-hint>
+
<implementation>org.apache.maven.artifact.manager.DefaultWagonManager</implementation>
+ <configuration>
+ <httpUserAgent>Apache-Maven/${project.version}
maven-artifact/${project.version} (Java @java.version@; @os.name@
@os.version@)</httpUserAgent>
+ </configuration>
+ </component>
+ -->
</components>
</component-set>
Modified: maven/components/branches/maven-2.0.10-RC/pom.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/pom.xml?rev=681399&r1=681398&r2=681399&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/pom.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/pom.xml Thu Jul 31 08:41:13 2008
@@ -244,7 +244,7 @@
<properties>
<mavenVersion>2.0.10-RC4-SNAPSHOT</mavenVersion>
- <wagonVersion>1.0-beta-2</wagonVersion>
+ <wagonVersion>1.0-beta-4</wagonVersion>
</properties>
<!--start-->
@@ -404,7 +404,7 @@
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
<version>${wagonVersion}</version>
</dependency>
<dependency>
@@ -533,4 +533,4 @@
</reporting>
</profile>
</profiles>
-</project>
\ No newline at end of file
+</project>