Index: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/sub/MyBla.java
===================================================================
--- integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/sub/MyBla.java	(revision 0)
+++ integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/sub/MyBla.java	(revision 0)
@@ -0,0 +1,20 @@
+package org.apache.maven.plugin.coreit.sub;
+
+import org.apache.maven.plugin.coreit.Bla;
+
+/**
+ */
+public class MyBla implements Bla
+{
+    private String field;
+
+    public String getField()
+    {
+        return field; 
+    }
+
+    public void setField( String field)
+    {
+        this.field = field; 
+    }
+}

Property changes on: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/sub/MyBla.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ParameterImplementationMojo.java
===================================================================
--- integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ParameterImplementationMojo.java	(revision 0)
+++ integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ParameterImplementationMojo.java	(revision 0)
@@ -0,0 +1,32 @@
+package org.apache.maven.plugin.coreit;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+
+/**
+ * Check that we correctly use the implementation parameter. See MNG-2293
+ * 
+ * @goal param-implementation
+ *
+ * @description Prints out the name of the implementation of the bla field.
+ */
+public class ParameterImplementationMojo
+    extends AbstractMojo
+{
+    
+    /**
+     * @parameter implementation="org.apache.maven.plugin.coreit.sub.MyBla"
+     * @required
+     */
+    private Bla bla;
+    
+    public void execute()
+        throws MojoExecutionException
+    {
+
+        getLog().info( "bla: " + bla );
+        
+    }
+
+}

Property changes on: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ParameterImplementationMojo.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/Bla.java
===================================================================
--- integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/Bla.java	(revision 0)
+++ integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/Bla.java	(revision 0)
@@ -0,0 +1,7 @@
+package org.apache.maven.plugin.coreit;
+
+/**
+ */
+public interface Bla
+{
+}

Property changes on: integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/Bla.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: integration-tests/maven-core-it-plugin/pom.xml
===================================================================
--- integration-tests/maven-core-it-plugin/pom.xml	(revision 412427)
+++ integration-tests/maven-core-it-plugin/pom.xml	(working copy)
@@ -36,5 +36,10 @@
       <artifactId>bsh</artifactId>
       <version>1.3.0</version>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-10</version>
+    </dependency>
   </dependencies>
 </model>
Index: maven-plugin-tools/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java	(revision 412427)
+++ maven-plugin-tools/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java	(working copy)
@@ -20,11 +20,15 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.plugin.descriptor.Parameter;
 
 import java.io.File;
 import java.net.URL;
 import java.util.List;
 
+import source2.sub.MyBla;
+
 /**
  * @author jdcasey
  */
@@ -56,6 +60,40 @@
         assertEquals( 2, results.size() );
     }
 
