Author: jvanzyl
Date: Tue Feb  3 14:55:42 2009
New Revision: 740315

URL: http://svn.apache.org/viewvc?rev=740315&view=rev
Log:
o merging in changes from trunk

Added:
    
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRepository.java
      - copied unchanged from r740199, 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRepository.java
    
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/plugin/PluginRepository.java
      - copied unchanged from r740199, 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginRepository.java
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/Mixer.java
      - copied unchanged from r740199, 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Mixer.java
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PluginMixin.java
      - copied unchanged from r740199, 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PluginMixin.java
    
maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PluginBuilderTest.java
      - copied unchanged from r740199, 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PluginBuilderTest.java
    maven/components/branches/MNG-3932/maven-project/src/test/resources-mixins/
      - copied from r740199, 
maven/components/trunk/maven-project/src/test/resources-mixins/
    
maven/components/branches/MNG-3932/maven-project/src/test/resources-mixins/plugins/
      - copied from r740199, 
maven/components/trunk/maven-project/src/test/resources-mixins/plugins/
    
maven/components/branches/MNG-3932/maven-project/src/test/resources-mixins/plugins/simple/
      - copied from r740199, 
maven/components/trunk/maven-project/src/test/resources-mixins/plugins/simple/
    
maven/components/branches/MNG-3932/maven-project/src/test/resources-mixins/plugins/simple/mixin.xml
      - copied unchanged from r740199, 
maven/components/trunk/maven-project/src/test/resources-mixins/plugins/simple/mixin.xml
    
maven/components/branches/MNG-3932/maven-project/src/test/resources-project-builder/plugin-merge-simple/
      - copied from r740199, 
maven/components/trunk/maven-project/src/test/resources-project-builder/plugin-merge-simple/
    
maven/components/branches/MNG-3932/maven-project/src/test/resources-project-builder/plugin-merge-simple/pom.xml
      - copied unchanged from r740199, 
maven/components/trunk/maven-project/src/test/resources-project-builder/plugin-merge-simple/pom.xml
Modified:
    maven/components/branches/MNG-3932/   (props changed)
    maven/components/branches/MNG-3932/apache-maven/   (props changed)
    
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/artifact/
   (props changed)
    
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/inheritance/
   (props changed)
    
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/path/
   (props changed)
    maven/components/branches/MNG-3932/maven-compat/src/main/mdo/   (props 
changed)
    maven/components/branches/MNG-3932/maven-compat/src/test/   (props changed)
    
maven/components/branches/MNG-3932/maven-compat/src/test/java/org/apache/maven/project/path/
   (props changed)
    
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners/
   (props changed)
    
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-core/src/main/resources/META-INF/plexus/components.xml
    
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
    
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
    
maven/components/branches/MNG-3932/maven-project-builder/src/main/resources/   
(props changed)
    
maven/components/branches/MNG-3932/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java
   (props changed)
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    maven/components/branches/MNG-3932/maven-project/src/main/mdo/   (props 
changed)
    
maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java

Propchange: maven/components/branches/MNG-3932/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,4 +1,7 @@
+/maven/components/branches/MNG-3932:739772-740199
 /maven/components/branches/maven-2.0.10-RC:680477
 
/maven/components/branches/maven-2.0.x:679206,708871,720042,726541,727548,727998,728940,729060,729738,729785,730631
 /maven/components/branches/maven-2.1.x:739385
-/maven/components/trunk:688587-696625,696644-699681
+/maven/components/branches/sisbell-plugin-manager:738973-739966
+/maven/components/sisbell-plugin-manager:738757-738972
+/maven/components/trunk:739772-740199

Propchange: maven/components/branches/MNG-3932/apache-maven/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/apache-maven:739772-740199
 /maven/components/branches/maven-2.0.10-RC/maven-distribution:680477
 
/maven/components/branches/maven-2.0.x/maven-distribution:679206,708871,720042,726541,727548,727998,728264,728940,729060,729738,729785,730631
+/maven/components/branches/sisbell-plugin-manager/apache-maven:738973-739966
+/maven/components/sisbell-plugin-manager/apache-maven:738757-738972
+/maven/components/trunk/apache-maven:739772-740199
 /maven/components/trunk/maven-distribution:688587-696625,696644-699681

Propchange: 
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/artifact/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/artifact:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact:680477
 
/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact:679206
 
