You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/12/04 22:37:06 UTC

svn commit: r887367 - in /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven: lifecycle/ plugin/ plugin/internal/ plugin/prefix/ plugin/version/ project/

Author: bentmann
Date: Fri Dec  4 21:36:51 2009
New Revision: 887367

URL: http://svn.apache.org/viewvc?rev=887367&view=rev
Log:
[MNG-4482] [regression] command line option "-update-snapshots" does not work for plugins/extensions

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Fri Dec  4 21:36:51 2009
@@ -960,6 +960,7 @@
             request.setRemoteRepositories( project.getPluginArtifactRepositories() );
         }
         request.setOffline( session.isOffline() );
+        request.setForceUpdate( session.getRequest().isUpdateSnapshots() );
         request.setTransferListener( session.getRequest().getTransferListener() );
 
         return request;

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java Fri Dec  4 21:36:51 2009
@@ -44,17 +44,22 @@
 
         private final List<File> files;
 
+        private final List<String> ids;
+
         private final int hashCode;
 
         public CacheKey( List<? extends Artifact> extensionArtifacts )
         {
             this.files = new ArrayList<File>( extensionArtifacts.size() );
+            this.ids = new ArrayList<String>( extensionArtifacts.size() );
+
             for ( Artifact artifact : extensionArtifacts )
             {
                 files.add( artifact.getFile() );
+                ids.add( artifact.getVersion() );
             }
 
-            this.hashCode = files.hashCode();
+            this.hashCode = files.hashCode() * 31 + ids.hashCode();
         }
 
         @Override
@@ -78,7 +83,7 @@
 
             CacheKey other = (CacheKey) o;
 
-            return files.equals( other.files );
+            return files.equals( other.files ) && ids.equals( other.ids );
         }
 
     }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java Fri Dec  4 21:36:51 2009
@@ -21,11 +21,13 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.RepositoryRequest;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -144,7 +146,7 @@
             hash = hash * 31 + groupId.hashCode();
             hash = hash * 31 + artifactId.hashCode();
             hash = hash * 31 + version.hashCode();
-            hash = hash * 31 + repositories.hashCode();
+            hash = hash * 31 + repositoriesHashCode( repositories );
             this.hashCode = hash;
         }
 
@@ -170,7 +172,7 @@
             CacheKey that = (CacheKey) obj;
 
             return this.artifactId.equals( that.artifactId ) && this.groupId.equals( that.groupId )
-                && this.version.equals( that.version ) && this.repositories.equals( that.repositories );
+                && this.version.equals( that.version ) && repositoriesEquals( this.repositories, that.repositories );
         }
 
         @Override
@@ -179,6 +181,68 @@
             return groupId + ':' + artifactId + ':' + version;
         }
 
+        private static int repositoryHashCode( ArtifactRepository repository )
+        {
+            int result = 17;
+            result = 31 * result + ( repository.getId() != null ? repository.getId().hashCode() : 0 );
+            return result;
+        }
+
+        private static int repositoriesHashCode( List<ArtifactRepository> repositories )
+        {
+            int result = 17;
+            for ( ArtifactRepository repository : repositories )
+            {
+                result = 31 * result + repositoryHashCode( repository );
+            }
+            return result;
+        }
+
+        private static boolean repositoryEquals( ArtifactRepository r1, ArtifactRepository r2 )
+        {
+            if ( r1 == r2 )
+            {
+                return true;
+            }
+
+            return eq( r1.getId(), r2.getId() ) && eq( r1.getUrl(), r2.getUrl() )
+                && repositoryPolicyEquals( r1.getReleases(), r2.getReleases() )
+                && repositoryPolicyEquals( r1.getSnapshots(), r2.getSnapshots() );
+        }
+
+        private static boolean repositoryPolicyEquals( ArtifactRepositoryPolicy p1, ArtifactRepositoryPolicy p2 )
+        {
+            if ( p1 == p2 )
+            {
+                return true;
+            }
+
+            return p1.isEnabled() == p2.isEnabled() && eq( p1.getUpdatePolicy(), p2.getUpdatePolicy() );
+        }
+
+        private static boolean repositoriesEquals( List<ArtifactRepository> r1, List<ArtifactRepository> r2 )
+        {
+            if ( r1.size() != r2.size() )
+            {
+                return false;
+            }
+
+            for ( Iterator<ArtifactRepository> it1 = r1.iterator(), it2 = r2.iterator(); it1.hasNext(); )
+            {
+                if ( !repositoryEquals( it1.next(), it2.next() ) )
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        private static <T> boolean eq( T s1, T s2 )
+        {
+            return s1 != null ? s1.equals( s2 ) : s2 == null;
+        }
+
     }
 
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java Fri Dec  4 21:36:51 2009
@@ -344,6 +344,7 @@
         request.setRemoteRepositories( project.getPluginArtifactRepositories() );
         request.setCache( session.getRepositoryCache() );
         request.setOffline( session.isOffline() );
+        request.setForceUpdate( session.getRequest().isUpdateSnapshots() );
         request.setTransferListener( session.getRequest().getTransferListener() );
 
         ArtifactFilter dependencyFilter = project.getExtensionArtifactFilter();

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java Fri Dec  4 21:36:51 2009
@@ -96,6 +96,8 @@
             request.setRemoteRepositories( project.getPluginArtifactRepositories() );
         }
         request.setOffline( session.isOffline() );
+        request.setForceUpdate( session.getRequest().isUpdateSnapshots() );
+        request.setTransferListener( session.getRequest().getTransferListener() );
 
         return request;
     }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java Fri Dec  4 21:36:51 2009
@@ -83,6 +83,7 @@
         setCache( session.getRepositoryCache() );
         setLocalRepository( session.getLocalRepository() );
         setOffline( session.isOffline() );
+        setForceUpdate( session.getRequest().isUpdateSnapshots() );
         setTransferListener( session.getRequest().getTransferListener() );
 
         MavenProject project = session.getCurrentProject();

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java Fri Dec  4 21:36:51 2009
@@ -92,6 +92,7 @@
         setCache( session.getRepositoryCache() );
         setLocalRepository( session.getLocalRepository() );
         setOffline( session.isOffline() );
+        setForceUpdate( session.getRequest().isUpdateSnapshots() );
         setTransferListener( session.getRequest().getTransferListener() );
 
         MavenProject project = session.getCurrentProject();

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java?rev=887367&r1=887366&r2=887367&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java Fri Dec  4 21:36:51 2009
@@ -110,6 +110,8 @@
                 repositoryRequest.setLocalRepository( projectBuildingRequest.getLocalRepository() );
                 repositoryRequest.setRemoteRepositories( pluginRepositories );
                 repositoryRequest.setOffline( projectBuildingRequest.isOffline() );
+                repositoryRequest.setForceUpdate( projectBuildingRequest.isForceUpdate() );
+                repositoryRequest.setTransferListener( projectBuildingRequest.getTransferListener() );
 
                 ProjectRealmCache.CacheRecord record =
                     projectBuildingHelper.createProjectRealm( project, model, repositoryRequest );