You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/04 04:37:02 UTC

svn commit: r691855 - in /maven/components/branches/sisbell-maven-2.1-profile: maven-embedder/src/test/java/org/apache/maven/error/ maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/ maven-embedder/s...

Author: sisbell
Date: Wed Sep  3 19:37:00 2008
New Revision: 691855

URL: http://svn.apache.org/viewvc?rev=691855&view=rev
Log:
Refactor of dead code. Better encapsulation.

Added:
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java   (contents, props changed)
      - copied, changed from r691843, maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java
Removed:
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/injection/
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/profiles/
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java
Modified:
    maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java Wed Sep  3 19:37:00 2008
@@ -1121,7 +1121,8 @@
 
         reporterCtl.verify();
     }
-
+    /*
+    //This is now in maven-core: ReactorManager
     public void testReportProjectCollision()
         throws IOException
     {
@@ -1139,7 +1140,7 @@
 
         reporterCtl.verify();
     }
-
+    */
     /*
     TODO: Disabled - add back in
     public void testReportProjectValidationFailure()

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml Wed Sep  3 19:37:00 2008
@@ -24,15 +24,9 @@
       <implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
       <requirements>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml Wed Sep  3 19:37:00 2008
@@ -120,15 +120,7 @@
       <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
       <implementation>org.apache.maven.project.interpolation.RegexBasedModelInterpolator</implementation>
     </component>
-<!--
-     |
-     |
-     |
-     -->
-    <component>
-      <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-      <implementation>org.apache.maven.project.injection.DefaultModelDefaultsInjector</implementation>
-    </component>
+
 <!--
      |
      |
@@ -148,10 +140,6 @@
       <implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
       <requirements>
         <requirement>
-          <role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
-          <role-hint>default</role-hint>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.profiles.build.ProfileAdvisor</role>
           <role-hint>default</role-hint>
         </requirement>
@@ -159,15 +147,9 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Wed Sep  3 19:37:00 2008
@@ -92,9 +92,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Wed Sep  3 19:37:00 2008
@@ -79,10 +79,6 @@
       <implementation>org.apache.maven.project.TestProjectBuilder</implementation>
       <requirements>
         <requirement>
-          <role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
-          <role-hint>default</role-hint>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.profiles.build.ProfileAdvisor</role>
           <role-hint>default</role-hint>
         </requirement>
@@ -90,15 +86,9 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Sep  3 19:37:00 2008
@@ -41,7 +41,6 @@
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.project.injection.ModelDefaultsInjector;
 import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.project.interpolation.ModelInterpolator;
 import org.apache.maven.project.path.PathTranslator;
@@ -116,8 +115,6 @@
 
     private PathTranslator pathTranslator;
 
-    private ModelDefaultsInjector modelDefaultsInjector;
-
     private ModelInterpolator modelInterpolator;
 
     private ProfileAdvisor profileAdvisor;
@@ -449,7 +446,7 @@
         }
 
         // interpolation is before injection, because interpolation is off-limits in the injected variables
-        modelDefaultsInjector.injectDefaults(model);
+        new DefaultModelDefaultsInjector().injectDefaults(model);
 
         // We will return a different project object using the new model (hence the need to return a project, not just modify the parameter)
         MavenProject project = new MavenProject(model, artifactFactory, mavenTools, repositoryHelper, this, config);
@@ -666,4 +663,109 @@
             setBuildOutputDirectoryOnParent(parent);
         }
     }
+
+    private static class DefaultModelDefaultsInjector
+    {
+        public void injectDefaults( Model model )
+        {
+            injectDependencyDefaults( model.getDependencies(), model.getDependencyManagement() );
+            if ( model.getBuild() != null )
+            {
+                injectPluginDefaults( model.getBuild(), model.getBuild().getPluginManagement() );
+            }
+        }
+
+        private static void injectPluginDefaults( Build build, PluginManagement pluginManagement )
+        {
+            if ( pluginManagement == null )
+            {
+                // nothing to inject.
+                return ;
+            }
+
+            List buildPlugins = build.getPlugins();
+
+            if ( buildPlugins != null && !buildPlugins.isEmpty() )
+            {
+                Map pmPlugins = pluginManagement.getPluginsAsMap();
+
+                if ( pmPlugins != null && !pmPlugins.isEmpty() )
+                {
+                    for ( Iterator it = buildPlugins.iterator(); it.hasNext(); )
+                    {
+                        Plugin buildPlugin = (Plugin) it.next();
+
+                        Plugin pmPlugin = (Plugin) pmPlugins.get( buildPlugin.getKey() );
+
+                        if ( pmPlugin != null )
+                        {
+                            ModelUtils.mergePluginDefinitions( buildPlugin, pmPlugin, false );
+                        }
+                    }
+                }
+            }
+
+        }
+
+        private static void injectDependencyDefaults( List dependencies, DependencyManagement dependencyManagement )
+        {
+            if ( dependencyManagement != null )
+            {
+                // a given project's dependencies should be smaller than the
+                // group-defined defaults set...
+                // in other words, the project's deps will probably be a subset of
+                // those specified in defaults.
+                Map depsMap = new TreeMap();
+                for ( Iterator it = dependencies.iterator(); it.hasNext(); )
+                {
+                    Dependency dep = (Dependency) it.next();
+                    depsMap.put( dep.getManagementKey(), dep );
+                }
+
+                List managedDependencies = dependencyManagement.getDependencies();
+
+                for ( Iterator it = managedDependencies.iterator(); it.hasNext(); )
+                {
+                    Dependency def = (Dependency) it.next();
+                    String key = def.getManagementKey();
+
+                    Dependency dep = (Dependency) depsMap.get( key );
+                    if ( dep != null )
+                    {
+                        mergeDependencyWithDefaults( dep, def );
+                    }
+                }
+            }
+        }
+
+        private static void mergeDependencyWithDefaults( Dependency dep, Dependency def )
+        {
+            if ( dep.getScope() == null && def.getScope() != null )
+            {
+                dep.setScope( def.getScope() );
+                dep.setSystemPath( def.getSystemPath() );
+            }
+
+            if ( dep.getVersion() == null && def.getVersion() != null )
+            {
+                dep.setVersion( def.getVersion() );
+            }
+
+            if ( dep.getClassifier() == null && def.getClassifier() != null )
+            {
+                dep.setClassifier( def.getClassifier() );
+            }
+
+            if ( dep.getType() == null && def.getType() != null )
+            {
+                dep.setType( def.getType() );
+            }
+
+            List exclusions = dep.getExclusions();
+            if ( exclusions == null || exclusions.isEmpty() )
+            {
+                dep.setExclusions( def.getExclusions() );
+            }
+        }
+    }
 }

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java Wed Sep  3 19:37:00 2008
@@ -20,14 +20,20 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.InvalidArtifactRTException;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.model.Resource;
-import org.apache.maven.project.artifact.AttachedArtifact;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.io.File;
 import java.util.List;
+import java.util.Collections;
+import java.util.Collection;
 
 public class DefaultMavenProjectHelper
     extends AbstractLogEnabled
@@ -119,4 +125,138 @@
         project.addTestResource( resource );
     }
 
+    private static class AttachedArtifact
+        extends DefaultArtifact
+    {
+
+        private final Artifact parent;
+
+        public AttachedArtifact( Artifact parent, String type, String classifier, ArtifactHandler artifactHandler )
+        {
+            super( parent.getGroupId(), parent.getArtifactId(), parent.getVersionRange(), parent.getScope(), type,
+                   classifier, artifactHandler, parent.isOptional() );
+
+            setDependencyTrail( Collections.singletonList( parent.getId() ) );
+
+            this.parent = parent;
+
+            if ( getId().equals( parent.getId() ) )
+            {
+                throw new InvalidArtifactRTException( parent.getGroupId(), parent.getArtifactId(), parent.getVersion(), parent.getType(), "An attached artifact must have a different ID than its corresponding main artifact." );
+            }
+        }
+
+        public AttachedArtifact( Artifact parent, String type, ArtifactHandler artifactHandler )
+        {
+            this( parent, type, null, artifactHandler );
+        }
+
+        public void setArtifactId( String artifactId )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public List getAvailableVersions()
+        {
+            return parent.getAvailableVersions();
+        }
+
+        public void setAvailableVersions( List availableVersions )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public String getBaseVersion()
+        {
+            return parent.getBaseVersion();
+        }
+
+        public void setBaseVersion( String baseVersion )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public String getDownloadUrl()
+        {
+            return parent.getDownloadUrl();
+        }
+
+        public void setDownloadUrl( String downloadUrl )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public void setGroupId( String groupId )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public ArtifactRepository getRepository()
+        {
+            return parent.getRepository();
+        }
+
+        public void setRepository( ArtifactRepository repository )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public String getScope()
+        {
+            return parent.getScope();
+        }
+
+        public void setScope( String scope )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public String getVersion()
+        {
+            return parent.getVersion();
+        }
+
+        public void setVersion( String version )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public VersionRange getVersionRange()
+        {
+            return parent.getVersionRange();
+        }
+
+        public void setVersionRange( VersionRange range )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public boolean isRelease()
+        {
+            return parent.isRelease();
+        }
+
+        public void setRelease( boolean release )
+        {
+            // ignore this. We should ALWAYS use the information from the parent artifact.
+        }
+
+        public boolean isSnapshot()
+        {
+            return parent.isSnapshot();
+        }
+
+        public void addMetadata( ArtifactMetadata metadata )
+        {
+            // ignore. The parent artifact will handle metadata.
+            // we must fail silently here to avoid problems with the artifact transformers.
+        }
+
+        public Collection getMetadataList()
+        {
+            return Collections.EMPTY_LIST;
+        }
+
+    }
+
 }

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Wed Sep  3 19:37:00 2008
@@ -62,54 +62,6 @@
 {
 
     /**
-     * Given this plugin list:
-     *
-     * A1 -> B -> C -> A2 -> D
-     *
-     * Rearrange it to this:
-     *
-     * A(A1 + A2) -> B -> C -> D
-     *
-     * In cases of overlapping definitions, A1 is overridden by A2
-     *
-     */
-    public static void mergeDuplicatePluginDefinitions( PluginContainer pluginContainer )
-    {
-        if ( pluginContainer == null )
-        {
-            return;
-        }
-
-        List originalPlugins = pluginContainer.getPlugins();
-
-        if ( ( originalPlugins == null ) || originalPlugins.isEmpty() )
-        {
-            return;
-        }
-
-        List normalized = new ArrayList( originalPlugins.size() );
-
-        for ( Iterator it = originalPlugins.iterator(); it.hasNext(); )
-        {
-            Plugin currentPlugin = (Plugin) it.next();
-
-            if ( normalized.contains( currentPlugin ) )
-            {
-                int idx = normalized.indexOf( currentPlugin );
-                Plugin firstPlugin = (Plugin) normalized.get( idx );
-
-                mergePluginDefinitions( firstPlugin, currentPlugin, false );
-            }
-            else
-            {
-                normalized.add( currentPlugin );
-            }
-        }
-
-        pluginContainer.setPlugins( normalized );
-    }
-
-    /**
      * This should be the resulting ordering of plugins after merging:
      *
      * Given:
@@ -262,67 +214,6 @@
         return results;
     }
 
-    public static void mergeReportPluginLists( Reporting child, Reporting parent, boolean handleAsInheritance )
-    {
-        if ( ( child == null ) || ( parent == null ) )
-        {
-            // nothing to do.
-            return;
-        }
-
-        List parentPlugins = parent.getPlugins();
-
-        if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
-        {
-            Map assembledPlugins = new TreeMap();
-
-            Map childPlugins = child.getReportPluginsAsMap();
-
-            for ( Iterator it = parentPlugins.iterator(); it.hasNext(); )
-            {
-                ReportPlugin parentPlugin = (ReportPlugin) it.next();
-
-                String parentInherited = parentPlugin.getInherited();
-
-                if ( !handleAsInheritance || ( parentInherited == null ) ||
-                    Boolean.valueOf( parentInherited ).booleanValue() )
-                {
-
-                    ReportPlugin assembledPlugin = parentPlugin;
-
-                    ReportPlugin childPlugin = (ReportPlugin) childPlugins.get( parentPlugin.getKey() );
-
-                    if ( childPlugin != null )
-                    {
-                        assembledPlugin = childPlugin;
-
-                        mergeReportPluginDefinitions( childPlugin, parentPlugin, handleAsInheritance );
-                    }
-
-                    if ( handleAsInheritance && ( parentInherited == null ) )
-                    {
-                        assembledPlugin.unsetInheritanceApplied();
-                    }
-
-                    assembledPlugins.put( assembledPlugin.getKey(), assembledPlugin );
-                }
-            }
-
-            for ( Iterator it = childPlugins.values().iterator(); it.hasNext(); )
-            {
-                ReportPlugin childPlugin = (ReportPlugin) it.next();
-
-                if ( !assembledPlugins.containsKey( childPlugin.getKey() ) )
-                {
-                    assembledPlugins.put( childPlugin.getKey(), childPlugin );
-                }
-            }
-
-            child.setPlugins( new ArrayList( assembledPlugins.values() ) );
-
-            child.flushReportPluginMap();
-        }
-    }
 
     public static void mergePluginDefinitions( Plugin child, Plugin parent, boolean handleAsInheritance )
     {
@@ -413,77 +304,6 @@
 
     }
 
-    public static void mergeReportPluginDefinitions( ReportPlugin child, ReportPlugin parent,
-                                                     boolean handleAsInheritance )
-    {
-        if ( ( child == null ) || ( parent == null ) )
-        {
-            // nothing to do.
-            return;
-        }
-
-        if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) )
-        {
-            child.setVersion( parent.getVersion() );
-        }
-
-        // from here to the end of the method is dealing with merging of the <executions/> section.
-        String parentInherited = parent.getInherited();
-
-        boolean parentIsInherited = ( parentInherited == null ) || Boolean.valueOf( parentInherited ).booleanValue();
-
-        List parentReportSets = parent.getReportSets();
-
-        if ( ( parentReportSets != null ) && !parentReportSets.isEmpty() )
-        {
-            Map assembledReportSets = new TreeMap();
-
-            Map childReportSets = child.getReportSetsAsMap();
-
-            for ( Iterator it = parentReportSets.iterator(); it.hasNext(); )
-            {
-                ReportSet parentReportSet = (ReportSet) it.next();
-
-                if ( !handleAsInheritance || parentIsInherited )
-                {
-                    ReportSet assembledReportSet = parentReportSet;
-
-                    ReportSet childReportSet = (ReportSet) childReportSets.get( parentReportSet.getId() );
-
-                    if ( childReportSet != null )
-                    {
-                        mergeReportSetDefinitions( childReportSet, parentReportSet );
-
-                        assembledReportSet = childReportSet;
-                    }
-                    else if ( handleAsInheritance && ( parentInherited == null ) )
-                    {
-                        parentReportSet.unsetInheritanceApplied();
-                    }
-
-                    assembledReportSets.put( assembledReportSet.getId(), assembledReportSet );
-                }
-            }
-
-            for ( Iterator it = childReportSets.entrySet().iterator(); it.hasNext(); )
-            {
-                Map.Entry entry = (Map.Entry) it.next();
-
-                String id = (String) entry.getKey();
-
-                if ( !assembledReportSets.containsKey( id ) )
-                {
-                    assembledReportSets.put( id, entry.getValue() );
-                }
-            }
-
-            child.setReportSets( new ArrayList( assembledReportSets.values() ) );
-
-            child.flushReportSetMap();
-        }
-
-    }
-
     private static void mergePluginExecutionDefinitions( PluginExecution child, PluginExecution parent )
     {
         if ( child.getPhase() == null )
@@ -524,41 +344,6 @@
         child.setConfiguration( childConfiguration );
     }
 
-    private static void mergeReportSetDefinitions( ReportSet child, ReportSet parent )
-    {
-        List parentReports = parent.getReports();
-        List childReports = child.getReports();
-
-        List reports = new ArrayList();
-
-        if ( ( childReports != null ) && !childReports.isEmpty() )
-        {
-            reports.addAll( childReports );
-        }
-
-        if ( parentReports != null )
-        {
-            for ( Iterator i = parentReports.iterator(); i.hasNext(); )
-            {
-                String report = (String) i.next();
-
-                if ( !reports.contains( report ) )
-                {
-                    reports.add( report );
-                }
-            }
-        }
-
-        child.setReports( reports );
-
-        Xpp3Dom childConfiguration = (Xpp3Dom) child.getConfiguration();
-        Xpp3Dom parentConfiguration = (Xpp3Dom) parent.getConfiguration();
-
-        childConfiguration = Xpp3Dom.mergeXpp3Dom( childConfiguration, parentConfiguration );
-
-        child.setConfiguration( childConfiguration );
-    }
-
     public static Model cloneModel( Model model )
     {
         // TODO: would be nice for the modello:java code to generate this as a copy constructor

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java Wed Sep  3 19:37:00 2008
@@ -139,57 +139,6 @@
         return lineage;
     }
 
-    public void resumeBuildingModelLineage( ModelLineage lineage,
-                                            ProjectBuilderConfiguration config,
-                                            boolean allowStubs,
-                                            boolean isReactorProject )
-        throws ProjectBuildingException
-    {
-        if ( lineage.size() == 0 )
-        {
-            throw new ProjectBuildingException( "unknown",
-                                                "Cannot resume a ModelLineage that doesn't contain at least one Model instance." );
-        }
-
-        List currentRemoteRepositories = lineage.getDeepestAncestorArtifactRepositoryList();
-
-        if ( currentRemoteRepositories == null )
-        {
-            currentRemoteRepositories = new ArrayList();
-        }
-
-        ModelAndFile current = new ModelAndFile( lineage.getDeepestAncestorModel(),
-                                                 lineage.getDeepestAncestorFile(),
-                                                 lineage.isDeepestAncestorUsingProfilesXml() );
-
-        // use the above information to re-bootstrap the resolution chain...
-        current = resolveParentPom( current,
-                                    currentRemoteRepositories,
-                                    config,
-                                    allowStubs,
-                                    isReactorProject);
-
-        while ( current != null )
-        {
-            lineage.addParent( current.getModel(),
-                               current.getFile(),
-                               currentRemoteRepositories,
-                               current.isValidProfilesXmlLocation() );
-
-            currentRemoteRepositories = updateRepositorySet( current.getModel(),
-                                                             currentRemoteRepositories,
-                                                             current.getFile(),
-                                                             config,
-                                                             current.isValidProfilesXmlLocation() );
-
-            current = resolveParentPom( current,
-                                        currentRemoteRepositories,
-                                        config,
-                                        allowStubs,
-                                        isReactorProject );
-        }
-    }
-
     /**
      * Read the Model instance from the given POM file. Skip caching the Model on this call, since
      * it's meant for diagnostic purposes (to determine a parent match).

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java Wed Sep  3 19:37:00 2008
@@ -61,25 +61,4 @@
                                     boolean isReactorProject )
         throws ProjectBuildingException;
 
-    /**
-     * Resume the process of constructing a lineage of inherited models, picking up using the deepest
-     * parent already in the lineage.
-     *
-     * @param lineage The ModelLineage instance in progress, which should be completed.
-     *
-     * @param config The project-building configuration to use, which contains the global profile manager,
-     *   local repository, and execution- and user-level properties.
-     *
-     * @param allowStubs Whether stubbed-out Model instances should be constructed in the event that
-     *   a parent-POM cannot be resolved.
-     *
-     * @param isReactorProject Whether the model being built is part of the build we're trying to execute,
-     *   or if it's actually being read from the repository.
-     */
-    void resumeBuildingModelLineage( ModelLineage lineage,
-                                     ProjectBuilderConfiguration config,
-                                     boolean allowStubs,
-                                     boolean isReactorProject )
-        throws ProjectBuildingException;
-
 }

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java Wed Sep  3 19:37:00 2008
@@ -19,19 +19,10 @@
  * under the License.
  */
 
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.DependencyManagement;
-import org.apache.maven.model.DeploymentRepository;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.PluginManagement;
-import org.apache.maven.model.Reporting;
-import org.apache.maven.model.Resource;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.Site;
+import org.apache.maven.model.*;
 import org.apache.maven.project.ModelUtils;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -52,19 +43,132 @@
 public class DefaultModelInheritanceAssembler
     implements ModelInheritanceAssembler
 {
-    public void copyModel( Model dest, Model source )
+
+    // TODO: Remove this!
+    @SuppressWarnings("unchecked")
+    public void assembleBuildInheritance( Build childBuild,
+                                           Build parentBuild,
+                                           boolean handleAsInheritance )
     {
-        assembleModelInheritance( dest, source, null, false );
+        // The build has been set but we want to step in here and fill in
+        // values that have not been set by the child.
+
+        if ( childBuild.getSourceDirectory() == null )
+        {
+            childBuild.setSourceDirectory( parentBuild.getSourceDirectory() );
+        }
+
+        if ( childBuild.getScriptSourceDirectory() == null )
+        {
+            childBuild.setScriptSourceDirectory( parentBuild.getScriptSourceDirectory() );
+        }
+
+        if ( childBuild.getTestSourceDirectory() == null )
+        {
+            childBuild.setTestSourceDirectory( parentBuild.getTestSourceDirectory() );
+        }
+
+        if ( childBuild.getOutputDirectory() == null )
+        {
+            childBuild.setOutputDirectory( parentBuild.getOutputDirectory() );
+        }
+
+        if ( childBuild.getTestOutputDirectory() == null )
+        {
+            childBuild.setTestOutputDirectory( parentBuild.getTestOutputDirectory() );
+        }
+
+        // Extensions are accumlated
+        ModelUtils.mergeExtensionLists( childBuild, parentBuild );
+
+        if ( childBuild.getDirectory() == null )
+        {
+            childBuild.setDirectory( parentBuild.getDirectory() );
+        }
+
+        if ( childBuild.getDefaultGoal() == null )
+        {
+            childBuild.setDefaultGoal( parentBuild.getDefaultGoal() );
+        }
+
+        if ( childBuild.getFinalName() == null )
+        {
+            childBuild.setFinalName( parentBuild.getFinalName() );
+        }
+
+        ModelUtils.mergeFilterLists( childBuild.getFilters(), parentBuild.getFilters() );
+
+        List<Resource> resources = childBuild.getResources();
+        if ( ( resources == null ) || resources.isEmpty() )
+        {
+            childBuild.setResources( parentBuild.getResources() );
+        }
+
+        resources = childBuild.getTestResources();
+        if ( ( resources == null ) || resources.isEmpty() )
+        {
+            childBuild.setTestResources( parentBuild.getTestResources() );
+        }
+
+        // Plugins are aggregated if Plugin.inherit != false
+        ModelUtils.mergePluginLists( childBuild, parentBuild, handleAsInheritance );
+
+        // Plugin management :: aggregate
+        PluginManagement dominantPM = childBuild.getPluginManagement();
+        PluginManagement recessivePM = parentBuild.getPluginManagement();
+
+        if ( ( dominantPM == null ) && ( recessivePM != null ) )
+        {
+            // FIXME: Filter out the inherited == false stuff!
+            childBuild.setPluginManagement( recessivePM );
+        }
+        else
+        {
+            ModelUtils.mergePluginLists( childBuild.getPluginManagement(), parentBuild.getPluginManagement(),
+                                         false );
+        }
     }
 
-    public void assembleModelInheritance( Model child, Model parent, String childPathAdjustment )
+    private void assembleScmInheritance( Model child, Model parent, String childPathAdjustment, boolean appendPaths )
     {
-        assembleModelInheritance( child, parent, childPathAdjustment, true );
+        if ( parent.getScm() != null )
+        {
+            Scm parentScm = parent.getScm();
+
+            Scm childScm = child.getScm();
+
+            if ( childScm == null )
+            {
+                childScm = new Scm();
+
+                child.setScm( childScm );
+            }
+
+            if ( StringUtils.isEmpty( childScm.getConnection() ) && !StringUtils.isEmpty( parentScm.getConnection() ) )
+            {
+                childScm.setConnection(
+                    appendPath( parentScm.getConnection(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+            }
+
+            if ( StringUtils.isEmpty( childScm.getDeveloperConnection() ) &&
+                !StringUtils.isEmpty( parentScm.getDeveloperConnection() ) )
+            {
+                childScm
+                    .setDeveloperConnection( appendPath( parentScm.getDeveloperConnection(), child.getArtifactId(),
+                                                         childPathAdjustment, appendPaths ) );
+            }
+
+            if ( StringUtils.isEmpty( childScm.getUrl() ) && !StringUtils.isEmpty( parentScm.getUrl() ) )
+            {
+                childScm.setUrl(
+                    appendPath( parentScm.getUrl(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+            }
+        }
     }
 
-    public void assembleModelInheritance( Model child, Model parent )
+    public void copyModel( Model dest, Model source )
     {
-        assembleModelInheritance( child, parent, null, true );
+        assembleModelInheritance( dest, source, null, false );
     }
 
     private void assembleModelInheritance( Model child, Model parent, String childPathAdjustment, boolean appendPaths )
@@ -243,177 +347,224 @@
                 childReporting.setOutputDirectory( parentReporting.getOutputDirectory() );
             }
 
-            ModelUtils.mergeReportPluginLists( childReporting, parentReporting, true );
+            mergeReportPluginLists( childReporting, parentReporting, true );
         }
     }
 
-    // TODO: Remove this!
-    @SuppressWarnings("unchecked")
-    private void assembleDependencyInheritance( Model child, Model parent )
+    private static void mergeReportPluginLists( Reporting child, Reporting parent, boolean handleAsInheritance )
     {
-        Map<String, Dependency> depsMap = new LinkedHashMap<String, Dependency>();
-
-        List<Dependency> deps = parent.getDependencies();
-
-        if ( deps != null )
+        if ( ( child == null ) || ( parent == null ) )
         {
-            for ( Iterator<Dependency> it = deps.iterator(); it.hasNext(); )
-            {
-                Dependency dependency = it.next();
-                depsMap.put( dependency.getManagementKey(), dependency );
-            }
+            // nothing to do.
+            return;
         }
 
-        deps = child.getDependencies();
+        List parentPlugins = parent.getPlugins();
 
-        if ( deps != null )
+        if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
         {
-            for ( Iterator<Dependency> it = deps.iterator(); it.hasNext(); )
+            Map assembledPlugins = new TreeMap();
+
+            Map childPlugins = child.getReportPluginsAsMap();
+
+            for ( Iterator it = parentPlugins.iterator(); it.hasNext(); )
             {
-                Dependency dependency = it.next();
-                depsMap.put( dependency.getManagementKey(), dependency );
-            }
-        }
+                ReportPlugin parentPlugin = (ReportPlugin) it.next();
 
-        child.setDependencies( new ArrayList<Dependency>( depsMap.values() ) );
-    }
+                String parentInherited = parentPlugin.getInherited();
 
-    private void assembleBuildInheritance( Model child, Model parent )
-    {
-        Build childBuild = child.getBuild();
-        Build parentBuild = parent.getBuild();
+                if ( !handleAsInheritance || ( parentInherited == null ) ||
+                    Boolean.valueOf( parentInherited ).booleanValue() )
+                {
 
-        if ( parentBuild != null )
-        {
-            if ( childBuild == null )
+                    ReportPlugin assembledPlugin = parentPlugin;
+
+                    ReportPlugin childPlugin = (ReportPlugin) childPlugins.get( parentPlugin.getKey() );
+
+                    if ( childPlugin != null )
+                    {
+                        assembledPlugin = childPlugin;
+
+                        mergeReportPluginDefinitions( childPlugin, parentPlugin, handleAsInheritance );
+                    }
+
+                    if ( handleAsInheritance && ( parentInherited == null ) )
+                    {
+                        assembledPlugin.unsetInheritanceApplied();
+                    }
+
+                    assembledPlugins.put( assembledPlugin.getKey(), assembledPlugin );
+                }
+            }
+
+            for ( Iterator it = childPlugins.values().iterator(); it.hasNext(); )
             {
-                childBuild = new Build();
-                child.setBuild( childBuild );
+                ReportPlugin childPlugin = (ReportPlugin) it.next();
+
+                if ( !assembledPlugins.containsKey( childPlugin.getKey() ) )
+                {
+                    assembledPlugins.put( childPlugin.getKey(), childPlugin );
+                }
             }
 
-            assembleBuildInheritance( childBuild, parentBuild, true );
+            child.setPlugins( new ArrayList( assembledPlugins.values() ) );
+
+            child.flushReportPluginMap();
         }
     }
 
-    // TODO: Remove this!
-    @SuppressWarnings("unchecked")
-    public void assembleBuildInheritance( Build childBuild,
-                                           Build parentBuild,
-                                           boolean handleAsInheritance )
+    private static void mergeReportSetDefinitions( ReportSet child, ReportSet parent )
     {
-        // The build has been set but we want to step in here and fill in
-        // values that have not been set by the child.
+        List parentReports = parent.getReports();
+        List childReports = child.getReports();
 
-        if ( childBuild.getSourceDirectory() == null )
-        {
-            childBuild.setSourceDirectory( parentBuild.getSourceDirectory() );
-        }
+        List reports = new ArrayList();
 
-        if ( childBuild.getScriptSourceDirectory() == null )
+        if ( ( childReports != null ) && !childReports.isEmpty() )
         {
-            childBuild.setScriptSourceDirectory( parentBuild.getScriptSourceDirectory() );
+            reports.addAll( childReports );
         }
 
-        if ( childBuild.getTestSourceDirectory() == null )
+        if ( parentReports != null )
         {
-            childBuild.setTestSourceDirectory( parentBuild.getTestSourceDirectory() );
-        }
+            for ( Iterator i = parentReports.iterator(); i.hasNext(); )
+            {
+                String report = (String) i.next();
 
-        if ( childBuild.getOutputDirectory() == null )
-        {
-            childBuild.setOutputDirectory( parentBuild.getOutputDirectory() );
+                if ( !reports.contains( report ) )
+                {
+                    reports.add( report );
+                }
+            }
         }
 
-        if ( childBuild.getTestOutputDirectory() == null )
-        {
-            childBuild.setTestOutputDirectory( parentBuild.getTestOutputDirectory() );
-        }
+        child.setReports( reports );
 
-        // Extensions are accumlated
-        ModelUtils.mergeExtensionLists( childBuild, parentBuild );
+        Xpp3Dom childConfiguration = (Xpp3Dom) child.getConfiguration();
+        Xpp3Dom parentConfiguration = (Xpp3Dom) parent.getConfiguration();
 
-        if ( childBuild.getDirectory() == null )
-        {
-            childBuild.setDirectory( parentBuild.getDirectory() );
-        }
+        childConfiguration = Xpp3Dom.mergeXpp3Dom( childConfiguration, parentConfiguration );
 
-        if ( childBuild.getDefaultGoal() == null )
+        child.setConfiguration( childConfiguration );
+    }
+
+
+    public static void mergeReportPluginDefinitions( ReportPlugin child, ReportPlugin parent,
+                                                     boolean handleAsInheritance )
+    {
+        if ( ( child == null ) || ( parent == null ) )
         {
-            childBuild.setDefaultGoal( parentBuild.getDefaultGoal() );
+            // nothing to do.
+            return;
         }
 
-        if ( childBuild.getFinalName() == null )
+        if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) )
         {
-            childBuild.setFinalName( parentBuild.getFinalName() );
+            child.setVersion( parent.getVersion() );
         }
 
-        ModelUtils.mergeFilterLists( childBuild.getFilters(), parentBuild.getFilters() );
+        // from here to the end of the method is dealing with merging of the <executions/> section.
+        String parentInherited = parent.getInherited();
 
-        List<Resource> resources = childBuild.getResources();
-        if ( ( resources == null ) || resources.isEmpty() )
-        {
-            childBuild.setResources( parentBuild.getResources() );
-        }
+        boolean parentIsInherited = ( parentInherited == null ) || Boolean.valueOf( parentInherited ).booleanValue();
 
-        resources = childBuild.getTestResources();
-        if ( ( resources == null ) || resources.isEmpty() )
+        List parentReportSets = parent.getReportSets();
+
+        if ( ( parentReportSets != null ) && !parentReportSets.isEmpty() )
         {
-            childBuild.setTestResources( parentBuild.getTestResources() );
-        }
+            Map assembledReportSets = new TreeMap();
 
-        // Plugins are aggregated if Plugin.inherit != false
-        ModelUtils.mergePluginLists( childBuild, parentBuild, handleAsInheritance );
+            Map childReportSets = child.getReportSetsAsMap();
 
-        // Plugin management :: aggregate
-        PluginManagement dominantPM = childBuild.getPluginManagement();
-        PluginManagement recessivePM = parentBuild.getPluginManagement();
+            for ( Iterator it = parentReportSets.iterator(); it.hasNext(); )
+            {
+                ReportSet parentReportSet = (ReportSet) it.next();
 
-        if ( ( dominantPM == null ) && ( recessivePM != null ) )
-        {
-            // FIXME: Filter out the inherited == false stuff!
-            childBuild.setPluginManagement( recessivePM );
-        }
-        else
-        {
-            ModelUtils.mergePluginLists( childBuild.getPluginManagement(), parentBuild.getPluginManagement(),
-                                         false );
-        }
-    }
+                if ( !handleAsInheritance || parentIsInherited )
+                {
+                    ReportSet assembledReportSet = parentReportSet;
 
-    private void assembleScmInheritance( Model child, Model parent, String childPathAdjustment, boolean appendPaths )
-    {
-        if ( parent.getScm() != null )
-        {
-            Scm parentScm = parent.getScm();
+                    ReportSet childReportSet = (ReportSet) childReportSets.get( parentReportSet.getId() );
 
-            Scm childScm = child.getScm();
+                    if ( childReportSet != null )
+                    {
+                        mergeReportSetDefinitions( childReportSet, parentReportSet );
 
-            if ( childScm == null )
+                        assembledReportSet = childReportSet;
+                    }
+                    else if ( handleAsInheritance && ( parentInherited == null ) )
+                    {
+                        parentReportSet.unsetInheritanceApplied();
+                    }
+
+                    assembledReportSets.put( assembledReportSet.getId(), assembledReportSet );
+                }
+            }
+
+            for ( Iterator it = childReportSets.entrySet().iterator(); it.hasNext(); )
             {
-                childScm = new Scm();
+                Map.Entry entry = (Map.Entry) it.next();
 
-                child.setScm( childScm );
+                String id = (String) entry.getKey();
+
+                if ( !assembledReportSets.containsKey( id ) )
+                {
+                    assembledReportSets.put( id, entry.getValue() );
+                }
             }
 
-            if ( StringUtils.isEmpty( childScm.getConnection() ) && !StringUtils.isEmpty( parentScm.getConnection() ) )
+            child.setReportSets( new ArrayList( assembledReportSets.values() ) );
+
+            child.flushReportSetMap();
+        }
+
+    }  
+
+    // TODO: Remove this!
+    @SuppressWarnings("unchecked")
+    private void assembleDependencyInheritance( Model child, Model parent )
+    {
+        Map<String, Dependency> depsMap = new LinkedHashMap<String, Dependency>();
+
+        List<Dependency> deps = parent.getDependencies();
+
+        if ( deps != null )
+        {
+            for ( Iterator<Dependency> it = deps.iterator(); it.hasNext(); )
             {
-                childScm.setConnection(
-                    appendPath( parentScm.getConnection(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+                Dependency dependency = it.next();
+                depsMap.put( dependency.getManagementKey(), dependency );
             }
+        }
 
-            if ( StringUtils.isEmpty( childScm.getDeveloperConnection() ) &&
-                !StringUtils.isEmpty( parentScm.getDeveloperConnection() ) )
+        deps = child.getDependencies();
+
+        if ( deps != null )
+        {
+            for ( Iterator<Dependency> it = deps.iterator(); it.hasNext(); )
             {
-                childScm
-                    .setDeveloperConnection( appendPath( parentScm.getDeveloperConnection(), child.getArtifactId(),
-                                                         childPathAdjustment, appendPaths ) );
+                Dependency dependency = it.next();
+                depsMap.put( dependency.getManagementKey(), dependency );
             }
+        }
 
-            if ( StringUtils.isEmpty( childScm.getUrl() ) && !StringUtils.isEmpty( parentScm.getUrl() ) )
+        child.setDependencies( new ArrayList<Dependency>( depsMap.values() ) );
+    }
+
+    private void assembleBuildInheritance( Model child, Model parent )
+    {
+        Build childBuild = child.getBuild();
+        Build parentBuild = parent.getBuild();
+
+        if ( parentBuild != null )
+        {
+            if ( childBuild == null )
             {
-                childScm.setUrl(
-                    appendPath( parentScm.getUrl(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+                childBuild = new Build();
+                child.setBuild( childBuild );
             }
+
+            assembleBuildInheritance( childBuild, parentBuild, true );
         }
     }
 

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java Wed Sep  3 19:37:00 2008
@@ -30,10 +30,6 @@
 {
     String ROLE = ModelInheritanceAssembler.class.getName();
 
-    void assembleModelInheritance( Model child, Model parent, String childPathAdjustment );
-
-    void assembleModelInheritance( Model child, Model parent );
-
     void assembleBuildInheritance( Build childBuild,
                                           Build parentBuild,
                                           boolean handleAsInheriance );

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml Wed Sep  3 19:37:00 2008
@@ -87,15 +87,7 @@
         </requirement>
       </requirements>
     </component>
-<!--
-     |
-     |
-     |
-     -->
-    <component>
-      <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-      <implementation>org.apache.maven.project.injection.DefaultModelDefaultsInjector</implementation>
-    </component>
+
 <!--
      |
      |
@@ -150,9 +142,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>
@@ -328,17 +317,6 @@
     </component>
 
     <component>
-      <role>org.apache.maven.artifact.resolver.metadata.MetadataSource</role>
-      <role-hint>default</role-hint>
-      <implementation>org.apache.maven.project.artifact.PomMetadataSource</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
-        </requirement>
-      </requirements>
-    </component>
-
-    <component>
       <role>org.apache.maven.MavenTools</role>
       <implementation>org.apache.maven.DefaultMavenTools</implementation>
       <requirements>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java Wed Sep  3 19:37:00 2008
@@ -493,31 +493,6 @@
         assertEquals( expected, actual );
     }
 
-    public void testShouldMergeTwoPluginDependenciesOnMergeDupePluginDefs()
-    {
-        PluginContainer first = new PluginContainer();
-        Plugin fPlugin = createPlugin( "g", "a", "1", Collections.EMPTY_MAP );
-        Dependency fDep = new Dependency();
-        fDep.setGroupId( "group" );
-        fDep.setArtifactId( "artifact" );
-        fDep.setVersion( "1" );
-
-        first.addPlugin( fPlugin );
-        fPlugin.addDependency( fDep );
-
-        Plugin sPlugin = createPlugin( "g", "a", "1", Collections.EMPTY_MAP );
-        Dependency sDep = new Dependency();
-        sDep.setGroupId( "group" );
-        sDep.setArtifactId( "artifact2" );
-        sDep.setVersion( "1" );
-        first.addPlugin( sPlugin );
-        sPlugin.addDependency( sDep );
-
-        ModelUtils.mergeDuplicatePluginDefinitions( first );
-
-        assertEquals( 2, ((Plugin)first.getPlugins().get( 0 ) ).getDependencies().size() );
-    }
-
     public void testShouldNotMergePluginExecutionWhenExecInheritedIsFalseAndTreatAsInheritanceIsTrue()
     {
         String gid = "group";

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java Wed Sep  3 19:37:00 2008
@@ -27,6 +27,7 @@
 import org.apache.maven.artifact.metadata.ResolutionGroup;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
@@ -35,8 +36,7 @@
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.Model;
+import org.apache.maven.model.*;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
@@ -50,10 +50,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 public class TestArtifactResolver
     extends DefaultArtifactResolver
@@ -240,4 +237,108 @@
         container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
     }
 
+    public static final class ProjectUtils
+    {
+        private ProjectUtils()
+        {
+        }
+
+        public static List buildArtifactRepositories( List repositories,
+                                                      ArtifactRepositoryFactory artifactRepositoryFactory,
+                                                      PlexusContainer container )
+            throws InvalidRepositoryException
+        {
+
+            List repos = new ArrayList();
+
+            for ( Iterator i = repositories.iterator(); i.hasNext(); )
+            {
+                Repository mavenRepo = (Repository) i.next();
+
+                ArtifactRepository artifactRepo =
+                    buildArtifactRepository( mavenRepo, artifactRepositoryFactory, container );
+
+                if ( !repos.contains( artifactRepo ) )
+                {
+                    repos.add( artifactRepo );
+                }
+            }
+            return repos;
+        }
+
+        public static ArtifactRepository buildDeploymentArtifactRepository( DeploymentRepository repo,
+                                                                            ArtifactRepositoryFactory artifactRepositoryFactory,
+                                                                            PlexusContainer container )
+            throws InvalidRepositoryException
+        {
+            if ( repo != null )
+            {
+                String id = repo.getId();
+                String url = repo.getUrl();
+
+                return artifactRepositoryFactory.createDeploymentArtifactRepository( id, url, repo.getLayout(),
+                                                                                     repo.isUniqueVersion() );
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        public static ArtifactRepository buildArtifactRepository( Repository repo,
+                                                                  ArtifactRepositoryFactory artifactRepositoryFactory,
+                                                                  PlexusContainer container )
+            throws InvalidRepositoryException
+        {
+            if ( repo != null )
+            {
+                String id = repo.getId();
+                String url = repo.getUrl();
+
+                if ( id == null || id.trim().length() < 1 )
+                {
+                    throw new MissingRepositoryElementException( "Repository ID must not be empty (URL is: " + url + ")." );
+                }
+
+                if ( url == null || url.trim().length() < 1 )
+                {
+                    throw new MissingRepositoryElementException( "Repository URL must not be empty (ID is: " + id + ").", id );
+                }
+
+                ArtifactRepositoryPolicy snapshots = buildArtifactRepositoryPolicy( repo.getSnapshots() );
+                ArtifactRepositoryPolicy releases = buildArtifactRepositoryPolicy( repo.getReleases() );
+
+                return artifactRepositoryFactory.createArtifactRepository( id, url, repo.getLayout(), snapshots, releases );
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        private static ArtifactRepositoryPolicy buildArtifactRepositoryPolicy( RepositoryPolicy policy )
+        {
+            boolean enabled = true;
+            String updatePolicy = null;
+            String checksumPolicy = null;
+
+            if ( policy != null )
+            {
+                enabled = policy.isEnabled();
+                if ( policy.getUpdatePolicy() != null )
+                {
+                    updatePolicy = policy.getUpdatePolicy();
+                }
+                if ( policy.getChecksumPolicy() != null )
+                {
+                    checksumPolicy = policy.getChecksumPolicy();
+                }
+            }
+
+            return new ArtifactRepositoryPolicy( enabled, updatePolicy, checksumPolicy );
+        }
+
+    }
+
+
 }
\ No newline at end of file

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java Wed Sep  3 19:37:00 2008
@@ -29,7 +29,6 @@
 import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.injection.ModelDefaultsInjector;
 import org.codehaus.plexus.PlexusTestCase;
 
 import java.util.ArrayList;
@@ -155,7 +154,7 @@
 
         MavenProject project = new MavenProject( model );
 
-        ModelDefaultsInjector injector = (ModelDefaultsInjector) lookup( ModelDefaultsInjector.ROLE );
+        TestModelDefaultsInjector injector = new TestModelDefaultsInjector();
 
         injector.injectDefaults( model );
 

Copied: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java (from r691843, maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java)
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java?p2=maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java&p1=maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java&r1=691843&r2=691855&rev=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java Wed Sep  3 19:37:00 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.project.injection;
+package org.apache.maven.project.artifact;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -35,8 +35,7 @@
 /**
  * @author jdcasey Created on Feb 1, 2005
  */
-public class DefaultModelDefaultsInjector
-    implements ModelDefaultsInjector
+public class TestModelDefaultsInjector
 {
     public void injectDefaults( Model model )
     {
@@ -47,7 +46,7 @@
         }
     }
 
-    private void injectPluginDefaults( Build build, PluginManagement pluginManagement )
+    private static void injectPluginDefaults( Build build, PluginManagement pluginManagement )
     {
         if ( pluginManagement == null )
         {
@@ -71,7 +70,7 @@
                     
                     if ( pmPlugin != null )
                     {
-                        mergePluginWithDefaults( buildPlugin, pmPlugin );
+                        ModelUtils.mergePluginDefinitions( buildPlugin, pmPlugin, false );
                     }
                 }
             }
@@ -79,12 +78,7 @@
         
     }
 
-    public void mergePluginWithDefaults( Plugin plugin, Plugin def )
-    {
-        ModelUtils.mergePluginDefinitions( plugin, def, false );
-    }
-
-    private void injectDependencyDefaults( List dependencies, DependencyManagement dependencyManagement )
+    private static void injectDependencyDefaults( List dependencies, DependencyManagement dependencyManagement )
     {
         if ( dependencyManagement != null )
         {
@@ -115,7 +109,7 @@
         }
     }
 
-    private void mergeDependencyWithDefaults( Dependency dep, Dependency def )
+    private static void mergeDependencyWithDefaults( Dependency dep, Dependency def )
     {
         if ( dep.getScope() == null && def.getScope() != null )
         {
@@ -144,5 +138,4 @@
             dep.setExclusions( def.getExclusions() );
         }
     }
-
 }
\ No newline at end of file

Propchange: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.8

Propchange: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/artifact/TestModelDefaultsInjector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java Wed Sep  3 19:37:00 2008
@@ -24,6 +24,7 @@
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Model;
+import org.apache.maven.project.artifact.TestModelDefaultsInjector;
 
 import java.util.List;
 
@@ -35,7 +36,7 @@
 {
     public void testShouldConstructWithNoParams()
     {
-        new DefaultModelDefaultsInjector();
+        new TestModelDefaultsInjector();
     }
 
     public void testShouldMergeManagedDependencyOfTypeEJBToDependencyList()
@@ -66,7 +67,7 @@
         
         model.addDependency( dep );
         
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
         
         List resultingDeps = model.getDependencies();
         
@@ -99,7 +100,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -136,7 +137,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -174,7 +175,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -204,7 +205,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -234,7 +235,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -261,7 +262,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -289,7 +290,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -322,7 +323,7 @@
 
         model.setDependencyManagement( depMgmt );
 
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
 
         List deps = model.getDependencies();
         assertEquals( 1, deps.size() );
@@ -353,7 +354,7 @@
 
 //        try
 //        {
-        new DefaultModelDefaultsInjector().injectDefaults( model );
+        new TestModelDefaultsInjector().injectDefaults( model );
         Dependency dependency = (Dependency) model.getDependencies().get( 0 );
         assertNull( "check version is null", dependency.getVersion() );
 //            fail("Should fail to validate dependency without a version.");

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Wed Sep  3 19:37:00 2008
@@ -134,9 +134,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=691855&r1=691854&r2=691855&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Wed Sep  3 19:37:00 2008
@@ -131,9 +131,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
         </requirement>
         <requirement>