/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact:679206
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/artifact:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/artifact:738757-738972
+/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,6 @@
+/maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java:679206,720042
-/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java:688587-696625,696644-699681
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java:738757-738972
+/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/inheritance/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -0,0 +1,2 @@
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/inheritance:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/inheritance:738757-738972

Propchange: 
maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/path/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-compat/src/main/java/org/apache/maven/project/path:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/path:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path:679206,720042
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/path:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/path:738757-738972
+/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path:739772-740199
 
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path:688587-696625,696644-699681

Propchange: maven/components/branches/MNG-3932/maven-compat/src/main/mdo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-compat/src/main/mdo:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/mdo:680477
 /maven/components/branches/maven-2.0.x/maven-artifact/src/main/mdo:679206
 
/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/mdo:679206
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/mdo:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/mdo:738757-738972
+/maven/components/trunk/maven-compat/src/main/mdo:739772-740199

Propchange: maven/components/branches/MNG-3932/maven-compat/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-compat/src/test:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/test:680477
 /maven/components/branches/maven-2.0.x/maven-artifact/src/test:679206
 /maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test:679206
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/test:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/test:738757-738972
+/maven/components/trunk/maven-compat/src/test:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-compat/src/test/java/org/apache/maven/project/path/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-compat/src/test/java/org/apache/maven/project/path:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/test/java/org/apache/maven/project/path:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/path:679206,720042
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/test/java/org/apache/maven/project/path:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/test/java/org/apache/maven/project/path:738757-738972
+/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/project/path:739772-740199
 
/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/path:688587-696625,696644-699681

Propchange: 
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/listeners:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/listeners:679206
+/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners:738973-739966
+/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners:738757-738972
+/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners:739772-740199
 
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners:688587-696625,696644-699681

Propchange: 
maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:738757-738972
+/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:739772-740199
 
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java:688587-696625,696644-699681

Modified: 
maven/components/branches/MNG-3932/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-core/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/components/branches/MNG-3932/maven-core/src/main/resources/META-INF/plexus/components.xml
 Tue Feb  3 14:55:42 2009
@@ -27,6 +27,16 @@
 <component-set>
   <components>
     <component>
+      <role>org.apache.maven.plugin.PluginRepository</role>
+      <role-hint>default</role-hint>
+      
<implementation>org.apache.maven.plugin.DefaultPluginRepository</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.plugin.MavenPluginCollector</role>
+        </requirement>
+        </requirements>
+    </component>
+    <component>
       <role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role>
       <role-hint>default</role-hint>
       
<implementation>org.apache.maven.lifecycle.binding.DefaultLifecycleBindingManager</implementation>

Modified: 
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
 (original)
+++ 
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
 Tue Feb  3 14:55:42 2009
@@ -58,18 +58,16 @@
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.apache.maven.monitor.event.DefaultEventDispatcher;
 import org.apache.maven.monitor.event.EventDispatcher;
-import org.apache.maven.plugin.InvalidPluginException;
-import org.apache.maven.plugin.MavenPluginCollector;
-import org.apache.maven.plugin.MavenPluginDiscoverer;
-import org.apache.maven.plugin.PluginManager;
-import org.apache.maven.plugin.PluginManagerException;
-import org.apache.maven.plugin.PluginNotFoundException;
+import org.apache.maven.plugin.*;
 import org.apache.maven.plugin.version.PluginVersionNotFoundException;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.MavenProjectBuildingResult;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.builder.ProjectBuilder;
+import org.apache.maven.project.builder.Mixer;
+import org.apache.maven.plugin.PluginRepository;
 import org.apache.maven.reactor.MavenExecutionException;
 import org.apache.maven.reactor.MissingModuleException;
 import org.apache.maven.settings.Settings;
@@ -92,6 +90,7 @@
 import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import 
org.codehaus.plexus.component.repository.exception.ComponentRepositoryException;
 import org.codehaus.plexus.configuration.PlexusConfigurationException;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
 import org.codehaus.plexus.logging.LoggerManager;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
@@ -147,6 +146,10 @@
     private MavenExecutionRequestPopulator populator;
 
     private BuildPlanner buildPlanner;
+
+    private PluginRepository pluginRepository;
+
+    private Mixer mixer;
     
     // ----------------------------------------------------------------------
     // Configuration
@@ -246,6 +249,15 @@
         modelWriter.write( writer, model );
     }
 
