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

svn commit: r1360251 [1/2] - in /maven/plugins/trunk/maven-javadoc-plugin: ./ src/main/java/org/apache/maven/plugin/javadoc/

Author: tchemit
Date: Wed Jul 11 16:01:25 2012
New Revision: 1360251

URL: http://svn.apache.org/viewvc?rev=1360251&view=rev
Log:
[MJAVADOC-346] use maven-plugin-tools' java 5 annotations 

Modified:
    maven/plugins/trunk/maven-javadoc-plugin/pom.xml
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocJar.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocReport.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocJar.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocReport.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/FixJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocJar.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/ResourcesBundleMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestFixJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestResourcesBundleMojo.java

Modified: maven/plugins/trunk/maven-javadoc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/pom.xml?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/pom.xml Wed Jul 11 16:01:25 2012
@@ -100,6 +100,11 @@ under the License.
       <artifactId>maven-artifact-manager</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <version>3.1</version>
+    </dependency>
 
     <!-- shared -->
     <dependency>
@@ -254,6 +259,13 @@ under the License.
     <pluginManagement>
       <plugins>
         <plugin>
+          <artifactId>maven-plugin-plugin</artifactId>
+          <version>3.1</version>
+          <configuration>
+            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+          </configuration>
+        </plugin>
+        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-shade-plugin</artifactId>
           <version>1.2.1</version>
@@ -302,6 +314,17 @@ under the License.
         </executions>
       </plugin>
       <plugin>
+        <artifactId>maven-plugin-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>generate-descriptor</id>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java Wed Jul 11 16:01:25 2012
@@ -19,6 +19,37 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import com.thoughtworks.qdox.JavaDocBuilder;
+import com.thoughtworks.qdox.model.AbstractInheritableJavaEntity;
+import com.thoughtworks.qdox.model.AbstractJavaEntity;
+import com.thoughtworks.qdox.model.Annotation;
+import com.thoughtworks.qdox.model.DocletTag;
+import com.thoughtworks.qdox.model.JavaClass;
+import com.thoughtworks.qdox.model.JavaField;
+import com.thoughtworks.qdox.model.JavaMethod;
+import com.thoughtworks.qdox.model.JavaParameter;
+import com.thoughtworks.qdox.model.Type;
+import com.thoughtworks.qdox.model.TypeVariable;
+import com.thoughtworks.qdox.parser.ParseException;
+import org.apache.commons.lang.ClassUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.invoker.MavenInvocationException;
+import org.codehaus.plexus.components.interactivity.InputHandler;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.WriterFactory;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -44,36 +75,6 @@ import java.util.StringTokenizer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.ClassUtils;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
-import org.apache.maven.shared.invoker.MavenInvocationException;
-import org.codehaus.plexus.components.interactivity.InputHandler;
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
-import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.WriterFactory;
-
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.AbstractInheritableJavaEntity;
-import com.thoughtworks.qdox.model.AbstractJavaEntity;
-import com.thoughtworks.qdox.model.Annotation;
-import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaField;
-import com.thoughtworks.qdox.model.JavaMethod;
-import com.thoughtworks.qdox.model.JavaParameter;
-import com.thoughtworks.qdox.model.Type;
-import com.thoughtworks.qdox.model.TypeVariable;
-import com.thoughtworks.qdox.parser.ParseException;
-
 /**
  * Abstract class to fix Javadoc documentation and tags in source files.
  * <br/>
@@ -152,15 +153,18 @@ public abstract class AbstractFixJavadoc
     /** The Clirr Maven plugin goal <code>check</code> **/
     private static final String CLIRR_MAVEN_PLUGIN_GOAL = "check";
 
+    public static final String JAVA_FILES = "**\\/*.java";
+
+    public static final String DEFAULT_VERSION_VALUE = "\u0024Id: \u0024Id";
+
     // ----------------------------------------------------------------------
     // Mojo components
     // ----------------------------------------------------------------------
 
     /**
      * Input handler, needed for command line handling.
-     *
-     * @component
      */
+    @Component
     private InputHandler inputHandler;
 
     // ----------------------------------------------------------------------
@@ -172,26 +176,22 @@ public abstract class AbstractFixJavadoc
      * <a href="http://mojo.codehaus.org/clirr-maven-plugin/">Clirr Maven Plugin</a>.
      * <br/>
      * See <a href="#defaultSince">defaultSince</a>.
-     *
-     * @parameter expression="${comparisonVersion}" default-value="(,${project.version})"
      */
+    @Parameter( property = "comparisonVersion", defaultValue = "(,${project.version})" )
     private String comparisonVersion;
 
     /**
      * Default value for the Javadoc tag <code>&#64;author</code>.
      * <br/>
      * If not specified, the <code>user.name</code> defined in the System properties will be used.
-     *
-     * @parameter expression="${defaultAuthor}"
      */
+    @Parameter( property = "defaultAuthor" )
     private String defaultAuthor;
 
     /**
      * Default value for the Javadoc tag <code>&#64;since</code>.
-     * <br/>
-     *
-     * @parameter expression="${defaultSince}" default-value="${project.version}"
      */
+    @Parameter( property = "defaultSince", defaultValue = "${project.version}" )
     private String defaultSince;
 
     /**
@@ -200,24 +200,21 @@ public abstract class AbstractFixJavadoc
      * By default, it is <code>&#36;Id:&#36;</code>, corresponding to a
      * <a href="http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.4">SVN keyword</a>.
      * Refer to your SCM to use an other SCM keyword.
-     *
-     * @parameter expression="${defaultVersion}"
      */
+    @Parameter( property = "defaultVersion", defaultValue = DEFAULT_VERSION_VALUE )
     private String defaultVersion = "\u0024Id: \u0024"; // can't use default-value="\u0024Id: \u0024"
 
     /**
      * The file encoding to use when reading the source files. If the property
      * <code>project.build.sourceEncoding</code> is not set, the platform default encoding is used.
-     *
-     * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
      */
+    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
     private String encoding;
 
     /**
      * Comma separated excludes Java files, i.e. <code>&#42;&#42;/&#42;Test.java</code>.
-     *
-     * @parameter expression="${excludes}"
      */
+    @Parameter( property = "excludes" )
     private String excludes;
 
     /**
@@ -233,51 +230,46 @@ public abstract class AbstractFixJavadoc
      * <li>throws (fix only &#64;throws tag)</li>
      * <li>link (fix only &#64;link tag)</li>
      * </ul>
-     *
-     * @parameter expression="${fixTags}" default-value="all"
      */
+    @Parameter( property = "fixTags", defaultValue = "all" )
     private String fixTags;
 
     /**
      * Flag to fix the classes or interfaces Javadoc comments according the <code>level</code>.
-     *
-     * @parameter expression="${fixClassComment}" default-value="true"
      */
+    @Parameter( property = "fixClassComment", defaultValue = "true" )
     private boolean fixClassComment;
 
     /**
      * Flag to fix the fields Javadoc comments according the <code>level</code>.
-     *
-     * @parameter expression="${fixFieldComment}" default-value="true"
      */
+    @Parameter( property = "fixFieldComment", defaultValue = "true" )
     private boolean fixFieldComment;
 
     /**
      * Flag to fix the methods Javadoc comments according the <code>level</code>.
-     *
-     * @parameter expression="${fixMethodComment}" default-value="true"
      */
+    @Parameter( property = "fixMethodComment", defaultValue = "true" )
     private boolean fixMethodComment;
 
     /**
      * Forcing the goal execution i.e. skip warranty messages (not recommended).
-     *
-     * @parameter expression="${force}"
      */
+    @Parameter( property = "force" )
     private boolean force;
 
     /**
      * Flag to ignore or not Clirr.
-     *
-     * @parameter expression="${ignoreClirr}" default-value="false"
      */
