Author: ifedorenko
Date: Fri Feb  4 20:44:55 2011
New Revision: 1067279

URL: http://svn.apache.org/viewvc?rev=1067279&view=rev
Log:
MNG-5003 populate mojo descriptor with cached plugin realm

Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
    
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java

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=1067279&r1=1067278&r2=1067279&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 Feb  4 20:44:55 2011
@@ -311,6 +311,10 @@ public class DefaultMavenPluginManager
         {
             pluginDescriptor.setClassRealm( cacheRecord.realm );
             pluginDescriptor.setArtifacts( new ArrayList<Artifact>( 
cacheRecord.artifacts ) );
+            for ( ComponentDescriptor<?> componentDescriptor : 
pluginDescriptor.getComponents() )
+            {
+                componentDescriptor.setRealm( cacheRecord.realm );
+            }
         }
         else
         {

Modified: 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java?rev=1067279&r1=1067278&r2=1067279&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
 Fri Feb  4 20:44:55 2011
@@ -31,6 +31,7 @@ import org.apache.maven.plugin.descripto
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.component.repository.ComponentDescriptor;
 
 public class PluginManagerTest
     extends AbstractCoreMavenComponentTestCase
@@ -273,4 +274,44 @@ public class PluginManagerTest
         assertEquals( artifactId, pd.getArtifactId() );
         assertEquals( version, pd.getVersion() );        
     }       
+
+    public void testPluginRealmCache()
+        throws Exception
+    {
+        RepositoryRequest repositoryRequest = new DefaultRepositoryRequest();
+        repositoryRequest.setLocalRepository( getLocalRepository() );
+        repositoryRequest.setRemoteRepositories( 
getPluginArtifactRepositories() );
+
+        // prime realm cache
+        MavenSession session = createMavenSession( getProject( 
"project-contributing-system-scope-plugin-dep" ) );
+        MavenProject project = session.getCurrentProject();
+        Plugin plugin = project.getPlugin( 
"org.apache.maven.its.plugins:maven-it-plugin" );
+
+        PluginDescriptor pluginDescriptor =
+            pluginManager.loadPlugin( plugin, 
session.getCurrentProject().getRemotePluginRepositories(),
+                                      session.getRepositorySession() );
+        pluginManager.getPluginRealm( session, pluginDescriptor );
+
+        for ( ComponentDescriptor<?> descriptor : 
pluginDescriptor.getComponents() )
+        {
+            assertNotNull( descriptor.getRealm() );
+            assertNotNull( descriptor.getImplementationClass() );
+        }
+        
+        // reload plugin realm from cache
+        session = createMavenSession( getProject( 
"project-contributing-system-scope-plugin-dep" ) );
+        project = session.getCurrentProject();
+        plugin = project.getPlugin( 
"org.apache.maven.its.plugins:maven-it-plugin" );
+
+        pluginDescriptor =
+            pluginManager.loadPlugin( plugin, 
session.getCurrentProject().getRemotePluginRepositories(),
+                                      session.getRepositorySession() );
+        pluginManager.getPluginRealm( session, pluginDescriptor );
+
+        for ( ComponentDescriptor<?> descriptor : 
pluginDescriptor.getComponents() )
+        {
+            assertNotNull( descriptor.getRealm() );
+            assertNotNull( descriptor.getImplementationClass() );
+        }
+    }
 }


Reply via email to