+    public PlexusConfiguration getPluginConfiguration(String pluginId, String 
mojoId, Model model) throws Exception
+    {        
+        try {
+            return 
mixer.mixPluginAndReturnConfig(pluginRepository.findPluginById(pluginId, 
mojoId), model);
+        } catch (PlexusConfigurationException e) {
+            throw new IOException(e.getMessage());
+        }
+    }
+
     // ----------------------------------------------------------------------
     // Settings
     // ----------------------------------------------------------------------
@@ -656,6 +668,10 @@
 
             artifactHandlerManager = container.lookup( 
ArtifactHandlerManager.class );
 
+            pluginRepository = container.lookup( PluginRepository.class );
+
+            mixer = (Mixer) container.lookup( ProjectBuilder.class );
+
             // This is temporary as we can probably cache a single request and 
use it for default values and
             // simply cascade values in from requests used for individual 
executions.
             request = new DefaultMavenExecutionRequest();

Propchange: 
maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,6 @@
+/maven/components/branches/MNG-3932/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-embedder/src/main/java/org/apache/maven/embedder/user/SettingsAdapter.java:680477
 
/maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/user/SettingsAdapter.java:679206
-/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/user/SettingsAdapter.java:688587-696625,696644-699681
+/maven/components/branches/sisbell-plugin-manager/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:738757-738972
+/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:739772-740199

Modified: 
maven/components/branches/MNG-3932/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
 (original)
+++ 
maven/components/branches/MNG-3932/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
 Tue Feb  3 14:55:42 2009
@@ -162,8 +162,7 @@
                                                                          
ProjectUri.Build.Resources.Resource.directory,
                                                                          
ProjectUri.Build.TestResources.TestResource.directory,
                                                                          
ProjectUri.Build.Filters.filter,
-                                                                         
ProjectUri.Reporting.outputDirectory ) ) );
-
+                                                                         
ProjectUri.Reporting.outputDirectory ) ) );   
     /**
      * @see ModelTransformer#transformToDomainModel(java.util.List, 
java.util.List)
      */

Propchange: 
maven/components/branches/MNG-3932/maven-project-builder/src/main/resources/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project-builder/src/main/resources:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/resources:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/resources:679206,720042
-/maven/components/trunk/maven-project/src/main/resources:688587-696625,696644-699681
+/maven/components/branches/sisbell-plugin-manager/maven-project-builder/src/main/resources:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project-builder/src/main/resources:738757-738972
+/maven/components/trunk/maven-project-builder/src/main/resources:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,7 @@
+/maven/components/branches/MNG-3932/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project-builder/src/test/java/EnforcerPomTest.java:680477
 
/maven/components/branches/maven-2.0.x/maven-project-builder/src/test/java/EnforcerPomTest.java:679206,720042
+/maven/components/branches/sisbell-plugin-manager/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:738757-738972
 
/maven/components/trunk/maven-project-builder/src/test/java/EnforcerPomTest.java:688587-696625,696644-699681
+/maven/components/trunk/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,2 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:680477
 
/maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:738757-738972
+/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,2 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:680477
 
/maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:738757-738972
+/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,2 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:680477
 
/maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:738757-738972
+/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,2 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:680477
 
/maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:738757-738972
+/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:739772-740199

Propchange: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,3 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java:739772-740199
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/PomArtifactResolver.java:680477
 
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/PomArtifactResolver.java:679206,720042
-/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomArtifactResolver.java:688587-696625,696644-699681
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java:738757-738972
+/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java:739772-740199

Modified: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
 (original)
+++ 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
 Tue Feb  3 14:55:42 2009
@@ -44,6 +44,10 @@
                                            DomainModel domainModel)
             throws IOException
     {
+        if(! ( domainModel instanceof PomClassicDomainModel ) )
+        {
+            return;    
+        }
         Interpolator.interpolateModelProperties( modelProperties, 
interpolatorProperties, (PomClassicDomainModel) domainModel);
     }
 }

Modified: 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
 (original)
+++ 
maven/components/branches/MNG-3932/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
 Tue Feb  3 14:55:42 2009