+    @Parameter( property = "ignoreClirr", defaultValue = "false" )
     protected boolean ignoreClirr;
 
     /**
      * Comma separated includes Java files, i.e. <code>&#42;&#42;/&#42;Test.java</code>.
-     *
-     * @parameter expression="${includes}" default-value="**\/*.java"
+     * <p/>
+     * <strong>Note:</strong> default value is {@code **\/*.java}.
      */
+    @Parameter( property = "includes", defaultValue = JAVA_FILES )
     private String includes;
 
     /**
@@ -293,42 +285,32 @@ public abstract class AbstractFixJavadoc
      * <li><a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#private">private</a>
      * (shows all classes and members)</li>
      * </ul>
-     * <br/>
-     *
-     * @parameter expression="${level}" default-value="protected"
      */
+    @Parameter( property = "level", defaultValue = "protected" )
     private String level;
 
     /**
      * The local repository where the artifacts are located, used by the tests.
-     *
-     * @parameter expression="${localRepository}"
      */
+    @Parameter( property = "localRepository" )
     private ArtifactRepository localRepository;
 
     /**
      * Output directory where Java classes will be rewritten.
-     *
-     * @parameter expression="${outputDirectory}" default-value="${project.build.sourceDirectory}"
      */
+    @Parameter( property = "outputDirectory", defaultValue = "${project.build.sourceDirectory}" )
     private File outputDirectory;
 
     /**
      * The Maven Project Object.
-     *
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
      */
+    @Component
     private MavenProject project;
 
     /**
      * The current user system settings for use in Maven.
-     *
-     * @parameter expression="${settings}"
-     * @required
-     * @readonly
      */
+    @Component
     private Settings settings;
 
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java Wed Jul 11 16:01:25 2012
@@ -89,6 +89,8 @@ import org.apache.maven.plugin.javadoc.o
 import org.apache.maven.plugin.javadoc.resolver.JavadocBundle;
 import org.apache.maven.plugin.javadoc.resolver.ResourceResolver;
 import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
@@ -123,7 +125,6 @@ import org.codehaus.plexus.util.xml.Xpp3
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.0
- * @requiresDependencyResolution compile
  * @see <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html">
  * The Java API Documentation Generator, 1.4.2</a>
  */
@@ -249,41 +250,40 @@ public abstract class AbstractJavadocMoj
      * Archiver manager
      *
      * @since 2.5
-     * @component
      */
+    @Component
     private ArchiverManager archiverManager;
 
     /**
      * Factory for creating artifact objects
-     *
-     * @component
      */
+    @Component
     private ArtifactFactory factory;
 
     /**
      * Used to resolve artifacts of aggregated modules
      *
      * @since 2.1
-     * @component
      */
+    @Component
     private ArtifactMetadataSource artifactMetadataSource;
 
     /**
      * Used for resolving artifacts
-     *
-     * @component
      */
+    @Component
     private ArtifactResolver resolver;
 
     /**
      * Project builder
      *
      * @since 2.5
-     * @component
      */
+    @Component
     private MavenProjectBuilder mavenProjectBuilder;
 
-    /** @component */
+    /** */
+    @Component
     private ToolchainManager toolchainManager;
 
     // ----------------------------------------------------------------------
@@ -293,39 +293,28 @@ public abstract class AbstractJavadocMoj
     /**
      * The current build session instance. This is used for
      * toolchain manager API calls.
-     *
-     * @parameter expression="${session}"
-     * @required
-     * @readonly
      */
+    @Component
     private MavenSession session;
 
     /**
      * The Maven Settings.
      *
      * @since 2.3
-     * @parameter default-value="${settings}"
-     * @required
-     * @readonly
      */
+    @Component
     private Settings settings;
 
     /**
      * The Maven Project Object
-     *
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
      */
+    @Component
     protected MavenProject project;
 
     /**
      * Specify if the Javadoc should operate in offline mode.
-     *
-     * @parameter default-value="${settings.offline}"
-     * @required
-     * @readonly
      */
+    @Parameter( defaultValue = "${settings.offline}", required = true, readonly = true )
     private boolean isOffline;
 
     /**
@@ -335,18 +324,17 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="#docfilessubdirs">docfilessubdirs</a>.
      *
-     * @since 2.1
-     * @parameter expression="${basedir}/src/main/javadoc"
      * @see #docfilessubdirs
+     * @since 2.1
      */
+    @Parameter( defaultValue = "${basedir}/src/main/javadoc" )
     private File javadocDirectory;
 
     /**
      * Set an additional parameter(s) on the command line. This value should include quotes as necessary for
      * parameters that include spaces. Useful for a custom doclet.
-     *
-     * @parameter expression="${additionalparam}"
      */
+    @Parameter( property = "additionalparam" )
     private String additionalparam;
 
     /**
@@ -362,8 +350,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/guide/net/properties.html">Networking Properties</a>.
      *
      * @since 2.3
-     * @parameter expression="${additionalJOption}"
      */
+    @Parameter( property = "additionalJOption" )
     private String additionalJOption;
 
     /**
@@ -385,38 +373,34 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.5
-     * @parameter expression="${resourcesArtifacts}"
      */
+    @Parameter( property = "resourcesArtifacts" )
     private ResourcesArtifact[] resourcesArtifacts;
 
     /**
      * The local repository where the artifacts are located.
-     *
-     * @parameter expression="${localRepository}"
      */
+    @Parameter( property = "localRepository" )
     private ArtifactRepository localRepository;
 
     /**
      * The remote repositories where artifacts are located.
-     *
-     * @parameter expression="${project.remoteArtifactRepositories}"
      */
+    @Parameter( property = "project.remoteArtifactRepositories" )
     private List<ArtifactRepository> remoteRepositories;
 
     /**
      * The projects in the reactor for aggregation report.
-     *
-     * @parameter expression="${reactorProjects}"
-     * @readonly
      */
+    @Parameter( property = "reactorProjects", readonly = true )
     private List<MavenProject> reactorProjects;
 
     /**
      * Whether to build an aggregated report at the root, or build individual reports.
      *
-     * @parameter expression="${aggregate}" default-value="false"
      * @deprecated since 2.5. Use the goals <code>javadoc:aggregate</code> and <code>javadoc:test-aggregate</code> instead.
      */
+    @Parameter( property = "aggregate", defaultValue = "false" )
     protected boolean aggregate;
 
     /**
@@ -425,8 +409,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${debug}" default-value="false"
      */
+    @Parameter( property = "debug", defaultValue = "false" )
     private boolean debug;
 
     /**
@@ -434,16 +418,16 @@ public abstract class AbstractJavadocMoj
      * is sufficient to have the plugin use "javadoc" or "javadoc.exe" respectively from this directory.
      *
      * @since 2.3
-     * @parameter expression="${javadocExecutable}"
      */
+    @Parameter( property = "javadocExecutable" )
     private String javadocExecutable;
 
     /**
      * Version of the Javadoc Tool executable to use, ex. "1.3", "1.5".
      *
      * @since 2.3
-     * @parameter expression="${javadocVersion}"
      */
+    @Parameter( property = "javadocVersion" )
     private String javadocVersion;
 
     /**
@@ -455,16 +439,16 @@ public abstract class AbstractJavadocMoj
      * Specifies whether the Javadoc generation should be skipped.
      *
      * @since 2.5
-     * @parameter expression="${maven.javadoc.skip}" default-value="false"
      */
+    @Parameter( property = "maven.javadoc.skip", defaultValue = "false" )
     protected boolean skip;
 
     /**
      * Specifies if the build will fail if there are errors during javadoc execution or not.
      *
-     * @parameter expression="${maven.javadoc.failOnError}" default-value="true"
      * @since 2.5
      */
