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() );
+ }
+ }
}