Author: bentmann
Date: Sat Aug  1 11:06:14 2009
New Revision: 799831

URL: http://svn.apache.org/viewvc?rev=799831&view=rev
Log:
o Fixed extension realm to consider project-level plugin dependencies as well

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java?rev=799831&r1=799830&r2=799831&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
 Sat Aug  1 11:06:14 2009
@@ -21,7 +21,9 @@
 
 import java.net.MalformedURLException;
 import java.util.ArrayList;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.maven.ArtifactFilterManager;
 import org.apache.maven.artifact.Artifact;
@@ -32,6 +34,7 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
 import org.apache.maven.model.Build;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Extension;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
@@ -155,14 +158,20 @@
                 repositorySystem.createArtifact( extension.getGroupId(), 
extension.getArtifactId(),
                                                  extension.getVersion(), "jar" 
);
 
-            populateRealm( projectRealm, artifact, localRepository, 
remoteRepositories );
+            populateRealm( projectRealm, artifact, null, localRepository, 
remoteRepositories );
         }
 
         for ( Plugin plugin : extensionPlugins )
         {
             Artifact artifact = repositorySystem.createPluginArtifact( plugin 
);
 
-            populateRealm( projectRealm, artifact, localRepository, 
remoteRepositories );
+            Set<Artifact> dependencies = new LinkedHashSet<Artifact>();
+            for ( Dependency dependency : plugin.getDependencies() )
+            {
+                dependencies.add( repositorySystem.createDependencyArtifact( 
dependency ) );
+            }
+
+            populateRealm( projectRealm, artifact, dependencies, 
localRepository, remoteRepositories );
         }
 
         try
@@ -177,18 +186,19 @@
         return projectRealm;
     }
 
-    private void populateRealm( ClassRealm realm, Artifact artifact, 
ArtifactRepository localRepository,
-                                List<ArtifactRepository> remoteRepositories )
+    private void populateRealm( ClassRealm realm, Artifact artifact, 
Set<Artifact> dependencies,
+                                ArtifactRepository localRepository, 
List<ArtifactRepository> remoteRepositories )
         throws ArtifactResolutionException
     {
         ArtifactResolutionRequest request = new ArtifactResolutionRequest();
         request.setArtifact( artifact );
+        request.setArtifactDependencies( dependencies );
         request.setResolveTransitively( true );
         request.setFilter( artifactFilterManager.getCoreArtifactFilter() );
         request.setLocalRepository( localRepository );
         request.setRemoteRepostories( remoteRepositories );
         // FIXME setTransferListener
-        
+
         ArtifactResolutionResult result = repositorySystem.resolve( request );
 
         resolutionErrorHandler.throwErrors( request, result );

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java?rev=799831&r1=799830&r2=799831&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
 Sat Aug  1 11:06:14 2009
@@ -104,6 +104,10 @@
                         {
                             mergePlugin_Version( element, managedPlugin, 
false, context );
                             mergePlugin_Extensions( element, managedPlugin, 
false, context );
+                            if ( element.isExtensions() )
+                            {
+                                mergePlugin_Dependencies( element, 
managedPlugin, false, context );
+                            }
                         }
                         else
                         {


Reply via email to