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 2008/07/23 06:49:56 UTC

svn commit: r678986 - in /maven/components/branches/maven-2.0.10-RC: ./ maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ maven-core/ maven-core/src/main/java/org/apache/maven/ maven-core/src/main/resources/META-INF/plexus/

Author: brett
Date: Tue Jul 22 21:49:55 2008
New Revision: 678986

URL: http://svn.apache.org/viewvc?rev=678986&view=rev
Log:
[MNG-3652] further improvements to the configuration of the User-Agent header

Modified:
    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/main/java/org/apache/maven/artifact/manager/WagonManager.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/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/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=678986&r1=678985&r2=678986&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 Tue Jul 22 21:49:55 2008
@@ -79,7 +79,7 @@
 
     private static final String EXTERNAL_WILDCARD = "external:*";
 
-    private static final String MAVEN_CORE_PROPERTIES = "META-INF/maven/org.apache.maven/maven-core/pom.properties";
+    private static final String MAVEN_ARTIFACT_PROPERTIES = "META-INF/maven/org.apache.maven/maven-artifact/pom.properties";
 
     private PlexusContainer container;
 
@@ -111,8 +111,6 @@
 
     private String httpUserAgent;
     
-    private String httpUserAgentDetails;
-
     // 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
@@ -1008,7 +1006,7 @@
         throws WagonConfigurationException
     {
         PlexusConfiguration config = (PlexusConfiguration) serverConfigurationMap.get( repositoryId ); 
-        if ( protocol.startsWith( "http" ) )
+        if ( protocol.startsWith( "http" ) || protocol.startsWith( "dav" ) )
         {
             config = updateUserAgentForHttp( wagon, config );
         }
@@ -1057,16 +1055,25 @@
             config = new XmlPlexusConfiguration( "configuration" );
         }
         
-        String userAgent = getHttpUserAgentString();
-        
-        if ( userAgent != null )
+        if ( httpUserAgent != null )
         {
             try
             {
                 wagon.getClass().getMethod( "setHttpHeaders", new Class[]{ Properties.class } );
                 
                 PlexusConfiguration headerConfig = config.getChild( "httpHeaders", true );
-                if ( headerConfig.getChild( "User-Agent", false ) == null )
+                PlexusConfiguration[] children = headerConfig.getChildren( "property" );
+                boolean found = false;
+                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 )
                 {
                     XmlPlexusConfiguration propertyConfig = new XmlPlexusConfiguration( "property" );
                     headerConfig.addChild( propertyConfig );
@@ -1076,7 +1083,7 @@
                     propertyConfig.addChild( nameConfig );
                     
                     XmlPlexusConfiguration versionConfig = new XmlPlexusConfiguration( "value" );
-                    versionConfig.setValue( userAgent );
+                    versionConfig.setValue( httpUserAgent );
                     propertyConfig.addChild( versionConfig );
                 }
             }
