You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/07/24 01:26:01 UTC

svn commit: r679229 - in /maven/components/trunk: ./ maven-core/src/main/java/org/apache/maven/lifecycle/ maven-core/src/main/java/org/apache/maven/lifecycle/binding/ maven-core/src/main/resources/META-INF/plexus/ maven-project/src/main/java/org/apache...

Author: jdcasey
Date: Wed Jul 23 16:26:00 2008
New Revision: 679229

URL: http://svn.apache.org/viewvc?rev=679229&view=rev
Log:
Merging changes in from 2.0.10-RC2 release candidate on 2.0.10-RC branch. Still have two failing unit tests in maven-core; I'll take care of those in a few minutes.

Added:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
      - copied unchanged from r679206, maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
    maven/components/trunk/maven-project/src/test/resources/project-dynamism/plugin-level-dep.pom.xml
      - copied unchanged from r679206, maven/components/branches/maven-2.0.x/maven-project/src/test/resources/project-dynamism/plugin-level-dep.pom.xml
Removed:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java
Modified:
    maven/components/trunk/   (props changed)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
    maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
    maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
    maven/components/trunk/pom.xml

Propchange: maven/components/trunk/
------------------------------------------------------------------------------
    svn:mergeinfo = /maven/components/branches/maven-2.0.x:679206

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Wed Jul 23 16:26:00 2008
@@ -28,6 +28,7 @@
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.lifecycle.binding.LifecycleBindingManager;
 import org.apache.maven.lifecycle.binding.MojoBindingFactory;
 import org.apache.maven.lifecycle.model.MojoBinding;
 import org.apache.maven.lifecycle.plan.BuildPlan;
@@ -91,6 +92,8 @@
     private BuildPlanner buildPlanner;
 
     private MojoBindingFactory mojoBindingFactory;
+    
+    private LifecycleBindingManager lifecycleBindingManager;
 
     // this is needed for setting the lookup realm before we start building a project.
     private PlexusContainer container;
@@ -959,4 +962,9 @@
     {
         container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
     }
+    
+    public List getLifecycles()
+    {
+        return lifecycleBindingManager.getLifecycles();
+    }
 }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java Wed Jul 23 16:26:00 2008
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.util.List;
+
 import org.apache.maven.BuildFailureException;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
@@ -56,4 +58,9 @@
     void execute( MavenSession session, ReactorManager rm, EventDispatcher dispatcher )
         throws LifecycleExecutionException, BuildFailureException;
 
+    /**
+     * @since 2.0.10
+     */
+    List getLifecycles();
+
 }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java Wed Jul 23 16:26:00 2008
@@ -64,13 +64,18 @@
     private Logger logger;
 
     // configured. Moved out of DefaultLifecycleExecutor...
-    private List lifecycles;
+    private List<org.apache.maven.lifecycle.binding.Lifecycle> lifecycles;
 
     // configured. Moved out of DefaultLifecycleExecutor...
     private List defaultReports;
 
     // contextualized, used for setting lookup realm before retrieving lifecycle bindings for packaging.
     private PlexusContainer container;