+    @Parameter( property = "maven.javadoc.failOnError", defaultValue = "true" )
     protected boolean failOnError;
 
     /**
@@ -483,9 +467,9 @@ public abstract class AbstractJavadocMoj
      * &lt;useStandardDocletOptions&gt;true&lt;/useStandardDocletOptions&gt;
      * </pre>
      *
-     * @parameter expression="${useStandardDocletOptions}" default-value="true"
      * @since 2.5
      */
+    @Parameter( property = "useStandardDocletOptions", defaultValue = "true" )
     protected boolean useStandardDocletOptions;
 
     /**
@@ -502,10 +486,10 @@ public abstract class AbstractJavadocMoj
      * </pre>
      * The added Javadoc <code>-link</code> parameter will be <code>http://commons.apache.org/lang/apidocs</code>.
      *
-     * @parameter expression="${detectLinks}" default-value="false"
      * @see #links
      * @since 2.6
      */
+    @Parameter( property = "detectLinks", defaultValue = "false" )
     private boolean detectLinks;
 
     /**
@@ -521,10 +505,10 @@ public abstract class AbstractJavadocMoj
      * The added Javadoc <code>-linkoffline</code> parameter for <b>module2</b> will be
      * <code>/absolute/path/to/</code><b>module1</b><code>/target/site/apidocs</code>
      *
-     * @parameter expression="${detectOfflineLinks}" default-value="true"
      * @see #offlineLinks
      * @since 2.6
      */
+    @Parameter( property = "detectOfflineLinks", defaultValue = "true" )
     private boolean detectOfflineLinks;
 
     /**
@@ -539,12 +523,12 @@ public abstract class AbstractJavadocMoj
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.html#DEFAULT_JAVA_API_LINKS">Javadoc</a> for the default values.
      * <br/>
      *
-     * @parameter expression="${detectJavaApiLink}" default-value="true"
      * @see #links
      * @see #javaApiLinks
      * @see #DEFAULT_JAVA_API_LINKS
      * @since 2.6
      */
+    @Parameter( property = "detectJavaApiLink", defaultValue = "true" )
     private boolean detectJavaApiLink;
 
     /**
@@ -555,19 +539,19 @@ public abstract class AbstractJavadocMoj
      * for the default values.
      * <br/>
      *
-     * @parameter expression="${javaApiLinks}"
      * @see #DEFAULT_JAVA_API_LINKS
      * @since 2.6
      */
+    @Parameter( property = "javaApiLinks" )
     private Properties javaApiLinks;
 
     /**
      * Flag controlling content validation of <code>package-list</code> resources. If set, the content of
      * <code>package-list</code> resources will be validated.
      *
-     * @parameter expression="${validateLinks}" default-value="false"
      * @since 2.8
      */
+    @Parameter( property = "validateLinks", defaultValue = "false" )
     private boolean validateLinks;
 
     // ----------------------------------------------------------------------
@@ -581,9 +565,9 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#bootclasspath">bootclasspath</a>.
      * <br/>
      *
-     * @parameter expression="${bootclasspath}"
      * @since 2.5
      */
+    @Parameter( property = "bootclasspath" )
     private String bootclasspath;
 
     /**
@@ -605,9 +589,9 @@ public abstract class AbstractJavadocMoj
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/BootclasspathArtifact.html">Javadoc</a>.
      * <br/>
      *
-     * @parameter expression="${bootclasspathArtifacts}"
      * @since 2.5
      */
+    @Parameter( property = "bootclasspathArtifacts" )
     private BootclasspathArtifact[] bootclasspathArtifacts;
 
     /**
@@ -617,18 +601,16 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
      * <br/>
-     *
-     * @parameter expression="${breakiterator}" default-value="false"
      */
+    @Parameter( property = "breakiterator", defaultValue = "false" )
     private boolean breakiterator;
 
     /**
      * Specifies the class file that starts the doclet used in generating the documentation.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#doclet">doclet</a>.
-     *
-     * @parameter expression="${doclet}"
      */
+    @Parameter( property = "doclet" )
     private String doclet;
 
     /**
@@ -648,9 +630,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/DocletArtifact.html">Javadoc</a>.
      * <br/>
-     *
-     * @parameter expression="${docletArtifact}"
      */
+    @Parameter( property = "docletArtifact" )
     private DocletArtifact docletArtifact;
 
     /**
@@ -674,8 +655,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${docletArtifacts}"
      */
+    @Parameter( property = "docletArtifacts" )
     private DocletArtifact[] docletArtifacts;
 
     /**
@@ -684,9 +665,8 @@ public abstract class AbstractJavadocMoj
      * a colon (<code>:</code>) or a semi-colon (<code>;</code>).
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#docletpath">docletpath</a>.
-     *
-     * @parameter expression="${docletPath}"
      */
+    @Parameter( property = "docletPath" )
     private String docletPath;
 
     /**
@@ -698,9 +678,8 @@ public abstract class AbstractJavadocMoj
      * <b>Note</b>: In 2.4, the default value was locked to <code>ISO-8859-1</code> to ensure reproducing build, but
      * this was reverted in 2.5.
      * <br/>
-     *
-     * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
      */
+    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
     private String encoding;
 
     /**
@@ -716,9 +695,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#exclude">exclude</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${excludePackageNames}"
      */
+    @Parameter( property = "excludePackageNames" )
     private String excludePackageNames;
 
     /**
@@ -726,18 +704,16 @@ public abstract class AbstractJavadocMoj
      * colon (<code>:</code>) or a semi-colon (<code>;</code>).
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#extdirs">extdirs</a>.
-     *
-     * @parameter expression="${extdirs}"
      */
+    @Parameter( property = "extdirs" )
     private String extdirs;
 
     /**
      * Specifies the locale that javadoc uses when generating documentation.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#locale">locale</a>.
-     *
-     * @parameter expression="${locale}"
      */
+    @Parameter( property = "locale" )
     private String locale;
 
     /**
@@ -745,10 +721,9 @@ public abstract class AbstractJavadocMoj
      * JVMs refer to this property as the <code>-Xmx</code> parameter. Example: '512' or '512m'.
      * The memory unit depends on the JVM used. The units supported could be: <code>k</code>, <code>kb</code>,
      * <code>m</code>, <code>mb</code>, <code>g</code>, <code>gb</code>, <code>t</code>, <code>tb</code>.
-     *  If no unit specified, the default unit is <code>m</code>.
-     *
-     * @parameter expression="${maxmemory}"
+     * If no unit specified, the default unit is <code>m</code>.
      */
+    @Parameter( property = "maxmemory" )
     private String maxmemory;
 
     /**
@@ -756,10 +731,9 @@ public abstract class AbstractJavadocMoj
      * JVMs refer to this property as the <code>-Xms</code> parameter. Example: '512' or '512m'.
      * The memory unit depends on the JVM used. The units supported could be: <code>k</code>, <code>kb</code>,
      * <code>m</code>, <code>mb</code>, <code>g</code>, <code>gb</code>, <code>t</code>, <code>tb</code>.
-     *  If no unit specified, the default unit is <code>m</code>.
-     *
-     * @parameter expression="${minmemory}"
+     * If no unit specified, the default unit is <code>m</code>.
      */
+    @Parameter( property = "minmemory" )
     private String minmemory;
 
     /**
@@ -768,9 +742,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#1.1">1.1</a>.
      * <br/>
-     *
-     * @parameter expression="${old}" default-value="false"
      */
+    @Parameter( property = "old", defaultValue = "false" )
     private boolean old;
 
     /**
@@ -781,9 +754,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#overview">overview</a>.
      * <br/>
-     *
-     * @parameter expression="${overview}" default-value="${basedir}/src/main/javadoc/overview.html"
      */
