You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by if...@apache.org on 2011/10/19 04:43:51 UTC

svn commit: r1185951 - in /maven/plugin-testing/branches/plugin-testing-mvn-3.x: ./ maven-plugin-testing-harness/ maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/ maven-plugin-testing-harness/src/main/java/org/apache/maven/pl...

Author: ifedorenko
Date: Wed Oct 19 02:43:50 2011
New Revision: 1185951

URL: http://svn.apache.org/viewvc?rev=1185951&view=rev
Log:
Update to use maven 3.0 and other improvements

Made necessary changes to update maven version from 3.0-alpha-4 to 3.0.

Replaced @plexus.component javadoc with corresponding @Component annotations,
so I can work on the code inside m2e.

Introduced AbstractMojoTestCase.setupContainerConfiguration, which allows
plexus container customization by subclasses. Specific usecase was to enable
JSR330 support, but should be useful in other cases.

Introduced AbstractMojoTestCase.lookupConfiguredMojo. which returns fully
configured Mojo instance. Unlike other lookupMojo methods, lookupConfiguredMojo
uses maven plugin parameter default values, so test can use much smaller and
easier to maintain pom.xml files.

Introduced AbstractMojoTestCase newMavenSession and newMojoExecution helper
methods. These helpers are used by lookupConfiguredMojo but should be useful
in other cases.