@@ -1117,16 +1124,11 @@
     {
         if ( httpUserAgent == null )
         {
-            httpUserAgent = "ApacheMavenArtifact/2.0";
-        }
-        
-        if ( httpUserAgentDetails == null )
-        {
             InputStream resourceAsStream = null;
             try
             {
                 Properties properties = new Properties();
-                resourceAsStream = getClass().getClassLoader().getResourceAsStream( MAVEN_CORE_PROPERTIES );
+                resourceAsStream = getClass().getClassLoader().getResourceAsStream( MAVEN_ARTIFACT_PROPERTIES );
 
                 if ( resourceAsStream != null )
                 {
@@ -1134,15 +1136,15 @@
                     {
                         properties.load( resourceAsStream );
 
-                        httpUserAgentDetails =
-                            "Apache Maven " + properties.getProperty( "version" ) + "; JDK "
+                        httpUserAgent =
+                            "maven-artifact/" + properties.getProperty( "version" ) + " (Java "
                                 + System.getProperty( "java.version" ) + "; " + System.getProperty( "os.name" ) + " "
-                                + System.getProperty( "os.version" );
+                                + System.getProperty( "os.version" ) + ")";
                     }
                     catch ( IOException e )
                     {
                         getLogger().warn(
-                                          "Failed to load Maven core properties from:\n" + MAVEN_CORE_PROPERTIES
+                                          "Failed to load Maven artifact properties from:\n" + MAVEN_ARTIFACT_PROPERTIES
                                               + "\n\nUser-Agent HTTP header may be incorrect for artifact resolution." );
                     }
                 }
@@ -1169,28 +1171,4 @@
     {
         return httpUserAgent;
     }
-    
-    /**
-     * {@inheritDoc}
-     */
-    public void setHttpUserAgentDetails( String userAgentDetails )
-    {
-        this.httpUserAgentDetails = userAgentDetails;
-    }
-    
-    /**
-     * {@inheritDoc}
-     */
-    public String getUserAgentDetails()
-    {
-        return httpUserAgentDetails;
-    }
-    
-    /**
-     * {@inheritDoc}
-     */
-    public String getHttpUserAgentString()
-    {
-        return httpUserAgent == null ? null : String.valueOf( httpUserAgent ) + " (" + String.valueOf( httpUserAgentDetails ) + ")";
-    }
 }

Modified: maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.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/WagonManager.java?rev=678986&r1=678985&r2=678986&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java (original)
+++ maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java Tue Jul 22 21:49:55 2008
@@ -126,45 +126,4 @@
     void setDefaultRepositoryPermissions( RepositoryPermissions permissions );
 
     ArtifactRepository getMirrorRepository( ArtifactRepository repository );
-
-    /**
-     * Allow configuration of the User-Agent HTTP header used for http wagons.
-     * 
-     * @since 2.0.10
-     */
-    void setHttpUserAgent( String userAgent );
-
-    /**
-     * Retrieve the User-Agent HTTP header used for http wagons.
-     * 
-     * @since 2.0.10
-     */
-    String getHttpUserAgent();
-
-    /**
-     * Allow configuration of the details of the User-Agent HTTP header (beyond 
-     * the initial value) used for http wagons. By default, this value will 
-     * contain specific information about the tool using maven-artifact, along 
-     * with the operating system and JDK version.
-     * 
-     * @since 2.0.10
-     */
-    void setHttpUserAgentDetails( String userAgentDetails );
-
-    /**
-     * Retrieve the details of the User-Agent HTTP header (beyond 
-     * the initial value) used for http wagons. By default, this value will 
-     * contain specific information about the tool using maven-artifact, along 
-     * with the operating system and JDK version.
-     * 
-     * @since 2.0.10
-     */
-    String getUserAgentDetails();
-
-    /**
-     * Retrieve the full User-Agent HTTP header value for use in http wagons.
-     * 
-     * @since 2.0.10
-     */
-    String getHttpUserAgentString();
 }

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=678986&r1=678985&r2=678986&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 Tue Jul 22 21:49:55 2008
@@ -9,13 +9,6 @@
   <artifactId>maven-core</artifactId>
   <name>Maven Core</name>
 
-  <pluginRepositories>
-    <pluginRepository>
-      <id>apache.snapshots</id>
-      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-    </pluginRepository>
-  </pluginRepositories>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -164,15 +157,6 @@
     </plugins>
   </reporting>
 
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-  </build>
-
   <profiles>
     <profile>
       <id>include-site</id>
@@ -219,4 +203,4 @@
       </build>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>

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=678986&r1=678985&r2=678986&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 Tue Jul 22 21:49:55 2008
@@ -21,6 +21,7 @@
 
 
 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.DefaultArtifactVersion;
@@ -602,6 +603,18 @@
     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 );
+            wagonManager.setHttpUserAgent( "Apache-Maven/" + runtimeInformation.getApplicationVersion() + " " +
+                wagonManager.getHttpUserAgent() );
+        }
+        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/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=678986&r1=678985&r2=678986&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 Tue Jul 22 21:49:55 2008
@@ -586,6 +586,7 @@
     
     <!--  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.wagon.Wagon</role>
       <role-hint>http</role-hint>
@@ -597,7 +598,7 @@
         <httpHeaders>
           <property>
             <name>User-Agent</name>
-            <value>Apache Maven/${project.version}</value>
+            <value>Apache-Maven/${project.version} maven-artifact/${project.version} (Java @java.version@; @os.name@ @os.version@)</value>
           </property>
         </httpHeaders>
       </configuration>
@@ -613,7 +614,7 @@
         <httpHeaders>
           <property>
             <name>User-Agent</name>
-            <value>Apache Maven/${project.version}</value>
+            <value>Apache-Maven/${project.version} maven-artifact/${project.version} (Java @java.version@; @os.name@ @os.version@)</value>
           </property>
         </httpHeaders>
       </configuration>

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=678986&r1=678985&r2=678986&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/pom.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/pom.xml Tue Jul 22 21:49:55 2008
@@ -206,7 +206,6 @@
               <!-- TODO: These represent method ADDITIONS from 2.0.9, and should be removed after 
                    2.0.10 is released. -->
               <exclude>org/apache/maven/lifecycle/LifecycleExecutor*</exclude>
-              <exclude>org/apache/maven/artifact/manager/WagonManager*</exclude>
               <exclude>org/apache/maven/artifact/metadata/ArtifactMetadataSource*</exclude>
               <exclude>org/apache/maven/project/MavenProjectBuilder*</exclude>
               <exclude>org/apache/maven/project/ProjectBuilderConfiguration*</exclude>
@@ -534,4 +533,4 @@
       </reporting>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>