+    
+    public List<org.apache.maven.lifecycle.binding.Lifecycle> getLifecycles()
+    {
+        return lifecycles;
+    }
 
     /**
      * {@inheritDoc}

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java Wed Jul 23 16:26:00 2008
@@ -82,4 +82,6 @@
                                         final LifecycleBindings lifecycleBindings )
         throws LifecycleSpecificationException;
 
+    List<org.apache.maven.lifecycle.binding.Lifecycle> getLifecycles();
+
 }

Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Wed Jul 23 16:26:00 2008
@@ -426,6 +426,9 @@
         <requirement>
           <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
         </requirement>
+        <requirement>
+          <role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role>
+        </requirement>
       </requirements>
     </component>
 
@@ -817,6 +820,15 @@
         <!-- END SNIPPET: default-reports -->
       </configuration>
     </component>
+    
+    <component>
+      <role>org.apache.maven.artifact.manager.WagonManager</role>
+      <role-hint>default</role-hint>
+      <implementation>org.apache.maven.artifact.manager.DefaultWagonManager</implementation>
+      <configuration>
+        <httpUserAgent>Apache-Maven/2.1 (Java @java.version@; @os.name@ @os.version@) maven-artifact/${project.version}</httpUserAgent>
+      </configuration>
+    </component>
 
     <component>
       <role>org.apache.maven.lifecycle.plan.BuildPlanner</role>

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Jul 23 16:26:00 2008
@@ -1087,6 +1087,8 @@
                 dPlugin.setGroupId( iPlugin.getGroupId() );
                 dPlugin.setArtifactId( iPlugin.getArtifactId() );
                 dPlugin.setVersion( iPlugin.getVersion() );
+                
+                dPlugin.setDependencies( iPlugin.getDependencies() );
             }
         }
 
@@ -1108,6 +1110,8 @@
                     dPlugin.setGroupId( iPlugin.getGroupId() );
                     dPlugin.setArtifactId( iPlugin.getArtifactId() );
                     dPlugin.setVersion( iPlugin.getVersion() );
+                    
+                    dPlugin.setDependencies( iPlugin.getDependencies() );
                 }
             }
         }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Wed Jul 23 16:26:00 2008
@@ -562,6 +562,8 @@
     public static Model cloneModel( Model model )
     {
         // TODO: would be nice for the modello:java code to generate this as a copy constructor
+        // FIXME: Fix deep cloning issues with existing plugin instances (setting 
+        //       a version when resolved will pollute the original model instance)
         Model newModel = new Model();
         ModelInheritanceAssembler assembler = new DefaultModelInheritanceAssembler();
         newModel.setModelVersion( model.getModelVersion() );

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Wed Jul 23 16:26:00 2008
@@ -101,22 +101,34 @@
             return artifact;
         }
 
-        ProjectRelocation res = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
-        MavenProject project = res.project;
-
+        ProjectRelocation rel = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+        
+        if ( rel == null )
+        {
+            return artifact;
+        }
+        
+        MavenProject project = rel.project;
         if ( project == null || getRelocationKey( artifact ).equals( getRelocationKey( project.getArtifact() ) ) )
         {
             return artifact;
         }
 
+        
+        // NOTE: Using artifact information here, since some POMs are deployed 
+        // to central with one version in the filename, but another in the <version> string!
+        // Case in point: org.apache.ws.commons:XmlSchema:1.1:pom.
+        //
+        // Since relocation triggers a reconfiguration of the artifact's information
+        // in retrieveRelocatedProject(..), this is safe to do.
         Artifact result = null;
         if ( artifact.getClassifier() != null )
         {
-            result = artifactFactory.createArtifactWithClassifier( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getType(), artifact.getClassifier() );
+            result = artifactFactory.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), artifact.getClassifier() );
         }
         else
         {
-            result = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getScope(), artifact.getType() );
+            result = artifactFactory.createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getScope(), artifact.getType() );
         }
 
         result.setScope( artifact.getScope() );

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java Wed Jul 23 16:26:00 2008
@@ -88,6 +88,12 @@
         throws IOException
     {
     }
+    
+    // for testing.
+    protected RegexBasedModelInterpolator( PathTranslator pathTranslator )
+    {
+        this.pathTranslator = pathTranslator;
+    }
 
     public Model interpolate( Model model, Map<String, ?> context )
         throws ModelInterpolationException
@@ -199,15 +205,8 @@
             timestampFormat = modelProperties.getProperty( BUILD_TIMESTAMP_FORMAT_PROPERTY, timestampFormat );
         }
 
-        ValueSource baseModelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
-        ValueSource modelValueSource1 = new PathTranslatingValueSource( baseModelValueSource1,
-                                                                       TRANSLATED_PATH_EXPRESSIONS,
-                                                                       projectDir, pathTranslator );
-
-        ValueSource baseModelValueSource2 = new ObjectBasedValueSource( model );
-        ValueSource modelValueSource2 = new PathTranslatingValueSource( baseModelValueSource2,
-                                                                       TRANSLATED_PATH_EXPRESSIONS,
-                                                                       projectDir, pathTranslator );
+        ValueSource modelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
+        ValueSource modelValueSource2 = new ObjectBasedValueSource( model );
 
         ValueSource basedirValueSource = new PrefixedValueSourceWrapper( new ValueSource(){
             public Object getValue( String expression )
@@ -232,6 +231,11 @@
         interpolator.addValueSource( new PrefixedValueSourceWrapper( new MapBasedValueSource( modelProperties ), PROJECT_PREFIXES, true ) );
         interpolator.addValueSource( modelValueSource2 );
         interpolator.addValueSource( new MapBasedValueSource( config.getUserProperties() ) );
+        
+        PathTranslatingPostProcessor pathTranslatingPostProcessor =
+            new PathTranslatingPostProcessor( TRANSLATED_PATH_EXPRESSIONS, projectDir, pathTranslator );
+        
+        interpolator.addPostProcessor( pathTranslatingPostProcessor );
 
         RecursionInterceptor recursionInterceptor = new PrefixAwareRecursionInterceptor( PROJECT_PREFIXES );
 

Modified: maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml Wed Jul 23 16:26:00 2008
@@ -115,7 +115,7 @@
          </plugin>
          <plugin>
            <artifactId>maven-plugin-plugin</artifactId>
-           <version>2.3</version>
+           <version>2.4.2</version>
          </plugin>
          <plugin>
            <artifactId>maven-rar-plugin</artifactId>
@@ -131,7 +131,7 @@
          </plugin>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
-           <version>2.0-beta-6</version>
+           <version>2.0-beta-7</version>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
@@ -139,7 +139,7 @@
          </plugin>         
          <plugin>
             <artifactId>maven-surefire-plugin</artifactId>
-            <version>2.4.2</version>
+            <version>2.4.3</version>
          </plugin>
          <plugin>
            <artifactId>maven-war-plugin</artifactId>

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java Wed Jul 23 16:26:00 2008
@@ -19,19 +19,25 @@
  * under the License.
  */
 