Modified:
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/pom.xml
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/StubArtifactRepository.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/pom.xml
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/BuildTool.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ComponentTestTool.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/PluginTestTool.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ProjectTool.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/RepositoryTool.java
    maven/plugin-testing/branches/plugin-testing-mvn-3.x/pom.xml

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/pom.xml?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/pom.xml (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/pom.xml Wed Oct 19 02:43:50 2011
@@ -56,6 +56,10 @@ under the License.
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-aether-provider</artifactId>
+    </dependency>
 
     <!-- plexus -->
     <dependency>

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java Wed Oct 19 02:43:50 2011
@@ -26,14 +26,30 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
+import org.apache.maven.model.Plugin;
 import org.apache.maven.monitor.logging.DefaultLog;
 import org.apache.maven.plugin.Mojo;
+import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.DefaultContainerConfiguration;
 import org.codehaus.plexus.DefaultPlexusContainer;
@@ -41,6 +57,7 @@ import org.codehaus.plexus.PlexusContain
 import org.codehaus.plexus.PlexusContainerException;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
 import org.codehaus.plexus.component.configurator.ComponentConfigurator;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
 import org.codehaus.plexus.component.repository.ComponentDescriptor;
@@ -50,6 +67,7 @@ import org.codehaus.plexus.logging.Logge
 import org.codehaus.plexus.util.InterpolationFilterReader;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.ReflectionUtils;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.XmlStreamReader;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
@@ -73,6 +91,8 @@ public abstract class AbstractMojoTestCa
     private ComponentConfigurator configurator;
 
     private PlexusContainer container;
+
+    private Map<String, MojoDescriptor> mojoDescriptors;
     
     /*
      * for the harness I think we have decided against going the route of using the maven project builder.
@@ -95,10 +115,24 @@ public abstract class AbstractMojoTestCa
 
         PluginDescriptor pluginDescriptor = new PluginDescriptorBuilder().build( interpolationFilterReader );
 
+        Artifact artifact =
+            lookup( RepositorySystem.class ).createArtifact( pluginDescriptor.getGroupId(),
+                                                             pluginDescriptor.getArtifactId(),
+                                                             pluginDescriptor.getVersion(), ".jar" );
+        artifact.setFile( new File( getBasedir() ).getCanonicalFile() );
+        pluginDescriptor.setPluginArtifact( artifact );
+        pluginDescriptor.setArtifacts( Arrays.asList( artifact ) );
+
         for ( ComponentDescriptor<?> desc : pluginDescriptor.getComponents() )
         {
             getContainer().addComponentDescriptor( desc );
         }
+
+        mojoDescriptors = new HashMap<String, MojoDescriptor>();
+        for ( MojoDescriptor mojoDescriptor : pluginDescriptor.getMojos() )
+        {
+            mojoDescriptors.put( mojoDescriptor.getGoal(), mojoDescriptor );
+        }
     }
 
     protected InputStream getPublicDescriptorStream()
@@ -119,10 +153,7 @@ public abstract class AbstractMojoTestCa
 
     protected void setupContainer()
     {
-        ClassWorld classWorld = new ClassWorld( "plexus.core", Thread.currentThread().getContextClassLoader() );
-
-        ContainerConfiguration cc =
-            new DefaultContainerConfiguration().setClassWorld( classWorld ).setName( "embedder" );
+        ContainerConfiguration cc = setupContainerConfiguration();
         try
         {
             container = new DefaultPlexusContainer( cc );
@@ -133,6 +164,13 @@ public abstract class AbstractMojoTestCa
             fail( "Failed to create plexus container." );
         }   
     }
+
+    protected ContainerConfiguration setupContainerConfiguration()
+    {
+        ClassWorld classWorld = new ClassWorld( "plexus.core", Thread.currentThread().getContextClassLoader() );
+
+        return new DefaultContainerConfiguration().setClassWorld( classWorld ).setName( "embedder" );
+    }
     
     protected PlexusContainer getContainer()
     {
@@ -272,6 +310,109 @@ public abstract class AbstractMojoTestCa
         return mojo;
     }
 
+    protected Mojo lookupConfiguredMojo( MavenProject project, String goal )
+        throws Exception
+    {
+        return lookupConfiguredMojo( newMavenSession( project ), newMojoExecution( goal ) );
+    }
+
+    protected Mojo lookupConfiguredMojo( MavenSession session, MojoExecution execution )
+        throws Exception, ComponentConfigurationException
+    {
+        MavenProject project = session.getCurrentProject();
+        MojoDescriptor mojoDescriptor = execution.getMojoDescriptor();
+
+        Mojo mojo = (Mojo) lookup( mojoDescriptor.getRole(), mojoDescriptor.getRoleHint() );
+
+        ExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator( session, execution );
+
+        Xpp3Dom configuration = null;
+        Plugin plugin = project.getPlugin( mojoDescriptor.getPluginDescriptor().getPluginLookupKey() );
+        if ( plugin != null )
+        {
+            configuration = (Xpp3Dom) plugin.getConfiguration();
+        }
+        if ( configuration == null )
+        {
+            configuration = new Xpp3Dom( "configuration" );
+        }
+        configuration = Xpp3Dom.mergeXpp3Dom( execution.getConfiguration(), configuration );
+
+        PlexusConfiguration pluginConfiguration = new XmlPlexusConfiguration( configuration );
+
+        configurator.configureComponent( mojo, pluginConfiguration, evaluator, getContainer().getContainerRealm() );
+
+        return mojo;
+    }
+
+    protected MavenSession newMavenSession( MavenProject project )
+    {
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
+        MavenExecutionResult result = new DefaultMavenExecutionResult();
+
+        MavenSession session = new MavenSession( container, new MavenRepositorySystemSession(), request, result );
+        session.setCurrentProject( project );
+        session.setProjects( Arrays.asList( project ) );
+        return session;
+    }
+
+    protected MojoExecution newMojoExecution( String goal )
+    {
+        MojoDescriptor mojoDescriptor = mojoDescriptors.get( goal );
+        assertNotNull( mojoDescriptor );
+        MojoExecution execution = new MojoExecution( mojoDescriptor );
+        finalizeMojoConfiguration( execution );
+        return execution;
+    }
+
+    // copy&paste from org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.finalizeMojoConfiguration(MojoExecution)
+    private void finalizeMojoConfiguration( MojoExecution mojoExecution )
+    {
+        MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+        Xpp3Dom executionConfiguration = mojoExecution.getConfiguration();
+        if ( executionConfiguration == null )
+        {
+            executionConfiguration = new Xpp3Dom( "configuration" );
+        }
+
+        Xpp3Dom defaultConfiguration = MojoDescriptorCreator.convert( mojoDescriptor );;
+
+        Xpp3Dom finalConfiguration = new Xpp3Dom( "configuration" );
+
+        if ( mojoDescriptor.getParameters() != null )
+        {
+            for ( Parameter parameter : mojoDescriptor.getParameters() )
+            {
+                Xpp3Dom parameterConfiguration = executionConfiguration.getChild( parameter.getName() );
+
+                if ( parameterConfiguration == null )
+                {
+                    parameterConfiguration = executionConfiguration.getChild( parameter.getAlias() );
+                }
+
+                Xpp3Dom parameterDefaults = defaultConfiguration.getChild( parameter.getName() );
+
+                parameterConfiguration = Xpp3Dom.mergeXpp3Dom( parameterConfiguration, parameterDefaults, Boolean.TRUE );
+
+                if ( parameterConfiguration != null )
+                {
+                    parameterConfiguration = new Xpp3Dom( parameterConfiguration, parameter.getName() );
+
+                    if ( StringUtils.isEmpty( parameterConfiguration.getAttribute( "implementation" ) )
+                        && StringUtils.isNotEmpty( parameter.getImplementation() ) )
+                    {
+                        parameterConfiguration.setAttribute( "implementation", parameter.getImplementation() );
+                    }
+
+                    finalConfiguration.addChild( parameterConfiguration );
+                }
+            }
+        }
+
+        mojoExecution.setConfiguration( finalConfiguration );
+    }
+
     /**
      * @param artifactId
      * @param pom

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/StubArtifactRepository.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/StubArtifactRepository.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/StubArtifactRepository.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/stubs/StubArtifactRepository.java Wed Oct 19 02:43:50 2011
@@ -232,4 +232,9 @@ public class StubArtifactRepository
         return Collections.emptyList();
     }
 
+    public boolean isProjectAware()
+    {
+        return false;
+    }
+
 }

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/pom.xml?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/pom.xml (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/pom.xml Wed Oct 19 02:43:50 2011
@@ -40,10 +40,6 @@ under the License.
   <dependencies>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>
     <dependency>
@@ -59,6 +55,10 @@ under the License.
       <artifactId>maven-compat</artifactId>
     </dependency>    
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-aether-provider</artifactId>
+    </dependency>    
+    <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-invoker</artifactId>
       <version>2.0.10</version>
@@ -66,7 +66,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-test-tools</artifactId>
-      <version>2.0-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/BuildTool.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/BuildTool.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/BuildTool.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/BuildTool.java Wed Oct 19 02:43:50 2011
@@ -32,6 +32,7 @@ import org.apache.maven.shared.invoker.I
 import org.apache.maven.shared.invoker.InvocationResult;
 import org.apache.maven.shared.invoker.Invoker;
 import org.apache.maven.shared.invoker.MavenInvocationException;
+import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
@@ -41,10 +42,10 @@ import org.codehaus.plexus.util.cli.Comm
 /**
  * Test-tool used to execute Maven builds in order to test plugin functionality.
  *
- * @plexus.component role="org.apache.maven.shared.test.plugin.BuildTool" role-hint="default"
  * @author jdcasey
  * @version $Id$
  */
+@Component(role=BuildTool.class)
 public class BuildTool
     implements Initializable, Disposable
 {

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ComponentTestTool.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ComponentTestTool.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ComponentTestTool.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ComponentTestTool.java Wed Oct 19 02:43:50 2011
@@ -20,6 +20,8 @@ package org.apache.maven.shared.test.plu
  */
 
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -39,23 +41,19 @@ import java.io.IOException;
  * component's ancestor POMs cannot be resolved.
  * </p>
  *
- * @plexus.component role="org.apache.maven.shared.test.plugin.ComponentTestTool" role-hint="default"
  * @author jdcasey
  * @version $Id$
  */
+@Component( role = ComponentTestTool.class )
 public class ComponentTestTool
 {
     /** Plexus role */
     public static final String ROLE = ComponentTestTool.class.getName();
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private ProjectTool projectTool;
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private RepositoryTool repositoryTool;
 
     /**

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/PluginTestTool.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/PluginTestTool.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/PluginTestTool.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/PluginTestTool.java Wed Oct 19 02:43:50 2011
@@ -20,6 +20,8 @@ package org.apache.maven.shared.test.plu
  */
 
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -39,23 +41,19 @@ import java.io.IOException;
  * plugin's ancestor POMs cannot be resolved.
  * </p>
  *
- * @plexus.component role="org.apache.maven.shared.test.plugin.PluginTestTool" role-hint="default"
  * @author jdcasey
  * @version $Id$
  */
+@Component( role = PluginTestTool.class )
 public class PluginTestTool
 {
     /** Plexus role */
     public static final String ROLE = PluginTestTool.class.getName();
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private ProjectTool projectTool;
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private RepositoryTool repositoryTool;
 
     /**

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ProjectTool.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ProjectTool.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ProjectTool.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/ProjectTool.java Wed Oct 19 02:43:50 2011
@@ -50,6 +50,9 @@ import org.apache.maven.project.ProjectB
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
@@ -62,10 +65,10 @@ import org.codehaus.plexus.util.xml.pull
  * files (package phase of the normal build process) for distribution to a test local repository
  * directory.
  *
- * @plexus.component role="org.apache.maven.shared.test.plugin.ProjectTool" role-hint="default"
  * @author jdcasey
  * @version $Id$
  */
+@Component( role = ProjectTool.class )
 public class ProjectTool
 {
     /** Plexus role */
@@ -73,34 +76,22 @@ public class ProjectTool
 
     public static final String INTEGRATION_TEST_DEPLOYMENT_REPO_URL = "integration-test.deployment.repo.url";
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private BuildTool buildTool;
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Requirement
     private RepositoryTool repositoryTool;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ProjectBuilder projectBuilder;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactHandlerManager artifactHandlerManager;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactFactory artifactFactory;
 
-    /**
-     * @plexus.requirement
-     */    
+    @Requirement
     private ArtifactRepositoryFactory artifactRepositoryFactory;
 
     /**
@@ -250,6 +241,7 @@ public class ProjectTool
         {
             ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
             request.setLocalRepository( artifactRepositoryFactory.createArtifactRepository( "local", new File( "target/localrepo" ).getCanonicalFile().toURL().toExternalForm(), "default", null, null ) );
+            request.setRepositorySession( new MavenRepositorySystemSession() );
             MavenProject project = projectBuilder.build( pomInfo.getPomFile(), request ).getProject();
 
             Artifact artifact = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(), project

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/RepositoryTool.java
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/RepositoryTool.java?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/RepositoryTool.java (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/maven-plugin-testing-tools/src/main/java/org/apache/maven/shared/test/plugin/RepositoryTool.java Wed Oct 19 02:43:50 2011
@@ -32,15 +32,21 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugin.LegacySupport;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.context.ContextException;
@@ -61,36 +67,31 @@ import org.codehaus.plexus.util.xml.pull
  * plugin's ancestor POMs cannot be resolved.
  * </p>
  *
- * @plexus.component role="org.apache.maven.shared.test.plugin.RepositoryTool" role-hint="default"
  * @author jdcasey
  * @version $Id$
  */
+@Component( role = RepositoryTool.class )
 public class RepositoryTool
     implements Contextualizable
 {
     /** Plexus role */
     public static final String ROLE = RepositoryTool.class.getName();
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactRepositoryFactory repositoryFactory;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private MavenSettingsBuilder settingsBuilder;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactFactory artifactFactory;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactInstaller artifactInstaller;
 
+    @Requirement
+    private LegacySupport legacySupport;
+
     // contextualized.
     private PlexusContainer container;
 
@@ -217,6 +218,9 @@ public class RepositoryTool
             destination.getParentFile().mkdirs();
         }
 
+        legacySupport.setSession( new MavenSession( container, new MavenRepositorySystemSession(),
+                                                    new DefaultMavenExecutionRequest(),
+                                                    new DefaultMavenExecutionResult() ) );
         try
         {
             artifactInstaller.install( artifact.getFile(), artifact, localRepository );
@@ -226,6 +230,10 @@ public class RepositoryTool
             throw new TestToolsException( "Error installing plugin artifact to target local repository: "
                 + targetLocalRepoBasedir, e );
         }
+        finally
+        {
+            legacySupport.setSession( null );
+        }
 
         installLocallyReachableAncestorPoms( realPomFile, localRepository );
     }

Modified: maven/plugin-testing/branches/plugin-testing-mvn-3.x/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-testing/branches/plugin-testing-mvn-3.x/pom.xml?rev=1185951&r1=1185950&r2=1185951&view=diff
==============================================================================
--- maven/plugin-testing/branches/plugin-testing-mvn-3.x/pom.xml (original)
+++ maven/plugin-testing/branches/plugin-testing-mvn-3.x/pom.xml Wed Oct 19 02:43:50 2011
@@ -140,7 +140,7 @@ under the License.
   </distributionManagement>
 
   <properties>
-    <mavenVersion>3.0-alpha-4</mavenVersion>
+    <mavenVersion>3.0</mavenVersion>
     <plexusVersion>1.5.1</plexusVersion>
   </properties>
 
@@ -168,12 +168,10 @@ under the License.
         <artifactId>maven-plugin-api</artifactId>
         <version>${mavenVersion}</version>
       </dependency>    
- 
-    
       <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-container-default</artifactId>
-        <version>${plexusVersion}</version>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-aether-provider</artifactId>
+        <version>${mavenVersion}</version>
       </dependency>    
     
       <dependency>