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/09/16 15:21:51 UTC

svn commit: r815761 - in /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin: DefaultBuildPluginManager.java DefaultPluginCache.java DefaultPluginDescriptorCache.java PluginCache.java

Author: bentmann
Date: Wed Sep 16 13:21:50 2009
New Revision: 815761

URL: http://svn.apache.org/viewvc?rev=815761&view=rev
Log:
[MNG-3281] Revisit backwards compat of extensions (IT 0114)

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginCache.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/PluginCache.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java?rev=815761&r1=815760&r2=815761&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java Wed Sep 16 13:21:50 2009
@@ -154,10 +154,11 @@
 
         Plugin plugin = pluginDescriptor.getPlugin();
 
+        MavenProject project = session.getCurrentProject();
         ArtifactRepository localRepository = session.getLocalRepository();
-        List<ArtifactRepository> remoteRepositories = session.getCurrentProject().getPluginArtifactRepositories();
+        List<ArtifactRepository> remoteRepositories = project.getPluginArtifactRepositories();
 
-        PluginCache.CacheRecord cacheRecord = pluginCache.get( plugin, localRepository, remoteRepositories );
+        PluginCache.CacheRecord cacheRecord = pluginCache.get( plugin, project, localRepository, remoteRepositories );
 
         if ( cacheRecord != null )
         {
@@ -168,14 +169,14 @@
         {
             try
             {
-                mavenPluginManager.setupPluginRealm( pluginDescriptor, session, null, null );
+                mavenPluginManager.setupPluginRealm( pluginDescriptor, session, project.getClassRealm(), null );
             }
             catch ( PluginResolutionException e )
             {
                 throw new PluginManagerException( plugin, e.getMessage(), e );
             }
 
-            pluginCache.put( plugin, localRepository, remoteRepositories, pluginDescriptor.getClassRealm(),
+            pluginCache.put( plugin, project, localRepository, remoteRepositories, pluginDescriptor.getClassRealm(),
                              pluginDescriptor.getArtifacts() );
         }
 

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginCache.java?rev=815761&r1=815760&r2=815761&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginCache.java Wed Sep 16 13:21:50 2009
@@ -30,6 +30,7 @@
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.codehaus.plexus.component.annotations.Component;
 
@@ -46,18 +47,23 @@
         private final Plugin plugin;
 
         private final List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>();
-        
+
+        private final ClassRealm projectRealm;
+
         private final int hashCode;
 
-        public CacheKey( Plugin plugin, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+        public CacheKey( Plugin plugin, MavenProject project, ArtifactRepository localRepository,
+                         List<ArtifactRepository> remoteRepositories )
         {
             this.plugin = plugin.clone();
             this.repositories.add( localRepository );
             this.repositories.addAll( remoteRepositories );
+            this.projectRealm = project.getClassRealm();
 
             int hash = 17;
             hash = hash * 31 + pluginHashCode( plugin );
             hash = hash * 31 + repositories.hashCode();
+            hash = hash * 31 + ( projectRealm != null ? projectRealm.hashCode() : 0 );
             this.hashCode = hash;
         }
 
@@ -82,27 +88,28 @@
 
             CacheKey other = (CacheKey) o;
 
-            return pluginEquals( plugin, other.plugin ) && eq(repositories, other.repositories);
+            return projectRealm == other.projectRealm && pluginEquals( plugin, other.plugin )
+                && eq( repositories, other.repositories );
         }
     }
 
     protected final Map<CacheKey, CacheRecord> cache = new HashMap<CacheKey, CacheRecord>();
 
-    public CacheRecord get( Plugin plugin, ArtifactRepository localRepository,
+    public CacheRecord get( Plugin plugin, MavenProject project, ArtifactRepository localRepository,
                             List<ArtifactRepository> remoteRepositories )
     {
-        return cache.get( new CacheKey( plugin, localRepository, remoteRepositories ) );
+        return cache.get( new CacheKey( plugin, project, localRepository, remoteRepositories ) );
     }
 
-    public void put( Plugin plugin, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
-                     ClassRealm pluginRealm, List<Artifact> pluginArtifacts )
+    public void put( Plugin plugin, MavenProject project, ArtifactRepository localRepository,
+                     List<ArtifactRepository> remoteRepositories, ClassRealm pluginRealm, List<Artifact> pluginArtifacts )
     {
         if ( pluginRealm == null || pluginArtifacts == null )
         {
             throw new NullPointerException();
         }
 
-        CacheKey key = new CacheKey( plugin, localRepository, remoteRepositories );
+        CacheKey key = new CacheKey( plugin, project, localRepository, remoteRepositories );
 
         if ( cache.containsKey( key ) )
         {

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=815761&r1=815760&r2=815761&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 Wed Sep 16 13:21:50 2009
@@ -116,11 +116,6 @@
         return clones;
     }
 
-    private static <T> List<T> clone( List<T> original )
-    {
-        return ( original != null ) ? new ArrayList<T>( original ) : null;
-    }
-
     private static final class CacheKey
         implements Key
     {

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginCache.java?rev=815761&r1=815760&r2=815761&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginCache.java Wed Sep 16 13:21:50 2009
@@ -24,6 +24,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 
 public interface PluginCache
@@ -41,10 +42,11 @@
         }
     }
 
-    CacheRecord get( Plugin plugin, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories );
+    CacheRecord get( Plugin plugin, MavenProject project, ArtifactRepository localRepository,
+                     List<ArtifactRepository> remoteRepositories );
 
-    void put( Plugin plugin, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
-              ClassRealm pluginRealm, List<Artifact> pluginArtifacts );
+    void put( Plugin plugin, MavenProject project, ArtifactRepository localRepository,
+              List<ArtifactRepository> remoteRepositories, ClassRealm pluginRealm, List<Artifact> pluginArtifacts );
 
     void flush();
 }