You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2013/08/31 22:35:40 UTC

git commit: [MNG-5509] org.apache.maven.repository.legacy.DefaultWagonManager should set User-Agent

Updated Branches:
  refs/heads/master 5691c6e27 -> c9950d777


[MNG-5509] org.apache.maven.repository.legacy.DefaultWagonManager should
set User-Agent

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/c9950d77
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/c9950d77
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/c9950d77

Branch: refs/heads/master
Commit: c9950d777c7368e51431500c29aecf1e11e3d2c6
Parents: 5691c6e
Author: rfscholte <rf...@apache.org>
Authored: Sat Aug 31 22:35:02 2013 +0200
Committer: rfscholte <rf...@apache.org>
Committed: Sat Aug 31 22:35:02 2013 +0200

----------------------------------------------------------------------
 .../repository/legacy/DefaultWagonManager.java  | 34 +++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/c9950d77/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
----------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
index a2bfe8c..df81685 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
@@ -21,16 +21,19 @@ package org.apache.maven.repository.legacy;
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.reflect.Method;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.plugin.LegacySupport;
 import org.apache.maven.wagon.ConnectionException;
 import org.apache.maven.wagon.ResourceDoesNotExistException;
 import org.apache.maven.wagon.TransferFailedException;
@@ -50,6 +53,8 @@ import org.codehaus.plexus.component.repository.exception.ComponentLifecycleExce
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
+import org.eclipse.aether.ConfigurationProperties;
+import org.eclipse.aether.util.ConfigUtils;
 
 //TODO: remove the update check manager
 //TODO: separate into retriever and publisher
@@ -72,6 +77,10 @@ public class DefaultWagonManager
     @Requirement
     private UpdateCheckManager updateCheckManager;
 
+    @Requirement
+    private LegacySupport legacySupport;
+    
+    
     //
     // Retriever
     //
@@ -226,6 +235,29 @@ public class DefaultWagonManager
     private void connectWagon( Wagon wagon, ArtifactRepository repository )
         throws ConnectionException, AuthenticationException
     {
+        // MNG-5509 
+        // See org.eclipse.aether.connector.wagon.WagonRepositoryConnector.connectWagon(Wagon)
+        if( legacySupport.getRepositorySession() != null )
+        {
+            Properties headers = new Properties();
+            
+            headers.put( "User-Agent", ConfigUtils.getString( legacySupport.getRepositorySession(), "Maven",
+                                                              ConfigurationProperties.USER_AGENT ) );
+            try
+            {
+                Method setHttpHeaders = wagon.getClass().getMethod( "setHttpHeaders", Properties.class );
+                setHttpHeaders.invoke( wagon, headers );
+            }
+            catch ( NoSuchMethodException e )
+            {
+                // normal for non-http wagons
+            }
+            catch ( Exception e )
+            {
+                logger.debug( "Could not set user agent for wagon " + wagon.getClass().getName() + ": " + e );
+            }
+        }
+        
         if ( repository.getProxy() != null && logger.isDebugEnabled() )
         {
             logger.debug( "Using proxy " + repository.getProxy().getHost() + ":" + repository.getProxy().getPort()
@@ -768,7 +800,7 @@ public class DefaultWagonManager
             throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: "
                 + protocol, e );
         }
-
+        
         return wagon;
     }