@@ -23,7 +23,6 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -34,34 +33,29 @@
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
+import org.apache.maven.model.Plugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuilderConfiguration;
-import org.apache.maven.project.builder.ArtifactModelContainerFactory;
-import org.apache.maven.project.builder.IdModelContainerFactory;
-import org.apache.maven.project.builder.PomArtifactResolver;
-import org.apache.maven.project.builder.PomClassicDomainModel;
-import org.apache.maven.project.builder.PomClassicDomainModelFactory;
-import org.apache.maven.project.builder.PomClassicTransformer;
-import org.apache.maven.project.builder.PomTransformer;
-import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ModelEventListener;
-import org.apache.maven.shared.model.ModelTransformerContext;
+import org.apache.maven.project.builder.*;
+import org.apache.maven.shared.model.*;
+import org.apache.maven.shared.model.impl.DefaultModelDataSource;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
+import org.apache.maven.shared.model.ModelMarshaller;
 
 /**
  * Default implementation of the project builder.
  */
 @Component(role = ProjectBuilder.class)
 public class DefaultProjectBuilder
-    implements ProjectBuilder, LogEnabled
+    implements ProjectBuilder, Mixer, LogEnabled
 {
     @Requirement
     private ArtifactFactory artifactFactory;
@@ -371,5 +365,85 @@
         }
         
         return superModel;        
-    }        
+    }
+
+    public Model mixPlugin(Plugin plugin, Model model) throws IOException
+    {
+        //TODO - interpolation
+        List<DomainModel> domainModels = new ArrayList<DomainModel>();
+        domainModels.add( new PluginMixin(plugin) );
+        domainModels.add( new PomClassicDomainModel(model) );
+
+        PomClassicTransformer transformer = new PomClassicTransformer( new 
PomClassicDomainModelFactory() );
+
+        ModelTransformerContext ctx = new 
ModelTransformerContext(PomTransformer.MODEL_CONTAINER_INFOS );
+
+        PomClassicDomainModel transformedDomainModel = ( 
(PomClassicDomainModel) ctx.transform( domainModels,
+                                                                               
                 transformer,
+                                                                               
                 transformer,
+                                                                               
                 Collections.EMPTY_LIST,
+                                                                               
                 null,
+                                                                               
                 listeners ) );
+        return transformedDomainModel.getModel();
+      //  List<ModelProperty> pluginProperties = 
ModelMarshaller.marshallXmlToModelProperties(
+      //          (new PluginMixin(plugin)).getInputStream(), 
ProjectUri.Build.Plugins.xUri, null);
+        
+    }
+
+    public PlexusConfiguration mixPluginAndReturnConfig(Plugin plugin, Model 
model) throws IOException
+    {
+        List<DomainModel> domainModels = new ArrayList<DomainModel>();
+        domainModels.add( new PluginMixin(plugin) );
+        domainModels.add( new PomClassicDomainModel(model) );
+
+        PomClassicTransformer transformer = new PomClassicTransformer( new 
PomClassicDomainModelFactory() );
+
+        ModelTransformerContext ctx = new 
ModelTransformerContext(PomTransformer.MODEL_CONTAINER_INFOS );
+
+        PomClassicDomainModel transformedDomainModel = ( 
(PomClassicDomainModel) ctx.transform( domainModels,
+                                                                               
                 transformer,
+                                                                               
                 transformer,
+                                                                               
                 Collections.EMPTY_LIST,
+                                                                               
                 null,
+                                                                               
                 listeners ) );
+        ModelDataSource source =
+                new 
DefaultModelDataSource(transformedDomainModel.getModelProperties(), 
PomTransformer.MODEL_CONTAINER_FACTORIES);
+        for(ModelContainer pluginContainer : 
source.queryFor(ProjectUri.Build.Plugins.Plugin.xUri))
+        {
+            if(matchesIdOfPlugin(pluginContainer, plugin))
+            {
+                List<ModelProperty> config = new ArrayList<ModelProperty>();
+                for(ModelProperty mp : pluginContainer.getProperties())
+                {
+                    
if(mp.getUri().startsWith(ProjectUri.Build.Plugins.Plugin.configuration))
+                    {
+                        config.add(mp);
+                    }
+                }
+                return new 
XmlPlexusConfiguration(ModelMarshaller.unmarshalModelPropertiesToXml(config, 
ProjectUri.Build.Plugins.Plugin.xUri));
+
+            }
+        }
+        return null;       
+    }
+
+    private static boolean matchesIdOfPlugin(ModelContainer mc, Plugin plugin)
+    {   
+        List<ModelProperty> props = mc.getProperties();
+        return getValueByUri(ProjectUri.Build.Plugins.Plugin.groupId, 
props).equals(plugin.getGroupId())
+                && getValueByUri(ProjectUri.Build.Plugins.Plugin.artifactId, 
props).equals(plugin.getArtifactId())
+                && getValueByUri(ProjectUri.Build.Plugins.Plugin.version, 
props).equals(plugin.getVersion());
+    }
+
+    private static String getValueByUri(String uri, List<ModelProperty> 
modelProperties)
+    {
+        for(ModelProperty mp : modelProperties)
+        {
+            if(mp.getUri().equals(uri))
+            {
+                return mp.getResolvedValue();
+            }
+        }
+        return "";
+    }
 }