+import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DeploymentRepository;
 import org.apache.maven.model.DistributionManagement;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Organization;
 import org.apache.maven.model.Repository;
+import org.apache.maven.model.Resource;
 import org.apache.maven.model.Scm;
 import org.apache.maven.project.DefaultProjectBuilderConfiguration;
 import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.path.DefaultPathTranslator;
+import org.apache.maven.project.path.PathTranslator;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
@@ -297,4 +303,83 @@
         assertEquals( "Expected '" + expectedVersion + "' for version expression '" + depVersionExpr + "', but was '" + result + "'", expectedVersion, result );
     }
 
+    public void testShouldInterpolateSourceDirectoryReferencedFromResourceDirectoryCorrectly()
+        throws Exception
+    {
+        Model model = new Model();
+
+        Build build = new Build();
+        build.setSourceDirectory( "correct" );
+
+        Resource res = new Resource();
+        res.setDirectory( "${project.build.sourceDirectory}" );
+
+        build.addResource( res );
+
+        Resource res2 = new Resource();
+        res2.setDirectory( "${pom.build.sourceDirectory}" );
+
+        build.addResource( res2 );
+
+        Resource res3 = new Resource();
+        res3.setDirectory( "${build.sourceDirectory}" );
+
+        build.addResource( res3 );
+
+        model.setBuild( build );
+
+        Model out = new RegexBasedModelInterpolator().interpolate( model, context );
+
+        List outResources = out.getBuild().getResources();
+        Iterator resIt = outResources.iterator();
+
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+    }
+
+    public void testShouldInterpolateUnprefixedBasedirExpression()
+        throws ModelInterpolationException, IOException
+    {
+        File basedir = new File( "/test/path" );
+        Model model = new Model();
+        Dependency dep = new Dependency();
+        dep.setSystemPath( "${basedir}/artifact.jar" );
+
+        model.addDependency( dep );
+
+        Model result = new RegexBasedModelInterpolator().interpolate( model, basedir, new DefaultProjectBuilderConfiguration(), true );
+
+        List rDeps = result.getDependencies();
+        assertNotNull( rDeps );
+        assertEquals( 1, rDeps.size() );
+        assertEquals( new File( basedir, "artifact.jar" ).getAbsolutePath(), new File( ( (Dependency) rDeps.get( 0 ) )
+            .getSystemPath() ).getAbsolutePath() );
+    }
+    
+    public void testTwoLevelRecursiveBasedirAlignedExpression()
+        throws Exception
+    {
+        Model model = new Model();
+        Build build = new Build();
+        
+        model.setBuild( build );
+        
+        build.setDirectory( "${project.basedir}/target" );
+        build.setOutputDirectory( "${project.build.directory}/classes" );
+        
+        PathTranslator translator = new DefaultPathTranslator();
+        RegexBasedModelInterpolator interpolator = new RegexBasedModelInterpolator( translator );
+        
+        File basedir = new File( System.getProperty( "java.io.tmpdir" ), "base" );
+        
+        String value = interpolator.interpolate( "${project.build.outputDirectory}/foo", model, basedir, new DefaultProjectBuilderConfiguration(), true );
+        value = value.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar );
+        
+        String check = new File( basedir, "target/classes/foo" ).getAbsolutePath();
+        check = check.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar );
+        
+        assertEquals( check, value );
+    }
+
 }