+    public void testShouldPropagateImplementationParameter()
+        throws Exception
+    {
+        JavaMojoDescriptorExtractor extractor = new JavaMojoDescriptorExtractor();
+
+        File sourceFile = fileOf( "dir-flag.txt" );
+        System.out.println( "found source file: " + sourceFile );
+
+        File dir = sourceFile.getParentFile();
+
+        Model model = new Model();
+        model.setArtifactId( "maven-unitTesting-plugin" );
+
+        MavenProject project = new MavenProject( model );
+
+        project.setFile( new File( dir, "pom.xml" ) );
+        project.addCompileSourceRoot( new File( dir, "source2" ).getPath() );
+
+        PluginDescriptor pluginDescriptor = new PluginDescriptor();
+        pluginDescriptor.setGoalPrefix( "test" );
+        List results = extractor.execute( project, pluginDescriptor );
+        assertEquals( 1, results.size() );
+
+        MojoDescriptor mojoDescriptor = (MojoDescriptor) results.get( 0 );
+
+        List parameters = mojoDescriptor.getParameters();
+
+        assertEquals( 1, parameters.size() );
+
+        Parameter parameter = (Parameter) parameters.get( 0 );
+
+        assertEquals( MyBla.class.getName(), parameter.getImplementation() );
+    }
+
     private File fileOf( String classpathResource )
     {
         ClassLoader cl = Thread.currentThread().getContextClassLoader();
Index: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/JavaExtractorTestThree.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/JavaExtractorTestThree.java	(revision 0)
+++ maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/JavaExtractorTestThree.java	(revision 0)
@@ -0,0 +1,31 @@
+package source2;
+
+import org.apache.maven.plugin.AbstractMojo;
+
+/**
+ * Create an IDEA project file from a Maven project.
+ * @goal ideaThree
+ * @requiresDependencyResolution compile
+ */
+public class JavaExtractorTestThree
+    extends AbstractMojo
+{
+    /**
+     * Let's test the implementation argument
+     * @parameter implementation=source2.sub.MyBla
+     * @required
+     */
+    private Bla bla;
+
+    public JavaExtractorTestThree()
+    {
+    }
+
+    public void execute()
+    {
+        if ( getLog() != null )
+        {
+            getLog().info( "bla: " + bla );
+        }
+    }
+}

Property changes on: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/JavaExtractorTestThree.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/sub/MyBla.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/sub/MyBla.java	(revision 0)
+++ maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/sub/MyBla.java	(revision 0)
@@ -0,0 +1,7 @@
+package source2.sub;
+
+import source2.Bla;
+
+public class MyBla implements Bla
+{
+}

Property changes on: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/sub/MyBla.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/Bla.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/Bla.java	(revision 0)
+++ maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/Bla.java	(revision 0)
@@ -0,0 +1,5 @@
+package source2;
+
+public interface Bla
+{
+}

Property changes on: maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source2/Bla.java
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java	(revision 412427)
+++ maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java	(working copy)
@@ -60,6 +60,11 @@
     public static final String PARAMETER_DEFAULT_VALUE = "default-value";
 
     /**
+     * This defines the default implementation in the case the parameter type is an interface.
+     */
+    public static final String PARAMETER_IMPLEMENTATION = "implementation";
+
+    /**
      * This indicates the base name of the bean properties used to read/write this parameter's value.
      * So:
      *
@@ -422,6 +427,9 @@
                 }
 
                 pd.setDefaultValue( parameter.getNamedParameter( PARAMETER_DEFAULT_VALUE ) );
+
+                pd.setImplementation( parameter.getNamedParameter( PARAMETER_IMPLEMENTATION ) );
+                
             }
 
             mojoDescriptor.addParameter( pd );
Index: maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
===================================================================
--- maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java	(revision 412427)
+++ maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java	(working copy)
@@ -335,6 +335,11 @@
                         element( w, "deprecated", parameter.getDeprecated() );
                     }
 
+                    if ( parameter.getImplementation() != null )
+                    {
+                        element( w, "implementation", parameter.getImplementation() );
+                    }
+
                     element( w, "required", Boolean.toString( parameter.isRequired() ) );
 
                     element( w, "editable", Boolean.toString( parameter.isEditable() ) );
Index: maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
===================================================================
--- maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java	(revision 412427)
+++ maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java	(working copy)
@@ -909,6 +909,11 @@
                     }
                 }
 
+                if ( result.getAttribute( "implementation" ) == null  && parameter.getImplementation() != null )
+                {
+                    result.setAttribute( "implementation", parameter.getImplementation() );
+                }
+
                 if ( !addedPomConfig && mojoConfig != null )
                 {
                     result.addChild( copyConfiguration( mojoConfig ) );
Index: maven-core-it/it0107/log.txt
===================================================================
--- maven-core-it/it0107/log.txt	(revision 0)
+++ maven-core-it/it0107/log.txt	(revision 0)
@@ -0,0 +1,111 @@
+Listening for transport dt_socket at address: 5006
++ Error stacktraces are turned on.
+Maven version: 2.1-SNAPSHOT
+settings.getPluginGroups().size() = 0
+settings.getPluginGroups().size() = 0
+[INFO] Scanning for projects...
+[INFO] Reactor build order: 
+[INFO]   Unnamed - org.apache.maven:maven-core-it0106-child-project:jar:1.0
+[INFO]   Unnamed - org.apache.maven:maven-core-it0012:pom:3.8.1
+[INFO] Searching repository for plugin with prefix: 'clean'.
+[INFO] org.apache.maven.plugins: checking for updates from snapshots
+[INFO] org.apache.maven.plugins: checking for updates from central
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-metadata-snapshots.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-metadata-central.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-metadata-local.xml
+[INFO] org.codehaus.mojo: checking for updates from snapshots
+[INFO] org.codehaus.mojo: checking for updates from central
+Parsing /home/jerome/.m2/repository/org/codehaus/mojo/maven-metadata-snapshots.xml
+Parsing /home/jerome/.m2/repository/org/codehaus/mojo/maven-metadata-central.xml
+Parsing /home/jerome/.m2/repository/org/codehaus/mojo/maven-metadata-local.xml
+[INFO] artifact org.apache.maven.plugins:maven-clean-plugin: checking for updates from snapshots
+[INFO] artifact org.apache.maven.plugins:maven-clean-plugin: checking for updates from central
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-clean-plugin/maven-metadata-snapshots.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-clean-plugin/maven-metadata-central.xml
+[INFO] snapshot org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT: checking for updates from snapshots
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-core-it-plugin/1.0-SNAPSHOT/maven-metadata-snapshots.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-core-it-plugin/1.0-SNAPSHOT/maven-metadata-local.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-core-it-plugin/1.0-SNAPSHOT/maven-metadata-snapshots.xml
+Parsing /home/jerome/.m2/repository/org/apache/maven/plugins/maven-core-it-plugin/1.0-SNAPSHOT/maven-metadata-local.xml
+[INFO] ----------------------------------------------------------------------------
+[INFO] Building Unnamed - org.apache.maven:maven-core-it0106-child-project:jar:1.0
+[INFO]    task-segment: [clean:clean, core-it:param-implementation]
+[INFO] ----------------------------------------------------------------------------
+[INFO] [clean:clean]
+[INFO] Deleting directory /home/jerome/Dev/OSS/m2/maven-components/maven-core-it/it0107/child-project/target
+[INFO] Deleting directory /home/jerome/Dev/OSS/m2/maven-components/maven-core-it/it0107/child-project/target/classes
+[INFO] Deleting directory /home/jerome/Dev/OSS/m2/maven-components/maven-core-it/it0107/child-project/target/test-classes
+[INFO] ------------------------------------------------------------------------
+[ERROR] BUILD ERROR
+[INFO] ------------------------------------------------------------------------
+[INFO] One or more required plugin parameters are invalid/missing for 'core-it:param-implementation'
+
+[0] inside the definition for plugin: 'maven-core-it-plugin'specify the following:
+
+<configuration>
+  ...
+  <bla>VALUE</bla>
+</configuration>.
+
+[INFO] ------------------------------------------------------------------------
+[INFO] Trace
+org.apache.maven.lifecycle.LifecycleExecutionException: Error configuring: org.apache.maven.plugins:maven-core-it-plugin. Reason: Invalid or missing parameters: [Mojo parameter [name: 'bla'; alias: 'null']] for mojo: org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT:param-implementation
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:563)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:488)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:458)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
+	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:364)
+	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
+	at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:689)
+	at org.apache.maven.cli.MavenCli.main(MavenCli.java:372)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+	at java.lang.reflect.Method.invoke(Method.java:585)
+	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
+	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
+	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
+	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
+Caused by: org.apache.maven.plugin.PluginParameterException: Error configuring: org.apache.maven.plugins:maven-core-it-plugin. Reason: Invalid or missing parameters: [Mojo parameter [name: 'bla'; alias: 'null']] for mojo: org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT:param-implementation
+	at org.apache.maven.plugin.DefaultPluginManager.checkRequiredParameters(DefaultPluginManager.java:809)
+	at org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(DefaultPluginManager.java:574)
+	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:390)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
+	... 17 more
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 6 seconds
+[INFO] Finished at: Wed Jun 07 18:14:06 CEST 2006
+[INFO] Final Memory: 3M/6M
+[INFO] ------------------------------------------------------------------------
+FATAL ERROR: Unable to configure the Maven application
+Error stacktrace:
+org.apache.maven.reactor.MavenExecutionException: Error configuring: org.apache.maven.plugins:maven-core-it-plugin. Reason: Invalid or missing parameters: [Mojo parameter [name: 'bla'; alias: 'null']] for mojo: org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT:param-implementation
+	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:165)
+	at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:689)
+	at org.apache.maven.cli.MavenCli.main(MavenCli.java:372)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+	at java.lang.reflect.Method.invoke(Method.java:585)
+	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
+	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
+	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
+	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
+Caused by: org.apache.maven.lifecycle.LifecycleExecutionException: Error configuring: org.apache.maven.plugins:maven-core-it-plugin. Reason: Invalid or missing parameters: [Mojo parameter [name: 'bla'; alias: 'null']] for mojo: org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT:param-implementation
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:563)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:488)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:458)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
+	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:364)
+	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
+	... 10 more
+Caused by: org.apache.maven.plugin.PluginParameterException: Error configuring: org.apache.maven.plugins:maven-core-it-plugin. Reason: Invalid or missing parameters: [Mojo parameter [name: 'bla'; alias: 'null']] for mojo: org.apache.maven.plugins:maven-core-it-plugin:1.0-SNAPSHOT:param-implementation
+	at org.apache.maven.plugin.DefaultPluginManager.checkRequiredParameters(DefaultPluginManager.java:809)
+	at org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(DefaultPluginManager.java:574)
+	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:390)
+	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
+	... 17 more

Property changes on: maven-core-it/it0107/log.txt
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-core-it/it0107/goals.txt
===================================================================
--- maven-core-it/it0107/goals.txt	(revision 0)
+++ maven-core-it/it0107/goals.txt	(revision 0)
@@ -0,0 +1 @@
+core-it:param-implementation

Property changes on: maven-core-it/it0107/goals.txt
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-core-it/it0107/child-project/pom.xml
===================================================================
--- maven-core-it/it0107/child-project/pom.xml	(revision 0)
+++ maven-core-it/it0107/child-project/pom.xml	(revision 0)
@@ -0,0 +1,22 @@
+<model>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it0107-child-project</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.1-SNAPSHOT</version>
+        <goals>
+          <goal>param-implementation</goal>
+        </goals>
+        <configuration>
+          <!--outputDirectory>${basedir}/target/</outputDirectory-->
+          <bla><field>foobar</field></bla>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</model>

Property changes on: maven-core-it/it0107/child-project/pom.xml
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-core-it/it0107/pom.xml
===================================================================
--- maven-core-it/it0107/pom.xml	(revision 0)
+++ maven-core-it/it0107/pom.xml	(revision 0)
@@ -0,0 +1,28 @@
+<model>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it0107</artifactId>
+  <packaging>pom</packaging>
+  <version>3.8.1</version>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <configuration>
+          <pluginFile>touch-${version}.txt</pluginFile>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>snapshots</id>
+      <name>Maven Central Plugins Development Repository</name>
+      <url>http://snapshots.maven.codehaus.org/maven2</url>
+    </pluginRepository>
+  </pluginRepositories>
+  <modules>
+    <module>child-project</module>
+  </modules>
+</model>

Property changes on: maven-core-it/it0107/pom.xml
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-core-it/it0107/expected-results.txt
===================================================================
--- maven-core-it/it0107/expected-results.txt	(revision 0)
+++ maven-core-it/it0107/expected-results.txt	(revision 0)
@@ -0,0 +1,2 @@
+target/touch-3.8.1.txt
+child-project/target/child-touch-3.0.3.txt

Property changes on: maven-core-it/it0107/expected-results.txt
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-core-it/it0107/cli-options.txt
===================================================================
--- maven-core-it/it0107/cli-options.txt	(revision 0)
+++ maven-core-it/it0107/cli-options.txt	(revision 0)
@@ -0,0 +1 @@
+-X

Property changes on: maven-core-it/it0107/cli-options.txt
___________________________________________________________________
Name: svn:keywords
   + "Author Date Id Revision"
Name: svn:eol-style
   + native

Index: maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java
===================================================================
--- maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java	(revision 412427)
+++ maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java	(working copy)
@@ -40,6 +40,8 @@
 
     private String defaultValue;
 
+    private String implementation;
+
     private Requirement requirement;
 
     // ----------------------------------------------------------------------
@@ -160,4 +162,14 @@
     {
         this.requirement = requirement;
     }
+
+    public String getImplementation()
+    {
+        return implementation;
+    }
+
+    public void setImplementation( String implementation )
+    {
+        this.implementation = implementation;
+    }
 }
Index: maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
===================================================================
--- maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java	(revision 412427)
+++ maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java	(working copy)
@@ -103,6 +103,7 @@
     public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c, PluginDescriptor pluginDescriptor )
         throws PlexusConfigurationException
     {
+
         MojoDescriptor mojo = new MojoDescriptor();
         mojo.setPluginDescriptor( pluginDescriptor );
 
@@ -250,6 +251,8 @@
 
             parameter.setDeprecated( d.getChild( "deprecated" ).getValue() );
 
+            parameter.setImplementation( d.getChild( "implementation" ).getValue() );
+
             parameters.add( parameter );
         }
 