+    @Parameter( property = "overview", defaultValue = "${basedir}/src/main/javadoc/overview.html" )
     private File overview;
 
     /**
@@ -792,9 +764,9 @@ public abstract class AbstractJavadocMoj
      * proxy configuration set in the pom.
      * <br/>
      *
-     * @parameter expression="${proxyHost}"
      * @deprecated since 2.4. Instead of, configure an active proxy host in <code>settings.xml</code>.
      */
+    @Parameter( property = "proxyHost" )
     private String proxyHost;
 
     /**
@@ -803,9 +775,9 @@ public abstract class AbstractJavadocMoj
      * proxy configuration set in the pom.
      * <br/>
      *
-     * @parameter expression="${proxyPort}"
      * @deprecated since 2.4. Instead of, configure an active proxy port in <code>settings.xml</code>.
      */
+    @Parameter( property = "proxyPort" )
     private int proxyPort;
 
     /**
@@ -819,9 +791,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since Java 5.0.
      * <br/>
-     *
-     * @parameter expression="${quiet}" default-value="false"
      */
+    @Parameter( property = "quiet", defaultValue = "false" )
     private boolean quiet;
 
     /**
@@ -838,9 +809,8 @@ public abstract class AbstractJavadocMoj
      * (shows all classes and members)</li>
      * </ul>
      * <br/>
-     *
-     * @parameter expression="${show}" default-value="protected"
      */
+    @Parameter( property = "show", defaultValue = "protected" )
     private String show;
 
     /**
@@ -849,9 +819,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/6/docs/technotes/tools/windows/javadoc.html#source">source</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${source}"
      */
+    @Parameter( property = "source" )
     private String source;
 
     /**
@@ -859,9 +828,8 @@ public abstract class AbstractJavadocMoj
      * multiple paths by separating them with a colon (<code>:</code>) or a semi-colon (<code>;</code>).
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#sourcepath">sourcepath</a>.
-     *
-     * @parameter expression="${sourcepath}"
      */
+    @Parameter( property = "sourcepath" )
     private String sourcepath;
 
     /**
@@ -871,9 +839,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#subpackages">subpackages</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${subpackages}"
      */
+    @Parameter( property = "subpackages" )
     private String subpackages;
 
     /**
@@ -881,9 +848,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#verbose">verbose</a>.
      * <br/>
-     *
-     * @parameter expression="${verbose}" default-value="false"
      */
+    @Parameter( property = "verbose", defaultValue = "false" )
     private boolean verbose;
 
     // ----------------------------------------------------------------------
@@ -895,9 +861,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#author">author</a>.
      * <br/>
-     *
-     * @parameter expression="${author}" default-value="true"
      */
+    @Parameter( property = "author", defaultValue = "true" )
     private boolean author;
 
     /**
@@ -907,10 +872,9 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#bottom">bottom</a>.
      * <br/>
-     *
-     * @parameter expression="${bottom}"
-     * default-value="Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved."
      */
+    @Parameter( property = "bottom",
+                defaultValue = "Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved." )
     private String bottom;
 
     /**
@@ -919,9 +883,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#charset">charset</a>.
      * <br/>
-     *
-     * @parameter expression="${charset}"
      */
+    @Parameter( property = "charset" )
     private String charset;
 
     /**
@@ -929,9 +892,8 @@ public abstract class AbstractJavadocMoj
      * <code>UTF-8</code>.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#docencoding">docencoding</a>.
-     *
-     * @parameter expression="${docencoding}" default-value="${project.reporting.outputEncoding}"
      */
+    @Parameter( property = "docencoding", defaultValue = "${project.reporting.outputEncoding}" )
     private String docencoding;
 
     /**
@@ -947,10 +909,10 @@ public abstract class AbstractJavadocMoj
      * See <a href="#javadocDirectory">javadocDirectory</a>.
      * <br/>
      *
-     * @parameter expression="${docfilessubdirs}" default-value="false"
      * @see #excludedocfilessubdir
      * @see #javadocDirectory
      */
+    @Parameter( property = "docfilessubdirs", defaultValue = "false" )
     private boolean docfilessubdirs;
 
     /**
@@ -958,9 +920,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#doctitle">doctitle</a>.
      * <br/>
-     *
-     * @parameter expression="${doctitle}" default-value="${project.name} ${project.version} API"
      */
+    @Parameter( property = "doctitle", defaultValue = "${project.name} ${project.version} API" )
     private String doctitle;
 
     /**
@@ -972,18 +933,17 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
      *
-     * @parameter expression="${excludedocfilessubdir}"
      * @see #docfilessubdirs
      */
+    @Parameter( property = "excludedocfilessubdir" )
     private String excludedocfilessubdir;
 
     /**
      * Specifies the footer text to be placed at the bottom of each output file.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#footer">footer</a>.
-     *
-     * @parameter expression="${footer}"
      */
+    @Parameter( property = "footer" )
     private String footer;
 
     /**
@@ -1017,18 +977,16 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/Group.html">Javadoc</a>.
      * <br/>
-     *
-     * @parameter expression="${groups}"
      */
+    @Parameter( property = "groups" )
     private Group[] groups;
 
     /**
      * Specifies the header text to be placed at the top of each output file.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#header">header</a>.
-     *
-     * @parameter expression="${header}"
      */
+    @Parameter( property = "header" )
     private String header;
 
     /**
@@ -1041,7 +999,7 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since 2.6, it could be also be a path from a resource in the current project source directories
      * (i.e. <code>src/main/java</code>, <code>src/main/resources</code> or <code>src/main/javadoc</code>)
-     *  or from a resource in the Javadoc plugin dependencies, for instance:
+     * or from a resource in the Javadoc plugin dependencies, for instance:
      * <pre>
      * &lt;helpfile&gt;path/to/your/resource/yourhelp-doc.html&lt;/helpfile&gt;
      * </pre>
@@ -1072,9 +1030,8 @@ public abstract class AbstractJavadocMoj
      * <code>groupId:artifactId:version</code> javadoc plugin dependency.
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#helpfile">helpfile</a>.
-     *
-     * @parameter expression="${helpfile}"
      */
+    @Parameter( property = "helpfile" )
     private String helpfile;
 
     /**
@@ -1090,8 +1047,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${keywords}" default-value="false"
      */
+    @Parameter( property = "keywords", defaultValue = "false" )
     private boolean keywords;
 
     /**
@@ -1114,10 +1071,10 @@ public abstract class AbstractJavadocMoj
      * </ol>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#link">link</a>.
      *
-     * @parameter expression="${links}"
      * @see #detectLinks
      * @see #detectJavaApiLink
      */
+    @Parameter( property = "links" )
     protected ArrayList<String> links;
 
     /**
@@ -1128,9 +1085,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
      * <br/>
-     *
-     * @parameter expression="${linksource}" default-value="false"
      */
+    @Parameter( property = "linksource", defaultValue = "false" )
     private boolean linksource;
 
     /**
@@ -1140,9 +1096,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
      * <br/>
-     *
-     * @parameter expression="${nocomment}" default-value="false"
      */
+    @Parameter( property = "nocomment", defaultValue = "false" )
     private boolean nocomment;
 
     /**
@@ -1150,9 +1105,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#nodeprecated">nodeprecated</a>.
      * <br/>
-     *
-     * @parameter expression="${nodeprecated}" default-value="false"
      */
+    @Parameter( property = "nodeprecated", defaultValue = "false" )
     private boolean nodeprecated;
 
     /**
@@ -1162,9 +1116,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#nodeprecatedlist">
      * nodeprecatedlist</a>.
      * <br/>
-     *
-     * @parameter expression="${nodeprecatedlist}" default-value="false"
      */
+    @Parameter( property = "nodeprecatedlist", defaultValue = "false" )
     private boolean nodeprecatedlist;
 
     /**
@@ -1174,9 +1127,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#nohelp">nohelp</a>.
      * <br/>
-     *
-     * @parameter expression="${nohelp}" default-value="false"
      */
