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 );