Propchange: maven/components/branches/MNG-3932/maven-project/src/main/mdo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  3 14:55:42 2009
@@ -1,2 +1,6 @@
+/maven/components/branches/MNG-3932/maven-project/src/main/mdo:739772-740199
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/mdo:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/mdo:679206
+/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/mdo:738973-739966
+/maven/components/sisbell-plugin-manager/maven-project/src/main/mdo:738757-738972
+/maven/components/trunk/maven-project/src/main/mdo:739772-740199

Modified: 
maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java?rev=740315&r1=740314&r2=740315&view=diff
==============================================================================
--- 
maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
 (original)
+++ 
maven/components/branches/MNG-3932/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
 Tue Feb  3 14:55:42 2009
@@ -21,34 +21,51 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.FileInputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.maven.MavenTools;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.project.harness.PomTestWrapper;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 public class PomConstructionTest
     extends PlexusTestCase
 {
 
-    private static String BASE_POM_DIR = "src/test/resources-project-builder";
+    private static String BASE_DIR = "src/test";
+
+    private static String BASE_POM_DIR = BASE_DIR + 
"/resources-project-builder";
+
+    private static String BASE_MIXIN_DIR = BASE_DIR + "/resources-mixins";
 
     private ProjectBuilder projectBuilder;
 
+    private Mixer mixer;
+
     private MavenTools mavenTools;
 
     private PomArtifactResolver pomArtifactResolver;
 
     private File testDirectory;
 
+    private File testMixinDirectory;
+
     protected void setUp()
         throws Exception
     {
         testDirectory = new File( getBasedir(), BASE_POM_DIR );
+        testMixinDirectory = new File( getBasedir(), BASE_MIXIN_DIR );
         projectBuilder = lookup( ProjectBuilder.class );
+        mixer = (Mixer) projectBuilder;
         mavenTools = lookup( MavenTools.class );
         pomArtifactResolver = new PomArtifactResolver()
         {
@@ -62,6 +79,18 @@
         };
     }
 
+    public void testPluginMergeSimple()
+        throws Exception
+    {
+        Model model = buildPom( "plugin-merge-simple" 
).getDomainModel().getModel();
+        Model plugin = buildMixin("plugins/simple");
+
+        model = mixer.mixPlugin((Plugin) 
plugin.getBuild().getPlugins().get(0), model);
+
+        PomTestWrapper pom = new PomTestWrapper( model );
+        assertEquals( "FAILED", pom.getValue( 
"build/plugins[1]/configuration[1]/propertiesFile" ) );
+    }
+
     // Some better conventions for the test poms needs to be created and each 
of these tests
     // that represent a verification of a specification item needs to be a 
couple lines at most.
     // The expressions help a lot, but we need a clean to pick up a directory 
of POMs, automatically load
@@ -731,11 +760,24 @@
         return new PomTestWrapper( pomFile, projectBuilder.buildModel( 
pomFile, null, pomArtifactResolver ) );
     }
 
+    private Model buildMixin( String mixinPath )
+        throws IOException, XmlPullParserException
+    {
+        File mixinFile = new File( testMixinDirectory , mixinPath );
+        if ( mixinFile.isDirectory() )
+        {
+            mixinFile = new File( mixinFile, "mixin.xml" );
+        }
+        FileInputStream pluginStream = new FileInputStream( mixinFile );
+        MavenXpp3Reader reader = new MavenXpp3Reader();
+        return reader.read(pluginStream, false);
+    }
+
     protected void assertModelEquals( PomTestWrapper pom, Object expected, 
String expression )
     {
         assertEquals( expected, pom.getValue( expression ) );        
     }
-    
+
     // Need to get this to walk around a directory and automatically build up 
the artifact set. If we
     // follow some standard conventions this can be simple.
     class FileBasedPomArtifactResolver


Reply via email to