+    @Parameter( property = "nohelp", defaultValue = "false" )
     private boolean nohelp;
 
     /**
@@ -1186,9 +1138,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#noindex">noindex</a>.
      * <br/>
-     *
-     * @parameter expression="${noindex}" default-value="false"
      */
+    @Parameter( property = "noindex", defaultValue = "false" )
     private boolean noindex;
 
     /**
@@ -1196,9 +1147,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#nonavbar">nonavbar</a>.
      * <br/>
-     *
-     * @parameter expression="${nonavbar}" default-value="false"
      */
+    @Parameter( property = "nonavbar", defaultValue = "false" )
     private boolean nonavbar;
 
     /**
@@ -1210,8 +1160,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.4
-     * @parameter expression="${nooverview}" default-value="false"
      */
+    @Parameter( property = "nooverview", defaultValue = "false" )
     private boolean nooverview;
 
     /**
@@ -1225,9 +1175,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#noqualifier">noqualifier</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${noqualifier}"
      */
+    @Parameter( property = "noqualifier" )
     private String noqualifier;
 
     /**
@@ -1235,9 +1184,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#nosince">nosince</a>.
      * <br/>
-     *
-     * @parameter expression="${nosince}" default-value="false"
      */
+    @Parameter( property = "nosince", defaultValue = "false" )
     private boolean nosince;
 
     /**
@@ -1250,8 +1198,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${notimestamp}" default-value="false"
      */
+    @Parameter( property = "notimestamp", defaultValue = "false" )
     private boolean notimestamp;
 
     /**
@@ -1259,9 +1207,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#notree">notree</a>.
      * <br/>
-     *
-     * @parameter expression="${notree}" default-value="false"
      */
+    @Parameter( property = "notree", defaultValue = "false" )
     private boolean notree;
 
     /**
@@ -1285,9 +1232,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/OfflineLink.html">Javadoc</a>.
      * <br/>
-     *
-     * @parameter expression="${offlineLinks}"
      */
+    @Parameter( property = "offlineLinks" )
     private OfflineLink[] offlineLinks;
 
     /**
@@ -1295,10 +1241,9 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#d">d</a>.
      * <br/>
-     *
-     * @parameter expression="${destDir}" alias="destDir" default-value="${project.build.directory}/apidocs"
-     * @required
      */
+    @Parameter( property = "destDir", alias = "destDir", defaultValue = "${project.build.directory}/apidocs",
+                required = true )
     protected File outputDirectory;
 
     /**
@@ -1308,8 +1253,8 @@ public abstract class AbstractJavadocMoj
      * Java 1.4.2</a>.
      *
      * @since 2.1
-     * @parameter expression="${packagesheader}"
      */
+    @Parameter( property = "packagesheader" )
     private String packagesheader;
 
     /**
@@ -1317,9 +1262,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#serialwarn">serialwarn</a>
      * <br/>
-     *
-     * @parameter expression="${serialwarn}" default-value="false"
      */
+    @Parameter( property = "serialwarn", defaultValue = "false" )
     private boolean serialwarn;
 
     /**
@@ -1335,8 +1279,8 @@ public abstract class AbstractJavadocMoj
      * Since Java 5.0.
      *
      * @since 2.1
-     * @parameter expression="${sourcetab}" alias="linksourcetab"
      */
+    @Parameter( property = "sourcetab", alias = "linksourcetab" )
     private int sourcetab;
 
     /**
@@ -1347,9 +1291,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#splitindex">splitindex</a>.
      * <br/>
-     *
-     * @parameter expression="${splitindex}" default-value="false"
      */
+    @Parameter( property = "splitindex", defaultValue = "false" )
     private boolean splitindex;
 
     /**
@@ -1358,9 +1301,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Possible values: <code>maven<code> or <code>java</code>.
      * <br/>
-     *
-     * @parameter expression="${stylesheet}" default-value="java"
      */
+    @Parameter( property = "stylesheet", defaultValue = "java" )
     private String stylesheet;
 
     /**
@@ -1370,7 +1312,7 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * Since 2.6, it could be also be a path from a resource in the current project source directories
      * (i.e. <code>src/main/java</code>, <code>src/main/resources</code> or <code>src/main/javadoc</code>)
-     *  or from a resource in the Javadoc plugin dependencies, for instance:
+     * or from a resource in the Javadoc plugin dependencies, for instance:
      * <pre>
      * &lt;stylesheetfile&gt;path/to/your/resource/yourstylesheet.css&lt;/stylesheetfile&gt;
      * </pre>
@@ -1402,9 +1344,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#stylesheetfile">
      * stylesheetfile</a>.
-     *
-     * @parameter expression="${stylesheetfile}"
      */
+    @Parameter( property = "stylesheetfile" )
     private String stylesheetfile;
 
     /**
@@ -1413,9 +1354,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#taglet">taglet</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${taglet}"
      */
+    @Parameter( property = "taglet" )
     private String taglet;
 
     /**
@@ -1445,8 +1385,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${tagletArtifact}"
      */
+    @Parameter( property = "tagletArtifact" )
     private TagletArtifact tagletArtifact;
 
     /**
@@ -1473,8 +1413,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.5
-     * @parameter expression="${tagletArtifacts}"
      */
+    @Parameter( property = "tagletArtifacts" )
     private TagletArtifact[] tagletArtifacts;
 
     /**
@@ -1484,9 +1424,8 @@ public abstract class AbstractJavadocMoj
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#tagletpath">tagletpath</a>.
      * <br/>
      * Since <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/javadoc/whatsnew-1.4.html#summary">Java 1.4</a>.
-     *
-     * @parameter expression="${tagletpath}"
      */
+    @Parameter( property = "tagletpath" )
     private String tagletpath;
 
     /**
@@ -1515,8 +1454,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${taglets}"
      */
+    @Parameter( property = "taglets" )
     private Taglet[] taglets;
 
     /**
@@ -1538,20 +1477,19 @@ public abstract class AbstractJavadocMoj
      * </pre>
      * <b>Note</b>: the placement should be a combinaison of Xaoptcmf letters:
      * <ul>
-     *   <li><b><code>X</code></b> (disable tag)</li>
-     *   <li><b><code>a</code></b> (all)</li>
-     *   <li><b><code>o</code></b> (overview)</li>
-     *   <li><b><code>p</code></b> (packages)</li>
-     *   <li><b><code>t</code></b> (types, that is classes and interfaces)</li>
-     *   <li><b><code>c</code></b> (constructors)</li>
-     *   <li><b><code>m</code></b> (methods)</li>
-     *   <li><b><code>f</code></b> (fields)</li>
+     * <li><b><code>X</code></b> (disable tag)</li>
+     * <li><b><code>a</code></b> (all)</li>
+     * <li><b><code>o</code></b> (overview)</li>
+     * <li><b><code>p</code></b> (packages)</li>
+     * <li><b><code>t</code></b> (types, that is classes and interfaces)</li>
+     * <li><b><code>c</code></b> (constructors)</li>
+     * <li><b><code>m</code></b> (methods)</li>
+     * <li><b><code>f</code></b> (fields)</li>
      * </ul>
      * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/Tag.html">Javadoc</a>.
      * <br/>
-     *
-     * @parameter expression="${tags}"
      */
+    @Parameter( property = "tags" )
     private Tag[] tags;
 
     /**
@@ -1562,8 +1500,8 @@ public abstract class AbstractJavadocMoj
      * Since Java 6.0
      *
      * @since 2.4
-     * @parameter expression="${top}"
      */
+    @Parameter( property = "top" )
     private String top;
 
     /**
@@ -1571,9 +1509,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#use">use</a>.
      * <br/>
-     *
-     * @parameter expression="${use}" default-value="true"
      */