Modified: maven/components/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=679229&r1=679228&r2=679229&view=diff
==============================================================================
--- maven/components/trunk/pom.xml (original)
+++ maven/components/trunk/pom.xml Wed Jul 23 16:26:00 2008
@@ -203,6 +203,27 @@
           <version>1.0.0</version>
         </plugin>
         <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>clirr-maven-plugin</artifactId>
+          <version>2.2.1</version>
+          <configuration>
+            <!-- needed for release: default value "(,${project.version})" for 2.0.10 is 2.0.10-SNAPSHOT -->
+            <comparisonVersion>2.0.9</comparisonVersion>
+            <excludes>
+              <!-- TODO: These represent method ADDITIONS from 2.0.9, and should be removed after 
+                   2.0.10 is released. -->
+              <exclude>org/apache/maven/lifecycle/LifecycleExecutor*</exclude>
+              <exclude>org/apache/maven/artifact/metadata/ArtifactMetadataSource*</exclude>
+              <exclude>org/apache/maven/project/MavenProjectBuilder*</exclude>
+              <exclude>org/apache/maven/project/ProjectBuilderConfiguration*</exclude>
+              <exclude>org/apache/maven/project/interpolation/ModelInterpolator*</exclude>
+              <exclude>org/apache/maven/project/inheritance/ModelInheritanceAssembler*</exclude>
+              <exclude>org/apache/maven/execution/MavenExecutionRequest*</exclude>
+              <exclude>org/apache/maven/plugin/DefaultPluginManager*</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.3</version>
@@ -238,7 +259,7 @@
     <module>maven-toolchain</module>
   </modules>
   <properties>
-    <artifactVersion>3.0-SNAPSHOT</artifactVersion>
+    <artifactVersion>3.0-alpha-2-SNAPSHOT</artifactVersion>
     <aspectjVersion>1.5.3</aspectjVersion>
     <classWorldsVersion>1.2-alpha-13</classWorldsVersion>
     <commonsCliVersion>1.0</commonsCliVersion>
@@ -247,8 +268,8 @@
     <junitVersion>3.8.1</junitVersion>
     <plexusVersion>1.0-alpha-48</plexusVersion>
     <plexusInteractivityVersion>1.0-alpha-6</plexusInteractivityVersion>
-    <plexusInterpolationVersion>1.0</plexusInterpolationVersion>
-    <plexusUtilsVersion>1.5.4</plexusUtilsVersion>
+    <plexusInterpolationVersion>1.1</plexusInterpolationVersion>
+    <plexusUtilsVersion>1.5.5</plexusUtilsVersion>
     <wagonVersion>1.0-beta-3</wagonVersion>
   </properties>