+    @Parameter( property = "use", defaultValue = "true" )
     private boolean use;
 
     /**
@@ -1581,9 +1518,8 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#version">version</a>.
      * <br/>
-     *
-     * @parameter expression="${version}" default-value="true"
      */
+    @Parameter( property = "version", defaultValue = "true" )
     private boolean version;
 
     /**
@@ -1591,71 +1527,69 @@ public abstract class AbstractJavadocMoj
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#windowtitle">windowtitle</a>.
      * <br/>
-     *
-     * @parameter expression="${windowtitle}" default-value="${project.name} ${project.version} API"
      */
+    @Parameter( property = "windowtitle", defaultValue = "${project.name} ${project.version} API" )
     private String windowtitle;
 
     /**
      * Whether dependency -sources jars should be resolved and included as source paths for javadoc generation.
      * This is useful when creating javadocs for a distribution project.
-     * 
-     * @parameter default-value="false"
+     *
      * @since 2.7
      */
+    @Parameter( defaultValue = "false" )
     private boolean includeDependencySources;
 
     /**
      * Directory where unpacked project sources / test-sources should be cached.
      *
-     * @parameter default-value="${project.build.directory}/distro-javadoc-sources"
-     * @since 2.7
      * @see #includeDependencySources
+     * @since 2.7
      */
+    @Parameter( defaultValue = "${project.build.directory}/distro-javadoc-sources" )
     private File sourceDependencyCacheDir;
 
     /**
      * Whether to include transitive dependencies in the list of dependency -sources jars to include
      * in this javadoc run.
-     * 
-     * @parameter default-value="false"
-     * @since 2.7
+     *
      * @see #includeDependencySources
+     * @since 2.7
      */
+    @Parameter( defaultValue = "false" )
     private boolean includeTransitiveDependencySources;
-    
+
     /**
      * List of included dependency-source patterns. Example: <code>org.apache.maven:*</code>
-     * 
-     * @parameter
-     * @since 2.7
+     *
      * @see #includeDependencySources
+     * @since 2.7
      */
+    @Parameter
     private List<String> dependencySourceIncludes;
 
     /**
      * List of excluded dependency-source patterns. Example: <code>org.apache.maven.shared:*</code>
-     * 
-     * @parameter
-     * @since 2.7
+     *
      * @see #includeDependencySources
+     * @since 2.7
      */
+    @Parameter
     private List<String> dependencySourceExcludes;
-    
+
     /**
      * Directory into which assembled {@link JavadocOptions} instances will be written before they
      * are added to javadoc resources bundles.
-     * 
-     * @parameter default-value="${project.build.directory}/javadoc-bundle-options"
-     * @readonly
+     *
      * @since 2.7
      */
+    @Parameter( defaultValue = "${project.build.directory}/javadoc-bundle-options", readonly = true )
     private File javadocOptionsDir;
 
     /**
      * Transient variable to allow lazy-resolution of javadoc bundles from dependencies, so they can
      * be used at various points in the javadoc generation process.
-     * 
+     *
      * @since 2.7
      */
     private transient List<JavadocBundle> dependencyJavadocBundles;
@@ -1672,9 +1606,10 @@ public abstract class AbstractJavadocMoj
      * &nbsp;&nbsp;&lt;/additionnalDependency&gt;
      * &lt;/additionnalDependencies&gt;
      * </pre>
-     * @parameter
+     *
      * @since 2.8.1
      */
+    @Parameter
     private List<Dependency> additionnalDependencies;
     
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocJar.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocJar.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocJar.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocJar.java Wed Jul 11 16:01:25 2012
@@ -19,16 +19,19 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
 /**
  * Bundles the Javadoc documentation for main <code>Java code</code> in an <b>aggregator</b> project into a jar
  * using the standard <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
  *
  * @version $Id$
  * @since 2.6
- * @goal aggregate-jar
- * @phase package
- * @aggregator
  */
+@Mojo( name = "aggregate-jar", defaultPhase = LifecyclePhase.PACKAGE, aggregator = true,
+       requiresDependencyResolution = ResolutionScope.COMPILE )
 public class AggregatorJavadocJar
     extends JavadocJar
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocReport.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocReport.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorJavadocReport.java Wed Jul 11 16:01:25 2012
@@ -19,16 +19,18 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
 /**
  * Generates documentation for the <code>Java code</code> in an <b>aggregator</b> project using the standard
  * <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
- * @goal aggregate
- * @aggregator
  * @since 2.5
  */
+@Mojo( name = "aggregate", aggregator = true, requiresDependencyResolution = ResolutionScope.COMPILE )
 public class AggregatorJavadocReport
     extends JavadocReport
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocJar.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocJar.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocJar.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocJar.java Wed Jul 11 16:01:25 2012
@@ -19,16 +19,19 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
 /**
  * Bundles the Javadoc documentation for <code>Java Test code</code> in an <b>aggregator</b> project into a jar
  * using the standard <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
  *
  * @version $Id$
  * @since 2.6
- * @goal test-aggregate-jar
- * @phase package
- * @aggregator
  */
+@Mojo( name = "test-aggregate-jar", defaultPhase = LifecyclePhase.PACKAGE, aggregator = true,
+       requiresDependencyResolution = ResolutionScope.TEST )
 public class AggregatorTestJavadocJar
     extends TestJavadocJar
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocReport.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocReport.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AggregatorTestJavadocReport.java Wed Jul 11 16:01:25 2012
@@ -19,16 +19,18 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
 /**
  * Generates documentation for the <code>Java Test code</code> in an <b>aggregator</b> project using the standard
  * <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
- * @goal test-aggregate
- * @aggregator
  * @since 2.5
  */
+@Mojo( name = "test-aggregate", aggregator = true, requiresDependencyResolution = ResolutionScope.TEST )
 public class AggregatorTestJavadocReport
     extends TestJavadocReport
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/FixJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/FixJavadocMojo.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/FixJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/FixJavadocMojo.java Wed Jul 11 16:01:25 2012
@@ -19,6 +19,11 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
 /**
  * Fix Javadoc documentation and tags for the <code>Java code</code> for the project.
  * See <a href="http://download.oracle.com/javase/1.5.0/docs/tooldocs/windows/javadoc.html#wheretags">Where Tags Can Be Used</a>.
@@ -26,10 +31,9 @@ package org.apache.maven.plugin.javadoc;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.6
- * @goal fix
- * @requiresDependencyResolution compile
- * @execute phase="compile"
  */
+@Mojo( name = "fix", requiresDependencyResolution = ResolutionScope.COMPILE )
+@Execute( phase = LifecyclePhase.COMPILE )
 public class FixJavadocMojo
     extends AbstractFixJavadocMojo
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocJar.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocJar.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocJar.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocJar.java Wed Jul 11 16:01:25 2012
@@ -23,10 +23,16 @@ import org.apache.maven.archiver.MavenAr
 import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProjectHelper;
 import org.apache.maven.reporting.MavenReportException;
-import org.apache.maven.model.Resource;
+import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.archiver.jar.ManifestException;
@@ -42,14 +48,15 @@ import java.util.Locale;
  *
  * @version $Id$
  * @since 2.0
- * @goal jar
- * @phase package
  */
+@Mojo( name = "jar", defaultPhase = LifecyclePhase.PACKAGE, requiresDependencyResolution = ResolutionScope.COMPILE)
 public class JavadocJar
     extends AbstractJavadocMojo
 {
-    /** Includes all generated Javadoc files */
-    private static final String[] DEFAULT_INCLUDES = new String[] { "**/**" };
+    /**
+     * Includes all generated Javadoc files
+     */
+    private static final String[] DEFAULT_INCLUDES = new String[]{ "**/**" };
 
     /**
      * Excludes all processing files.
@@ -61,7 +68,7 @@ public class JavadocJar
      * @see AbstractJavadocMojo#FILES_FILE_NAME
      */
     private static final String[] DEFAULT_EXCLUDES =
-        new String[] { DEBUG_JAVADOC_SCRIPT_NAME, OPTIONS_FILE_NAME, PACKAGES_FILE_NAME, ARGFILE_FILE_NAME,
+        new String[]{ DEBUG_JAVADOC_SCRIPT_NAME, OPTIONS_FILE_NAME, PACKAGES_FILE_NAME, ARGFILE_FILE_NAME,
             FILES_FILE_NAME };
 
     // ----------------------------------------------------------------------
@@ -70,17 +77,16 @@ public class JavadocJar
 
     /**
      * Used for attaching the artifact in the project.
-     *
-     * @component
      */
+    @Component
     private MavenProjectHelper projectHelper;
 
     /**
      * The Jar archiver.
      *
-     * @component role="org.codehaus.plexus.archiver.Archiver" roleHint="jar"
      * @since 2.5
      */
+    @Component( role = Archiver.class, hint = "jar" )
     private JarArchiver jarArchiver;
 
     // ----------------------------------------------------------------------
@@ -91,61 +97,57 @@ public class JavadocJar
      * Specifies the destination directory where javadoc saves the generated HTML files.
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#d">d</a>.
      *
-     * @parameter expression="${destDir}"
      * @deprecated
      */
+    @Parameter( property = "destDir" )
     private File destDir;
 
     /**
      * Specifies the directory where the generated jar file will be put.
-     *
-     * @parameter expression="${project.build.directory}"
      */
+    @Parameter( property = "project.build.directory" )
     private String jarOutputDirectory;
 
     /**
      * Specifies the filename that will be used for the generated jar file. Please note that <code>-javadoc</code>
      * or <code>-test-javadoc</code> will be appended to the file name.
-     *
-     * @parameter expression="${project.build.finalName}"
      */
+    @Parameter( property = "project.build.finalName" )
     private String finalName;
 
     /**
      * Specifies whether to attach the generated artifact to the project helper.
      * <br/>
-     *
-     * @parameter expression="${attach}" default-value="true"
      */
+    @Parameter( property = "attach", defaultValue = "true" )
     private boolean attach;
 
     /**
      * The archive configuration to use.
      * See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven Archiver Reference</a>.
      *
-     * @parameter
      * @since 2.5
      */
+    @Parameter
     private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
 
     /**
      * Path to the default MANIFEST file to use. It will be used if
      * <code>useDefaultManifestFile</code> is set to <code>true</code>.
      *
-     * @parameter expression="${project.build.outputDirectory}/META-INF/MANIFEST.MF"
-     * @required
-     * @readonly
      * @since 2.5
      */
+    @Parameter( defaultValue = "${project.build.outputDirectory}/META-INF/MANIFEST.MF", required = true,
+                readonly = true )
     private File defaultManifestFile;
 
     /**
      * Set this to <code>true</code> to enable the use of the <code>defaultManifestFile</code>.
      * <br/>
      *
-     * @parameter default-value="false"
      * @since 2.5
      */
+    @Parameter( defaultValue = "false" )
     private boolean useDefaultManifestFile;
 
     /** {@inheritDoc} */

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java Wed Jul 11 16:01:25 2012
@@ -19,20 +19,25 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
-import java.io.File;
-import java.util.List;
-import java.util.Locale;
-import java.util.ResourceBundle;
-
 import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.reporting.MavenReport;
 import org.apache.maven.reporting.MavenReportException;
 import org.codehaus.doxia.sink.Sink;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
+import java.util.List;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
 /**
  * Generates documentation for the <code>Java code</code> in an <b>NON aggregator</b> project using the standard
  * <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
@@ -41,11 +46,11 @@ import org.codehaus.plexus.util.StringUt
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.0
- * @goal javadoc
- * @execute phase="generate-sources"
  * @see <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>
  * @see <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#options">Javadoc Options</a>
  */
+@Mojo( name = "javadoc", requiresDependencyResolution = ResolutionScope.COMPILE )
+@Execute( phase = LifecyclePhase.GENERATE_SOURCES )
 public class JavadocReport
     extends AbstractJavadocMojo
     implements MavenReport
@@ -56,10 +61,9 @@ public class JavadocReport
 
     /**
      * Specifies the destination directory where javadoc saves the generated HTML files.
-     *
-     * @parameter expression="${reportOutputDirectory}" default-value="${project.reporting.outputDirectory}/apidocs"
-     * @required
      */
+    @Parameter( property = "reportOutputDirectory", defaultValue = "${project.reporting.outputDirectory}/apidocs",
+                required = true )
     private File reportOutputDirectory;
 
     /**
@@ -67,8 +71,8 @@ public class JavadocReport
      * <br/>
      *
      * @since 2.1
-     * @parameter expression="${destDir}" default-value="apidocs"
      */
+    @Parameter( property = "destDir", defaultValue = "apidocs" )
     private String destDir;
 
     /**
@@ -76,8 +80,8 @@ public class JavadocReport
      * (i.e. <code>project-reports.html</code>).
      *
      * @since 2.1
-     * @parameter expression="${name}"
      */
+    @Parameter( property = "name" )
     private String name;
 
     /**
@@ -85,8 +89,8 @@ public class JavadocReport
      * (i.e. <code>project-reports.html</code>).
      *
      * @since 2.1
-     * @parameter expression="${description}"
      */
+    @Parameter( property = "description" )
     private String description;
 
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/ResourcesBundleMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/ResourcesBundleMojo.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/ResourcesBundleMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/ResourcesBundleMojo.java Wed Jul 11 16:01:25 2012
@@ -22,6 +22,11 @@ package org.apache.maven.plugin.javadoc;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.javadoc.options.JavadocOptions;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProjectHelper;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
@@ -37,41 +42,37 @@ import java.io.IOException;
  * by the javadoc plugin mojos when used by the <code>includeDependencySources</code> option, to generate
  * javadocs that are somewhat consistent with those generated in the original project itself.
  *  
- * @goal resource-bundle
- * @phase package
  * @since 2.7
  */
+@Mojo( name = "resource-bundle", defaultPhase = LifecyclePhase.PACKAGE,
+       requiresDependencyResolution = ResolutionScope.COMPILE )
 public class ResourcesBundleMojo
-    extends AbstractJavadocMojo
+extends AbstractJavadocMojo
 {
-    
+
     public static final String BUNDLE_OPTIONS_PATH = "META-INF/maven/javadoc-options.xml";
 
     public static final String RESOURCES_DIR_PATH = "resources";
 
     /**
-     * Base name of artifacts produced by this project. This will be combined with 
-     * {@link ResourcesBundleMojo#getAttachmentClassifier()} to produce the name for this bundle 
+     * Base name of artifacts produced by this project. This will be combined with
+     * {@link ResourcesBundleMojo#getAttachmentClassifier()} to produce the name for this bundle
      * jar.
-     * 
-     * @parameter default-value="${project.build.finalName}"
-     * @readonly
      */
+    @Parameter( defaultValue = "${project.build.finalName}", readonly = true )
     private String finalName;
-    
+
     /**
-     * Helper component to provide an easy mechanism for attaching an artifact to the project for 
+     * Helper component to provide an easy mechanism for attaching an artifact to the project for
      * installation/deployment.
-     * 
-     * @component
      */
+    @Component
     private MavenProjectHelper projectHelper;
-    
+
     /**
      * Archiver manager, used to manage jar builder.
-     *
-     * @component
      */
+    @Component
     private ArchiverManager archiverManager;
 
     /**

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestFixJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestFixJavadocMojo.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestFixJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestFixJavadocMojo.java Wed Jul 11 16:01:25 2012
@@ -19,15 +19,19 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
 /**
  * Fix Javadoc documentation and tags for the <code>Test Java code</code> for the project.
  * See <a href="http://download.oracle.com/javase/1.5.0/docs/tooldocs/windows/javadoc.html#wheretags">Where Tags Can Be Used</a>.
@@ -35,10 +39,9 @@ import org.apache.maven.project.MavenPro
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.6
- * @goal test-fix
- * @requiresDependencyResolution test
- * @execute phase="test-compile"
  */
+@Mojo( name = "test-fix", requiresDependencyResolution = ResolutionScope.TEST )
+@Execute( phase = LifecyclePhase.TEST_COMPILE )
 public class TestFixJavadocMojo
     extends AbstractFixJavadocMojo
 {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java Wed Jul 11 16:01:25 2012
@@ -19,17 +19,21 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * Bundles the Javadoc documentation for <code>test Java code</code> in an <b>NON aggregator</b> project into
  * a jar using the standard <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
@@ -37,10 +41,8 @@ import org.codehaus.plexus.util.StringUt
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.5
- * @goal test-jar
- * @phase package
- * @requiresDependencyResolution test
  */
+@Mojo( name = "test-jar", defaultPhase = LifecyclePhase.PACKAGE, requiresDependencyResolution = ResolutionScope.TEST )
 public class TestJavadocJar
     extends JavadocJar
 {
@@ -53,10 +55,8 @@ public class TestJavadocJar
      * <br/>
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#d">d</a>.
      * <br/>
-     *
-     * @parameter default-value="${project.build.directory}/testapidocs"
-     * @required
      */
+    @Parameter( defaultValue = "${project.build.directory}/testapidocs", required = true )
     private File outputDirectory;
 
     /**
@@ -65,10 +65,10 @@ public class TestJavadocJar
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#doctitle">doctitle</a>.
      * <br/>
      *
-     * @parameter expression="${testDoctitle}" alias="doctitle"
-     * default-value="${project.name} ${project.version} Test API"
      * @since 2.5
      */
+    @Parameter( property = "testDoctitle", alias = "doctitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
     private String testDoctitle;
 
     /**
@@ -78,10 +78,10 @@ public class TestJavadocJar
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#overview">overview</a>.
      * <br/>
      *
-     * @parameter expression="${testOverview}" alias="overview"
-     * default-value="${basedir}/src/test/javadoc/overview.html"
      * @since 2.5
      */
+    @Parameter( property = "testOverview", alias = "overview",
+                defaultValue = "${basedir}/src/test/javadoc/overview.html" )
     private File testOverview;
 
     /**
@@ -90,10 +90,10 @@ public class TestJavadocJar
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#windowtitle">windowtitle</a>.
      * <br/>
      *
-     * @parameter expression="${testWindowtitle}" alias="windowtitle"
-     * default-value="${project.name} ${project.version} Test API"
      * @since 2.5
      */
+    @Parameter( property = "testWindowtitle", alias = "windowtitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
     private String testWindowtitle;
 
     // ----------------------------------------------------------------------
@@ -103,9 +103,9 @@ public class TestJavadocJar
     /**
      * Specifies the Test Javadoc resources directory to be included in the Javadoc (i.e. package.html, images...).
      *
-     * @parameter expression="${basedir}/src/test/javadoc" alias="javadocDirectory"
      * @since 2.5
      */
+    @Parameter( alias = "javadocDirectory", defaultValue = "${basedir}/src/test/javadoc" )
     private File testJavadocDirectory;
 
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java?rev=1360251&r1=1360250&r2=1360251&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java Wed Jul 11 16:01:25 2012
@@ -19,6 +19,18 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.StringUtils;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -27,13 +39,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.ResourceBundle;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.reporting.MavenReportException;
-import org.codehaus.plexus.util.StringUtils;
-
 /**
  * Generates documentation for the <code>Java Test code</code> in an <b>NON aggregator</b> project using the standard
  * <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>.
@@ -41,12 +46,11 @@ import org.codehaus.plexus.util.StringUt
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @version $Id$
  * @since 2.3
- * @goal test-javadoc
- * @execute phase=generate-test-sources
- * @requiresDependencyResolution test
  * @see <a href="http://java.sun.com/j2se/javadoc/">Javadoc Tool</a>
  * @see <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#options">Javadoc Options </a>
  */
+@Mojo( name = "test-javadoc", requiresDependencyResolution = ResolutionScope.TEST )
+@Execute( phase = LifecyclePhase.GENERATE_TEST_SOURCES )
 public class TestJavadocReport
     extends JavadocReport
 {
@@ -60,10 +64,10 @@ public class TestJavadocReport
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#doctitle">doctitle</a>.
      * <br/>
      *
-     * @parameter expression="${testDoctitle}" alias="doctitle"
-     * default-value="${project.name} ${project.version} Test API"
      * @since 2.5
      */
+    @Parameter( property = "testDoctitle", alias = "doctitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
     private String testDoctitle;
 
     /**
@@ -75,10 +79,10 @@ public class TestJavadocReport
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#overview">overview</a>.
      * <br/>
      *
-     * @parameter expression="${testOverview}" alias="overview"
-     * default-value="${basedir}/src/test/javadoc/overview.html"
      * @since 2.5
      */
+    @Parameter( property = "testOverview", alias = "overview",
+                defaultValue = "${basedir}/src/test/javadoc/overview.html" )
     private File testOverview;
 
     /**
@@ -87,10 +91,10 @@ public class TestJavadocReport
      * See <a href="http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#windowtitle">windowtitle</a>.
      * <br/>
      *
-     * @parameter expression="${testWindowtitle}" alias="windowtitle"
-     * default-value="${project.name} ${project.version} Test API"
      * @since 2.5
      */
+    @Parameter( property = "testWindowtitle", alias = "windowtitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
     private String testWindowtitle;
 
     // ----------------------------------------------------------------------
@@ -99,18 +103,16 @@ public class TestJavadocReport
 
     /**
      * Specifies the destination directory where test Javadoc saves the generated HTML files.
-     *
-     * @parameter expression="${reportTestOutputDirectory}" default-value="${project.reporting.outputDirectory}/testapidocs"
-     * @required
      */
+    @Parameter( property = "reportTestOutputDirectory",
+                defaultValue = "${project.reporting.outputDirectory}/testapidocs", required = true )
     private File reportOutputDirectory;
 
     /**
      * The name of the destination directory.
      * <br/>
-     *
-     * @parameter expression="${destDir}" default-value="testapidocs"
      */
+    @Parameter( property = "destDir", defaultValue = "testapidocs" )
     private String destDir;
 
     /**
@@ -120,9 +122,9 @@ public class TestJavadocReport
      * <br/>
      * See <a href="#docfilessubdirs">docfilessubdirs</a>.
      *
-     * @parameter expression="${basedir}/src/test/javadoc" alias="javadocDirectory"
      * @since 2.5
      */
+    @Parameter( alias = "javadocDirectory", defaultValue = "${basedir}/src/test/javadoc" )
     private File testJavadocDirectory;
 
     // ----------------------------------------------------------------------
@@ -133,18 +135,18 @@ public class TestJavadocReport
      * The name of the Test Javadoc report to be displayed in the Maven Generated Reports page
      * (i.e. <code>project-reports.html</code>).
      *
-     * @parameter expression="${testName}" alias="name"
      * @since 2.5
      */
+    @Parameter( property = "testName", alias = "name" )
     private String testName;
 
     /**
      * The description of the Test Javadoc report to be displayed in the Maven Generated Reports page
      * (i.e. <code>project-reports.html</code>).
      *
-     * @parameter expression="${testDescription}" alias="description"
      * @since 2.5
      */
+    @Parameter( property = "testDescription", alias = "description" )
     private String testDescription;
 
     // ----------------------------------------------------------------------