You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2006/09/07 02:58:33 UTC

svn commit: r440918 - in /maven/plugins/trunk/maven-javadoc-plugin/src: main/java/org/apache/maven/plugin/javadoc/ main/mdo/ site/ site/apt/ site/apt/examples/ test/java/org/apache/maven/plugin/javadoc/ test/java/org/apache/maven/plugin/javadoc/stubs/ ...

Author: vsiveton
Date: Wed Sep  6 17:58:31 2006
New Revision: 440918

URL: http://svn.apache.org/viewvc?view=rev&rev=440918
Log:
MJAVADOC-85: <taglet> allow only one taglet

o small refactoring to handle as well doclet and taglet (using modello to generate classes)
o added test cases
o updated documentation, javadoc and license
o updated also legibility of code for AbstractJavadocMojo.java

Added:
    maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.jar   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java   (with props)
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java   (with props)
Removed:
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/DocletArtifact.java
Modified:
    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/JavadocReport.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
    maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/alternate-doclet.apt
    maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/index.apt
    maven/plugins/trunk/maven-javadoc-plugin/src/site/site.xml
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java

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?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- 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 Sep  6 17:58:31 2006
@@ -46,7 +46,11 @@
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.javadoc.options.Group;
+import org.apache.maven.plugin.javadoc.options.DocletArtifact;
+import org.apache.maven.plugin.javadoc.options.JavadocPathArtifact;
 import org.apache.maven.plugin.javadoc.options.Tag;
+import org.apache.maven.plugin.javadoc.options.Taglet;
+import org.apache.maven.plugin.javadoc.options.TagletArtifact;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.reporting.MavenReportException;
@@ -62,6 +66,7 @@
  * Base class with majority of Javadoc functionality.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @requiresDependencyResolution compile
  * @execute phase="generate-sources"
  */
@@ -81,6 +86,15 @@
     private static final String RESOURCE_CSS_DIR = RESOURCE_DIR + "/css";
 
     /**
+     * The minimum version of javadoc for some options, i.e. 1.4
+     */
+    private static final float MIN_JAVA_VERSION = 1.4f;
+
+    // ----------------------------------------------------------------------
+    // Mojo parameters
+    // ----------------------------------------------------------------------
+
+    /**
      * @parameter default-value="${settings.offline}"
      * @required
      * @readonly
@@ -121,6 +135,60 @@
     private String additionalparam;
 
     /**
+     * Used for resolving artifacts
+     *
+     * @component
+     */
+    private ArtifactResolver resolver;
+
+    /**
+     * Factory for creating artifact objects
+     *
+     * @component
+     */
+    private ArtifactFactory factory;
+
+    /**
+     * The local repository where the artifacts are located
+     *
+     * @parameter expression="${localRepository}"
+     */
+    private ArtifactRepository localRepository;
+
+    /**
+     * The remote repositories where artifacts are located
+     *
+     * @parameter expression="${project.remoteArtifactRepositories}"
+     */
+    private List remoteRepositories;
+
+    /**
+     * The projects in the reactor for aggregation report.
+     *
+     * @parameter expression="${reactorProjects}"
+     * @readonly
+     */
+    private List reactorProjects;
+
+    /**
+     * Whether to build an aggregated report at the root, or build individual reports.
+     *
+     * @parameter expression="${aggregate}" default-value="false"
+     */
+    protected boolean aggregate;
+
+    /**
+     * Used to resolve artifacts of aggregated modules
+     *
+     * @component
+     */
+    private ArtifactMetadataSource artifactMetadataSource;
+
+    // ----------------------------------------------------------------------
+    // Javadoc Options
+    // ----------------------------------------------------------------------
+
+    /**
      * Uses the sentence break iterator to determine the end of the first sentence.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#breakiterator">breakiterator</a>.
      *
@@ -137,7 +205,9 @@
     private String doclet;
 
     /**
-     * Specifies the path to the doclet starting class file (specified with the -doclet option) and any jar files it depends on.
+     * Specifies the path to the doclet starting class file (specified with the -doclet option) and any jar files
+     * it depends on. The docletPath can contain multiple paths by separating them with a colon (:) on Solaris
+     * and a semi-colon (;) on Windows.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#docletpath">docletpath</a>.
      *
      * @parameter expression="${docletPath}"
@@ -145,15 +215,41 @@
     private String docletPath;
 
     /**
-     * Specifies the artifact containing the doclet starting class file (specified with the -docletpath option).
+     * Specifies the artifact containing the doclet starting class file (specified with the -doclet option).
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#docletpath">docletpath</a>.
+     * Example:
+     * <pre>
+     * &lt;docletArtifact&gt;
+     *   &lt;groupId&gt;com.sun.tools.doclets&lt;/groupId&gt;
+     *   &lt;artifactId&gt;doccheck&lt;/artifactId&gt;
+     *   &lt;version&gt;1.2b2&lt;/version&gt;
+     * &lt;/docletArtifact&gt;
+     * </pre>
      *
-     * @parameter
+     * @parameter expression="${docletArtifact}"
      */
-    //TODO: May need to allow multiple artifacts
     private DocletArtifact docletArtifact;
 
     /**
+     * Specifies multiple artifacts containing the path for the doclet starting class file (specified with the
+     *  -doclet option).
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#docletpath">docletpath</a>.
+     * Example:
+     * <pre>
+     * &lt;docletArtifacts&gt;
+     *   &lt;docletArtifact&gt;
+     *     &lt;groupId&gt;com.sun.tools.doclets&lt;/groupId&gt;
+     *     &lt;artifactId&gt;doccheck&lt;/artifactId&gt;
+     *     &lt;version&gt;1.2b2&lt;/version&gt;
+     *   &lt;/docletArtifact&gt;
+     * &lt;/docletArtifacts&gt;
+     * </pre>
+     *
+     * @parameter expression="${docletArtifacts}"
+     */
+    private DocletArtifact[] docletArtifacts;
+
+    /**
      * Specifies the encoding name of the source files.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#encoding">encoding</a>.
      *
@@ -238,14 +334,16 @@
     /**
      * Specifies the access level for classes and members to show in the Javadocs.
      * Possible values are:
-     * <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#public">public</a>
-     * (shows only public classes and members),
-     * <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#protected">protected</a>
-     * (shows only public and protected classes and members),
-     * <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#package">package</a>
-     * (shows all classes and members not marked private), and
-     * <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#private">private</a>
-     * (shows all classes and members).
+     * <ul>
+     * <li><a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#public">public</a>
+     * (shows only public classes and members)</li>
+     * <li><a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#protected">protected</a>
+     * (shows only public and protected classes and members)</li>
+     * <li><a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#package">package</a>
+     * (shows all classes and members not marked private)</li>
+     * <li><a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#private">private</a>
+     * (shows all classes and members)</li>
+     * </ul>
      *
      * @parameter expression="${show}" default-value="protected"
      */
@@ -290,6 +388,10 @@
      */
     private boolean verbose = false;
 
+    // ----------------------------------------------------------------------
+    // Standard Doclet Options
+    // ----------------------------------------------------------------------
+
     /**
      * Specifies whether or not the author text is included in the generated Javadocs.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#author">author</a>.
@@ -522,12 +624,12 @@
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tag">tag</a>.
      * Example:
      * <pre>
-     * &lt;tags&gt;<br/>
-     *   &lt;tag&gt;<br/>
-     *     &lt;name&gt;todo&lt;/name&gt;<br/>
-     *     &lt;placement&gt;a&lt;/placement&gt;<br/>
-     *     &lt;head&gt;To Do:&lt;/head&gt;<br/>
-     *   &lt;/tag&gt;<br/>
+     * &lt;tags&gt;
+     *   &lt;tag&gt;
+     *     &lt;name&gt;todo&lt;/name&gt;
+     *     &lt;placement&gt;a&lt;/placement&gt;
+     *     &lt;head&gt;To Do:&lt;/head&gt;
+     *   &lt;/tag&gt;
      *  &lt;/tags&gt;
      * </pre>
      *
@@ -544,7 +646,8 @@
     private String taglet;
 
     /**
-     * Specifies the search paths for finding taglet class files (.class).
+     * Specifies the search paths for finding taglet class files (.class). The tagletPath can contain
+     * multiple paths by separating them with a colon (:) on Solaris and a semi-colon (;) on Windows.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tagletpath">tagletpath</a>.
      *
      * @parameter expression="${tagletpath}"
@@ -552,6 +655,45 @@
     private String tagletpath;
 
     /**
+     * Specifies the artifact containing the taglet class files (.class).
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tagletpath">tagletpath</a>.
+     * Example:
+     * <pre>
+     * &lt;tagletArtifact&gt;
+     *   &lt;groupId&gt;group-Taglet&lt;/groupId&gt;
+     *   &lt;artifactId&gt;artifact-Taglet&lt;/artifactId&gt;
+     *   &lt;version&gt;version-Taglet&lt;/version&gt;
+     * &lt;/tagletArtifact&gt;
+     * </pre>
+     *
+     * @parameter expression="${tagletArtifact}"
+     */
+    private TagletArtifact tagletArtifact;
+
+    /**
+     * Enables the Javadoc tool to interpret multiple taglets.
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#taglet">taglet</a>.
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tagletpath">tagletpath</a>.
+     * Example:
+     * <pre>
+     * &lt;taglets&gt;
+     *   &lt;taglet&gt;
+     *     &lt;tagletClass&gt;com.sun.tools.doclets.ToDoTaglet&lt;/tagletClass&gt;
+     *     &lt;!--&lt;tagletpath&gt;/home/taglets&lt;/tagletpath&gt;--&gt;
+     *     &lt;tagletArtifact&gt;
+     *       &lt;groupId&gt;group-Taglet&lt;/groupId&gt;
+     *       &lt;artifactId&gt;artifact-Taglet&lt;/artifactId&gt;
+     *       &lt;version&gt;version-Taglet&lt;/version&gt;
+     *     &lt;/tagletArtifact&gt;
+     *   &lt;/taglet&gt;
+     *  &lt;/taglets&gt;
+     * </pre>
+     *
+     * @parameter expression="${taglets}"
+     */
+    private Taglet[] taglets;
+
+    /**
      * Includes one "Use" page for each documented class and package.
      * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldoldocs/windows/javadoc.html#use">use</a>.
      *
@@ -575,57 +717,9 @@
      */
     private String windowtitle;
 
-    /**
-     * Used for resolving artifacts
-     *
-     * @component
-     */
-    private ArtifactResolver resolver;
-
-    /**
-     * Factory for creating artifact objects
-     *
-     * @component
-     */
-    private ArtifactFactory factory;
-
-    /**
-     * The local repository where the artifacts are located
-     *
-     * @parameter expression="${localRepository}"
-     */
-    private ArtifactRepository localRepository;
-
-    /**
-     * The remote repositories where artifacts are located
-     *
-     * @parameter expression="${project.remoteArtifactRepositories}"
-     */
-    private List remoteRepositories;
-
-    /**
-     * The projects in the reactor for aggregation report.
-     *
-     * @parameter expression="${reactorProjects}"
-     * @readonly
-     */
-    private List reactorProjects;
-
-    /**
-     * Whether to build an aggregated report at the root, or build individual reports.
-     *
-     * @parameter expression="${aggregate}" default-value="false"
-     */
-    protected boolean aggregate;
-
-    /**
-     * Used to resolve artifacts of aggregated modules
-     *
-     * @component
-     */
-    private ArtifactMetadataSource artifactMetadataSource;
-
-    private static final float MIN_JAVA_VERSION = 1.4f;
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
 
     /**
      * @return the output directory
@@ -684,7 +778,7 @@
         }
 
         StringBuffer options = new StringBuffer();
-        if ( !StringUtils.isEmpty( this.locale ) )
+        if ( StringUtils.isNotEmpty( this.locale ) )
         {
             options.append( "-locale " );
             options.append( quotedArgument( this.locale ) );
@@ -701,7 +795,7 @@
         Commandline cmd = new Commandline();
 
         // Set the proxy host and port
-        if ( !StringUtils.isEmpty( proxyHost ) && proxyPort > 0 )
+        if ( StringUtils.isNotEmpty( proxyHost ) && proxyPort > 0 )
         {
             cmd.createArgument().setValue( "-J-DproxyHost=" + proxyHost );
             cmd.createArgument().setValue( "-J-DproxyPort=" + proxyPort );
@@ -718,7 +812,7 @@
 
         // General javadoc arguments
         addArgIf( arguments, breakiterator, "-breakiterator", MIN_JAVA_VERSION );
-        if ( !StringUtils.isEmpty( doclet ) )
+        if ( StringUtils.isNotEmpty( doclet ) )
         {
             addArgIfNotEmpty( arguments, "-doclet", quotedArgument( doclet ) );
             addArgIfNotEmpty( arguments, "-docletpath", quotedPathArgument( getDocletPath() ) );
@@ -742,14 +836,14 @@
         addArgIf( arguments, verbose, "-verbose" );
         addArgIfNotEmpty( arguments, null, additionalparam );
 
-        if ( ( StringUtils.isEmpty( sourcepath ) ) && ( !StringUtils.isEmpty( subpackages ) ) )
+        if ( ( StringUtils.isEmpty( sourcepath ) ) && ( StringUtils.isNotEmpty( subpackages ) ) )
         {
             sourcepath = StringUtils.join( sourcePaths.iterator(), File.pathSeparator );
         }
 
         addArgIfNotEmpty( arguments, "-sourcepath", quotedPathArgument( getSourcePath( sourcePaths ) ) );
 
-        if ( !StringUtils.isEmpty( sourcepath ) )
+        if ( StringUtils.isNotEmpty( sourcepath ) )
         {
             addArgIfNotEmpty( arguments, "-subpackages", subpackages );
         }
@@ -812,24 +906,41 @@
             addArgIfNotEmpty( arguments, "-stylesheetfile", quotedPathArgument( getStylesheetFile( javadocOutputDirectory ) ) );
 
             addArgIfNotEmpty( arguments, "-taglet", quotedArgument( taglet ), MIN_JAVA_VERSION );
-            addArgIfNotEmpty( arguments, "-tagletpath", quotedPathArgument( tagletpath ), MIN_JAVA_VERSION );
-
-            for ( int i = 0; i < tags.length; i++ )
+            if ( taglets != null )
             {
-                if ( tags[i] == null || StringUtils.isEmpty( tags[i].getName() )
-                    || StringUtils.isEmpty( tags[i].getPlacement() ) )
+                for ( int i = 0; i < taglets.length; i++ )
                 {
-                    getLog().info( "A tag option is empty. Ignore this option." );
+                    if ( ( taglets[i] == null ) || ( StringUtils.isEmpty( taglets[i].getTagletClass() ) ) )
+                    {
+                        getLog().info( "A taglet option is empty. Ignore this option." );
+                    }
+                    else
+                    {
+                        addArgIfNotEmpty( arguments, "-taglet", quotedArgument( taglets[i].getTagletClass() ), MIN_JAVA_VERSION );
+                    }
                 }
-                else
+            }
+            addArgIfNotEmpty( arguments, "-tagletpath", quotedPathArgument( getTagletPath() ), MIN_JAVA_VERSION );
+
+            if ( tags != null )
+            {
+                for ( int i = 0; i < tags.length; i++ )
                 {
-                    String value = "\"" + tags[i].getName() + ":" + tags[i].getPlacement();
-                    if ( !StringUtils.isEmpty( tags[i].getHead() ) )
+                    if ( ( tags[i] == null ) || ( StringUtils.isEmpty( tags[i].getName() ) )
+                        || ( StringUtils.isEmpty( tags[i].getPlacement() ) ) )
                     {
-                        value += ":" + quotedArgument( tags[i].getHead() );
+                        getLog().info( "A tag option is empty. Ignore this option." );
+                    }
+                    else
+                    {
+                        String value = "\"" + tags[i].getName() + ":" + tags[i].getPlacement();
+                        if ( StringUtils.isNotEmpty( tags[i].getHead() ) )
+                        {
+                            value += ":" + quotedArgument( tags[i].getHead() );
+                        }
+                        value += "\"";
+                        addArgIfNotEmpty( arguments, "-tag", value, MIN_JAVA_VERSION );
                     }
-                    value += "\"";
-                    addArgIfNotEmpty( arguments, "-tag", value, MIN_JAVA_VERSION, false );
                 }
             }
 
@@ -931,7 +1042,7 @@
     {
         List excludedNames = null;
 
-        if ( !StringUtils.isEmpty( sourcepath ) && !StringUtils.isEmpty( subpackages ) )
+        if ( StringUtils.isNotEmpty( sourcepath ) && StringUtils.isNotEmpty( subpackages ) )
         {
             String[] excludedPackages = getExcludedPackages();
             String[] subpackagesList = subpackages.split( "[:]" );
@@ -940,7 +1051,7 @@
         }
 
         String excludeArg = "";
-        if ( !StringUtils.isEmpty( subpackages ) && excludedNames != null )
+        if ( StringUtils.isNotEmpty( subpackages ) && excludedNames != null )
         {
             //add the excludedpackage names
             for ( Iterator it = excludedNames.iterator(); it.hasNext(); )
@@ -967,7 +1078,7 @@
     {
         String sourcePath = null;
 
-        if ( StringUtils.isEmpty( subpackages ) || !StringUtils.isEmpty( sourcepath ) )
+        if ( StringUtils.isEmpty( subpackages ) || StringUtils.isNotEmpty( sourcepath ) )
         {
             sourcePath = StringUtils.join( sourcePaths.iterator(), File.pathSeparator );
         }
@@ -1113,6 +1224,7 @@
         Map compileArtifactMap = new HashMap();
 
         classpathElements.add( project.getBuild().getOutputDirectory() );
+
         populateCompileArtifactMap( compileArtifactMap, project.getCompileArtifacts() );
 
         if ( aggregate && project.isExecutionRoot() )
@@ -1147,6 +1259,7 @@
         }
 
         classpathElements.addAll( compileArtifactMap.values() );
+
         return StringUtils.join( classpathElements.iterator(), File.pathSeparator );
     }
 
@@ -1242,9 +1355,9 @@
         else
         {
             if ( ( project.getOrganization() != null )
-                && ( !StringUtils.isEmpty( project.getOrganization().getName() ) ) )
+                && ( StringUtils.isNotEmpty( project.getOrganization().getName() ) ) )
             {
-                if ( !StringUtils.isEmpty( project.getOrganization().getUrl() ) )
+                if ( StringUtils.isNotEmpty( project.getOrganization().getUrl() ) )
                 {
                     theBottom = StringUtils.replace( theBottom, "{organizationName}", "<a href=\""
                         + project.getOrganization().getUrl() + "\">" + project.getOrganization().getName() + "</a>" );
@@ -1309,38 +1422,152 @@
     }
 
     /**
-     * Method to get the path to the doclet to be used in the javadoc
+     * Method to get the path of the doclet artifacts used in the -docletpath option.
      *
-     * @return the path to the doclet
+     * @return the path to jar file that contains doclet class file separated with a colon (:)
+     * on Solaris and a semi-colon (;) on Windows
      * @throws MavenReportException
      */
     private String getDocletPath()
         throws MavenReportException
     {
-        String path;
-        if ( docletArtifact != null )
+        StringBuffer path = new StringBuffer();
+
+        if ( ( docletArtifact != null ) && ( StringUtils.isNotEmpty( docletArtifact.getGroupId() ) )
+            && ( StringUtils.isNotEmpty( docletArtifact.getArtifactId() ) )
+            && ( StringUtils.isNotEmpty( docletArtifact.getVersion() ) ) )
         {
-            Artifact artifact = factory.createArtifact( docletArtifact.getGroupId(), docletArtifact.getArtifactId(),
-                                                        docletArtifact.getVersion(), "compile", "jar" );
-            try
-            {
-                resolver.resolve( artifact, remoteRepositories, localRepository );
-                path = artifact.getFile().getAbsolutePath();
-            }
-            catch ( ArtifactResolutionException e )
+            path.append( getArtifactAbsolutePath( docletArtifact ) );
+        }
+        else if ( docletArtifacts != null )
+        {
+            for ( int i = 0; i < docletArtifacts.length; i++ )
             {
-                throw new MavenReportException( "Unable to resolve artifact.", e );
+                if ( docletArtifacts[i] != null )
+                {
+                    path.append( getArtifactAbsolutePath( docletArtifacts[i] ) );
+
+                    if ( i < docletArtifacts.length - 1 )
+                    {
+                        path.append( File.pathSeparator );
+                    }
+                }
             }
-            catch ( ArtifactNotFoundException e )
+        }
+        else
+        {
+            path.append( docletPath );
+        }
+
+        if ( StringUtils.isEmpty( path.toString() ) )
+        {
+            getLog().warn( "No docletpath option was found. Please review <docletpath/> or <docletArtifact/>" +
+                    " or <doclets/>." );
+        }
+
+        return path.toString();
+    }
+
+    /**
+     * Method to get the path of the taglet artifacts used in the -tagletpath option.
+     *
+     * @return the path to jar file that contains taglet class file separated with a colon (:)
+     * on Solaris and a semi-colon (;) on Windows
+     * @throws MavenReportException
+     */
+    private String getTagletPath()
+        throws MavenReportException
+    {
+        StringBuffer path = new StringBuffer();
+
+        if ( ( tagletArtifact != null ) && ( StringUtils.isNotEmpty( tagletArtifact.getGroupId() ) )
+            && ( StringUtils.isNotEmpty( tagletArtifact.getArtifactId() ) )
+            && ( StringUtils.isNotEmpty( tagletArtifact.getVersion() ) ) )
+        {
+            path.append( getArtifactAbsolutePath( tagletArtifact ) );
+        }
+        else if ( taglets != null )
+        {
+            for ( int i = 0; i < taglets.length; i++ )
             {
-                throw new MavenReportException( "Unable to find artifact.", e );
+                Taglet current = taglets[i];
+                if ( current != null )
+                {
+                    boolean separated = false;
+                    if ( current.getTagletArtifact() != null )
+                    {
+                        path.append( getArtifactAbsolutePath( current.getTagletArtifact() ) );
+                        separated = true;
+                    }
+                    else if ( ( current.getTagletArtifact() != null )
+                        && ( StringUtils.isNotEmpty( current.getTagletArtifact().getGroupId() ) )
+                        && ( StringUtils.isNotEmpty( current.getTagletArtifact().getArtifactId() ) )
+                        && ( StringUtils.isNotEmpty( current.getTagletArtifact().getVersion() ) ) )
+                    {
+                        path.append( getArtifactAbsolutePath( current.getTagletArtifact() ) );
+                        separated = true;
+                    }
+                    else if ( StringUtils.isNotEmpty( current.getTagletpath() ) )
+                    {
+                        path.append( current.getTagletpath() );
+                        separated = true;
+                    }
+
+                    if ( separated && ( i < taglets.length - 1 ) )
+                    {
+                        path.append( File.pathSeparator );
+                    }
+                }
             }
         }
         else
         {
-            path = docletPath;
+            path.append( tagletpath );
+        }
+
+        if ( StringUtils.isEmpty( path.toString() ) )
+        {
+            getLog().warn( "No tagletpath option was found. Please review <tagletpath/> or <tagletArtifact/>" +
+                    " or <taglets/>." );
+        }
+
+        return path.toString();
+    }
+
+    /**
+     * Return the Javadoc artifact path from the local repository
+     *
+     * @param javadocArtifact
+     * @return the locale artifact path
+     * @throws MavenReportException
+     */
+    private String getArtifactAbsolutePath( JavadocPathArtifact javadocArtifact )
+        throws MavenReportException
+    {
+        if ( ( StringUtils.isEmpty( javadocArtifact.getGroupId() ) )
+            && ( StringUtils.isEmpty( javadocArtifact.getArtifactId() ) )
+            && ( StringUtils.isEmpty( javadocArtifact.getVersion() ) ) )
+        {
+            return "";
+        }
+
+        Artifact artifact = factory.createArtifact( javadocArtifact.getGroupId(),
+                                                    javadocArtifact.getArtifactId(),
+                                                    javadocArtifact.getVersion(), "compile", "jar" );
+        try
+        {
+            resolver.resolve( artifact, remoteRepositories, localRepository );
+
+            return artifact.getFile().getAbsolutePath();
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            throw new MavenReportException( "Unable to resolve artifact:" + javadocArtifact, e );
+        }
+        catch ( ArtifactNotFoundException e )
+        {
+            throw new MavenReportException( "Unable to find artifact:" + javadocArtifact, e );
         }
-        return path;
     }
 
     /**
@@ -1352,7 +1579,7 @@
      */
     private void addMemoryArg( Commandline cmd, String arg, String memory )
     {
-        if ( !StringUtils.isEmpty( memory ) )
+        if ( StringUtils.isNotEmpty( memory ) )
         {
             // Allow '128' or '128m'
             if ( NumberUtils.isDigits( memory ) )
@@ -1472,9 +1699,9 @@
      */
     private void addArgIfNotEmpty( List arguments, String key, String value, boolean repeatKey )
     {
-        if ( !StringUtils.isEmpty( value ) )
+        if ( StringUtils.isNotEmpty( value ) )
         {
-            if ( !StringUtils.isEmpty( key ) )
+            if ( StringUtils.isNotEmpty( key ) )
             {
                 arguments.add( key );
             }
@@ -1484,7 +1711,7 @@
             {
                 String current = token.nextToken().trim();
 
-                if ( !StringUtils.isEmpty( current ) )
+                if ( StringUtils.isNotEmpty( current ) )
                 {
                     arguments.add( current );
 
@@ -1541,11 +1768,12 @@
      * Convenience method to wrap an argument value in quotes. Intended for values which may contain whitespaces.
      *
      * @param value the argument value.
+     * @return argument with quote
      */
     private String quotedArgument( String value )
     {
         String arg = value;
-        if ( !StringUtils.isEmpty( arg ) )
+        if ( StringUtils.isNotEmpty( arg ) )
         {
             if ( arg.indexOf( "'" ) != -1 )
             {
@@ -1562,12 +1790,13 @@
      * for path values which may contain whitespaces.
      *
      * @param value the argument value.
+     * @return path argument with quote
      */
     private String quotedPathArgument( String value )
     {
         String path = value;
 
-        if ( !StringUtils.isEmpty( path ) )
+        if ( StringUtils.isNotEmpty( path ) )
         {
             path = path.replace( '\\', '/' );
             if ( path.indexOf( "\'" ) != -1 )
@@ -1651,7 +1880,6 @@
     private void copyDefaultStylesheet( File outputDirectory )
         throws IOException
     {
-
         if ( outputDirectory == null || !outputDirectory.exists() )
         {
             throw new IOException( "The outputDirectory " + outputDirectory + " doesn't exists." );

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?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- 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 Sep  6 17:58:31 2006
@@ -24,6 +24,7 @@
 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.io.IOException;
@@ -95,6 +96,11 @@
      */
     public String getName( Locale locale )
     {
+        if ( StringUtils.isEmpty( name ) )
+        {
+            return "JavaDocs";
+        }
+
         return name;
     }
 
@@ -103,6 +109,11 @@
      */
     public String getDescription( Locale locale )
     {
+        if ( StringUtils.isEmpty( description ) )
+        {
+            return "JavaDoc API documentation.";
+        }
+
         return description;
     }
 

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo Wed Sep  6 17:58:31 2006
@@ -1,5 +1,23 @@
 <?xml version="1.0"?>
 
+<!--
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
 <model>
   <id>javadocoptions</id>
   <name>JavadocOptions</name>
@@ -113,6 +131,77 @@
           ]]></code>
         </codeSegment>
       </codeSegments>
+    </class>
+
+    <class>
+      <name>JavadocPathArtifact</name>
+      <description>An artifact object used by Javadoc path options like -docletpath or -tagletpath.</description>
+      <version>1.0.0</version>
+      <fields>
+        <field>
+          <name>groupId</name>
+          <description>The id of the group of the artifact.</description>
+          <version>1.0.0</version>
+          <type>String</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>artifactId</name>
+          <description>The id of the artifact.</description>
+          <version>1.0.0</version>
+          <type>String</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>version</name>
+          <description>The version of the artifact.</description>
+          <version>1.0.0</version>
+          <type>String</type>
+          <identifier>true</identifier>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>DocletArtifact</name>
+      <version>1.0.0</version>
+      <superClass>JavadocPathArtifact</superClass>
+    </class>
+
+    <class>
+      <name>TagletArtifact</name>
+      <version>1.0.0</version>
+      <superClass>JavadocPathArtifact</superClass>
+    </class>
+
+    <class>
+      <name>Taglet</name>
+      <description>A Taglet parameter.</description>
+      <version>1.0.0</version>
+      <fields>
+        <field>
+          <name>tagletClass</name>
+          <description>tagletClass is the fully-qualified name for the taglet class.</description>
+          <version>1.0.0</version>
+          <type>String</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>tagletpath</name>
+          <description>Specifies the search paths for finding taglet class files (.class).</description>
+          <version>1.0.0</version>
+          <type>String</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>tagletArtifact</name>
+          <description>Specifies the taglet artifact to be included in the tagletpath option for finding taglet class files (.class).</description>
+          <version>1.0.0</version>
+          <association>
+            <type>TagletArtifact</type>
+          </association>
+        </field>
+      </fields>
     </class>
   </classes>
 </model>

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/alternate-doclet.apt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/alternate-doclet.apt?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/alternate-doclet.apt (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/alternate-doclet.apt Wed Sep  6 17:58:31 2006
@@ -60,13 +60,17 @@
 </project>
 +-----+
 
- <<Note>>: \<additionalparam/\> is used to set additional parameters on the command line, specifically
- for doclet options.
+ <<Note>>:
+
+   * \<additionalparam/\> is used to set additional parameters on the command line, specifically
+     for doclet options.
+
+   * if you need more artifacts in the docletpath, you could use \<docletArtifacts/\>.
 
  After executing <<<mvn site>>>, you will see that a UML graph (.dot file) will be generated in the
  destination directory.
 
- <<Note>>: You must have the Graphviz binary on your PATH, or the images will not be generated.
+ <<Note about UmlGraph>>: You must have the Graphviz binary on your PATH, or the images will not be generated.
  For more information about Graphviz, please refer to {{http://www.graphviz.org/}}.
 
 Using Alternate Doclet in Addition to the Javadoc Doclet
@@ -99,7 +103,7 @@
                 <configuration>
                   <doclet>com.sun.tools.doclets.doccheck.DocCheck</doclet>
 
-                  <!--docletPath>/path/to/doccheck.jar</docletPath-->
+                  <!-- <docletPath>/path/to/doccheck.jar</docletPath> -->
                   <docletArtifact>
                     <groupId>com.sun.tools.doclets</groupId>
                     <artifactId>doccheck</artifactId>
@@ -122,7 +126,7 @@
               </reportSet>
             </reportSets>
         </plugin>
-         ...
+        ...
       </plugins>
    </reporting>
    ...

Added: maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt Wed Sep  6 17:58:31 2006
@@ -0,0 +1,95 @@
+ ------
+ Configuring Custom Taglet
+ ------
+ Vincent Siveton
+ ------
+ September 2006
+ ------
+
+ ~~ Copyright 2006 The Apache Software Foundation.
+ ~~
+ ~~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~~ you may not use this file except in compliance with the License.
+ ~~ You may obtain a copy of the License at
+ ~~
+ ~~      http://www.apache.org/licenses/LICENSE-2.0
+ ~~
+ ~~ Unless required by applicable law or agreed to in writing, software
+ ~~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~~ See the License for the specific language governing permissions and
+ ~~ limitations under the License.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/guides/mini/guide-apt-format.html
+
+
+Configuring Custom Taglet
+
+ You could configure any custom taglet used in your javadoc via the \<taglet\> or \<taglets\> elements, depending
+ the number of taglet used.
+
+ For more information about the taglet technology, please refer to
+ {{http://java.sun.com/j2se/1.4.2/docs/tooldocs/javadoc/taglet/overview.html}}
+
+* One taglet
+
++-----+
+<project>
+  ...
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          ...
+          <taglet>package.to.YourTagletClass</taglet>
+          <!-- <tagletpath>/path/to/taglet.jar</tagletpath> -->
+          <tagletArtifact>
+            <groupId>group-Taglet</groupId>
+            <artifactId>artifact-Taglet</artifactId>
+            <version>version-Taglet</version>
+          </tagletArtifact>
+          ...
+        </configuration>
+      </plugin>
+    </plugins>
+    ...
+  </reporting>
+  ...
+</project>
++-----+
+
+* Several taglets
+
++-----+
+<project>
+  ...
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          ...
+          <taglets>
+            <taglet>
+              <tagletClass>package.to.YourTagletClass</tagletClass>
+              <!-- <tagletpath>/path/to/taglet.jar</tagletpath> -->
+              <tagletArtifact>
+                <groupId>group-Taglet</groupId>
+                <artifactId>artifact-Taglet</artifactId>
+                <version>version-Taglet</version>
+              </tagletArtifact>
+            </taglet>
+          </taglets>
+          ...
+        </configuration>
+      </plugin>
+    </plugins>
+    ...
+  </reporting>
+  ...
+</project>
++-----+

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/examples/taglet-configuration.apt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/index.apt?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/index.apt (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/index.apt Wed Sep  6 17:58:31 2006
@@ -3,7 +3,7 @@
  ------
  Maria Odea Ching
  ------
- 29 June 2006
+ September 2006
  ------
 
  ~~ Copyright 2006 The Apache Software Foundation.
@@ -64,7 +64,4 @@
 
    * {{{examples/tag-configuration.html}Configuring Custom Javadoc Tags}}
 
-
-
-
-
+   * {{{examples/taglet-configuration.html}Configuring Custom Javadoc Taglet}}

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/site/site.xml?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/site/site.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/site/site.xml Wed Sep  6 17:58:31 2006
@@ -44,6 +44,7 @@
       <item name="Grouping Packages" href="/examples/group-configuration.html"/>
       <item name="Configuring Stylesheets" href="/examples/stylesheet-configuration.html"/>
       <item name="Configuring Custom Tags" href="/examples/tag-configuration.html"/>
+      <item name="Configuring Custom Taglets" href="/examples/taglet-configuration.html"/>
     </menu>
     ${reports}
   </body>

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java?view=diff&rev=440918&r1=440917&r2=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java Wed Sep  6 17:58:31 2006
@@ -26,10 +26,14 @@
 
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
 public class JavadocReportTest
     extends AbstractMojoTestCase
 {
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
     protected void setUp()
         throws Exception
     {
@@ -46,7 +50,6 @@
     public void testDefaultConfiguration()
         throws Exception
     {
-
         File testPom = new File( getBasedir(),
                                  "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
         JavadocReport mojo = (JavadocReport) lookupMojo( "javadoc", testPom );
@@ -126,7 +129,6 @@
         generatedFile =
             new File( getBasedir(), "target/test/unit/default-configuration/target/site/apidocs/stylesheet.css" );
         assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
     }
 
     /**
@@ -167,7 +169,6 @@
         generatedFile = new File( getBasedir(),
                                   "target/test/unit/subpackages-test/target/site/apidocs/subpackages/test/included/IncludedAppSample.html" );
         assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
     }
 
     /**
@@ -202,10 +203,8 @@
         generatedFile =
             new File( getBasedir(), "target/test/unit/docfiles-test/target/site/apidocs/doc-files/excluded-dir2" );
         assertTrue( !FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
     }
 
-
     /**
      * Test javadoc plugin using custom configuration.
      * noindex, notree and nodeprecated parameters were set to true
@@ -278,7 +277,6 @@
         generatedFile = new File( getBasedir(),
             "target/test/unit/custom-configuration/target/site/apidocs/custom/configuration/exclude2/Exclude2App.html" );
         assertTrue( !FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
     }
 
     /**
@@ -289,16 +287,42 @@
     public void testDoclets()
         throws Exception
     {
+        // ----------------------------------------------------------------------
+        // doclet-test: check if the file generated by UmlGraph exists and if
+        // doclet path contains the UmlGraph artifact
+        // ----------------------------------------------------------------------
 
         File testPom = new File( getBasedir(),
                                  "src/test/resources/unit/doclet-test/doclet-test-plugin-config.xml" );
         JavadocReport mojo = (JavadocReport) lookupMojo( "javadoc", testPom );
         mojo.execute();
 
-        //check if the generated file exists
         File generatedFile = new File( getBasedir(), "target/test/unit/doclet-test/target/site/apidocs/graph.dot" );
-        FileUtils.fileExists( generatedFile.getAbsolutePath() );
+        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+
+        File optionsFile = new File( mojo.getOutputDirectory(), "options" );
+        assertTrue( optionsFile.exists() );
+        String options = readFile( optionsFile );
+        assertTrue( options.indexOf( "/target/local-repo/umlgraph/UMLGraph/2.1/UMLGraph-2.1.jar" ) != -1 );
+
+        // ----------------------------------------------------------------------
+        // doclet-path: check if the file generated by UmlGraph exists and if
+        // doclet path contains the twice UmlGraph artifacts
+        // ----------------------------------------------------------------------
+
+        testPom = new File( getBasedir(),
+                                 "src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml" );
+        mojo = (JavadocReport) lookupMojo( "javadoc", testPom );
+        mojo.execute();
 
+        generatedFile = new File( getBasedir(), "target/test/unit/doclet-test/target/site/apidocs/graph.dot" );
+        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+
+        optionsFile = new File( mojo.getOutputDirectory(), "options" );
+        assertTrue( optionsFile.exists() );
+        options = readFile( optionsFile );
+        assertTrue( options.indexOf( "/target/local-repo/umlgraph/UMLGraph/2.1/UMLGraph-2.1.jar" ) != -1 );
+        assertTrue( options.indexOf( "/target/local-repo/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar" ) != -1 );
     }
 
     /**
@@ -392,13 +416,14 @@
         generatedFile =
             new File( getBasedir(), "target/test/unit/quotedpath'test/target/site/apidocs/stylesheet.css" );
         assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
     }
 
+    /**
+     * @throws Exception if any
+     */
     public void testExceptions()
         throws Exception
     {
-
         try
         {
             File testPom =
@@ -407,7 +432,6 @@
             mojo.execute();
 
             fail( "Must throw exception." );
-
         }
         catch ( Exception e )
         {
@@ -419,25 +443,31 @@
             }
             catch( IOException ie )
             {
-                
+                // nop
             }
         }
-
     }
 
-
+    /**
+     * @see junit.framework.TestCase#tearDown()
+     */
     protected void tearDown()
         throws Exception
     {
-
+        // nop
     }
 
     /**
      * Create test repository in target directory.
+     * @throws IOException if any
      */
     private void createTestRepo()
         throws IOException
     {
+        // ----------------------------------------------------------------------
+        // UMLGraph
+        // ----------------------------------------------------------------------
+
         File f = new File( getBasedir(), "target/local-repo/umlgraph/UMLGraph/2.1" );
         f.mkdirs();
 
@@ -454,6 +484,46 @@
                                       "src/test/resources/unit/doclet-test/artifact-doclet/umlgraph/UMLGraph/2.1/UMLGraph-2.1.pom" ),
                             new File( getBasedir(), "target/local-repo/umlgraph/UMLGraph/2.1/UMLGraph-2.1.pom" ) );
 
+        // ----------------------------------------------------------------------
+        // UMLGraph-bis
+        // ----------------------------------------------------------------------
+
+        f = new File( getBasedir(), "target/local-repo/umlgraph/UMLGraph-bis/2.1" );
+        f.mkdirs();
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml" ),
+                            new File( getBasedir(),
+                                      "target/local-repo/umlgraph/UMLGraph-bis/maven-metadata-local.xml" ) );
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar" ),
+                            new File( getBasedir(), "target/local-repo/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar" ) );
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom" ),
+                            new File( getBasedir(), "target/local-repo/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom" ) );
+
+        // ----------------------------------------------------------------------
+        // commons-attributes-compiler
+        // http://www.tullmann.org/pat/taglets/
+        // ----------------------------------------------------------------------
+
+        f = new File( getBasedir(), "target/local-repo/org/tullmann/taglets/1.0" );
+        f.mkdirs();
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml" ),
+                            new File( getBasedir(),
+                                      "target/local-repo/org/tullmann/taglets/maven-metadata-local.xml" ) );
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.jar" ),
+                            new File( getBasedir(), "target/local-repo/org/tullmann/taglets/1.0/taglets-1.0.jar" ) );
+
+        FileUtils.copyFile( new File( getBasedir(),
+                                      "src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom" ),
+                            new File( getBasedir(), "target/local-repo/org/tullmann/taglets/1.0/taglets-1.0.pom" ) );
     }
 
     /**
@@ -478,4 +548,30 @@
         return str;
     }
 
+
+    /**
+     * Method to test the taglet artifact configuration
+     *
+     * @throws Exception
+     */
+    public void testTaglets()
+        throws Exception
+    {
+        // ----------------------------------------------------------------------
+        // taglet-test: check if a taglet is used
+        // ----------------------------------------------------------------------
+
+        File testPom = new File( getBasedir(),
+                                 "src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml" );
+        JavadocReport mojo = (JavadocReport) lookupMojo( "javadoc", testPom );
+        mojo.execute();
+
+        File generatedFile = new File( getBasedir(), "target/test/unit/taglet-test/target/site/apidocs/index.html" );
+        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+
+        File appFile = new File( getBasedir(), "target/test/unit/taglet-test/target/site/apidocs/taglet/test/App.html" );
+        assertTrue( appFile.exists() );
+        String appString = readFile( appFile );
+        assertTrue( appString.indexOf( "<b>To Do:</b>" ) != -1 );
+    }
 }

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,97 @@
+package org.apache.maven.plugin.javadoc.stubs;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Scm;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class DocletPathTestMavenProjectStub
+    extends MavenProjectStub
+{
+    private Scm scm;
+
+    private Build build;
+
+    public DocletPathTestMavenProjectStub()
+    {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try
+        {
+            model = pomReader.read( new FileReader( new File( getBasedir()
+                + "/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml" ) ) );
+            setModel( model );
+        }
+        catch ( Exception e )
+        {
+            throw new RuntimeException( e );
+        }
+
+        setGroupId( model.getGroupId() );
+        setArtifactId( model.getArtifactId() );
+        setVersion( model.getVersion() );
+        setName( model.getName() );
+        setUrl( model.getUrl() );
+        setPackaging( model.getPackaging() );
+
+        Scm scm = new Scm();
+        scm.setConnection( "scm:svn:http://svn.apache.org/maven/sample/trunk" );
+        setScm( scm );
+
+        Build build = new Build();
+        build.setFinalName( model.getArtifactId() );
+        build.setDirectory( getBasedir() + "/target/test/unit/doclet-path-test/target" );
+        setBuild( build );
+
+        String basedir = getBasedir().getAbsolutePath();
+        List compileSourceRoots = new ArrayList();
+        compileSourceRoots.add( basedir + "/src/test/resources/unit/doclet-path-test/doclet/test" );
+        setCompileSourceRoots( compileSourceRoots );
+    }
+
+    public Scm getScm()
+    {
+        return scm;
+    }
+
+    public void setScm( Scm scm )
+    {
+        this.scm = scm;
+    }
+
+    public Build getBuild()
+    {
+        return build;
+    }
+
+    public void setBuild( Build build )
+    {
+        this.build = build;
+    }
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/DocletPathTestMavenProjectStub.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,97 @@
+package org.apache.maven.plugin.javadoc.stubs;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Scm;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class TagletTestMavenProjectStub
+    extends MavenProjectStub
+{
+    private Scm scm;
+
+    private Build build;
+
+    public TagletTestMavenProjectStub()
+    {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try
+        {
+            model = pomReader.read( new FileReader( new File( getBasedir()
+                + "/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml" ) ) );
+            setModel( model );
+        }
+        catch ( Exception e )
+        {
+            throw new RuntimeException( e );
+        }
+
+        setGroupId( model.getGroupId() );
+        setArtifactId( model.getArtifactId() );
+        setVersion( model.getVersion() );
+        setName( model.getName() );
+        setUrl( model.getUrl() );
+        setPackaging( model.getPackaging() );
+
+        Scm scm = new Scm();
+        scm.setConnection( "scm:svn:http://svn.apache.org/maven/sample/trunk" );
+        setScm( scm );
+
+        Build build = new Build();
+        build.setFinalName( model.getArtifactId() );
+        build.setDirectory( getBasedir() + "/target/test/unit/taglet-test/target" );
+        setBuild( build );
+
+        String basedir = getBasedir().getAbsolutePath();
+        List compileSourceRoots = new ArrayList();
+        compileSourceRoots.add( basedir + "/src/test/resources/unit/taglet-test/taglet/test" );
+        setCompileSourceRoots( compileSourceRoots );
+    }
+
+    public Scm getScm()
+    {
+        return scm;
+    }
+
+    public void setScm( Scm scm )
+    {
+        this.scm = scm;
+    }
+
+    public Build getBuild()
+    {
+        return build;
+    }
+
+    public void setBuild( Build build )
+    {
+        this.build = build;
+    }
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/stubs/TagletTestMavenProjectStub.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar?view=auto&rev=440918
==============================================================================
Binary file - no diff available.

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.pom Wed Sep  6 17:58:31 2006
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>umlgraph</groupId>
+  <artifactId>UMLGraph-bis</artifactId>
+  <version>2.1</version>
+  <description>POM was created from install:install-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml Wed Sep  6 17:58:31 2006
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>umlgraph</groupId>
+  <artifactId>UMLGraph-bis</artifactId>
+  <version>4.1</version>
+  <versioning>
+    <versions>
+      <version>4.1</version>
+      <version>2.1</version>
+    </versions>
+    <lastUpdated>20060303121513</lastUpdated>
+  </versioning>
+</metadata>

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/artifact-doclet/umlgraph/UMLGraph-bis/maven-metadata-local.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml Wed Sep  6 17:58:31 2006
@@ -0,0 +1,62 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>doclet.test</groupId>
+  <artifactId>doclet-path-test</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <inceptionYear>2006</inceptionYear>
+  <name>Maven Javadoc Plugin Doclet Path Test</name>
+  <url>http://maven.apache.org</url>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <project implementation="org.apache.maven.plugin.javadoc.stubs.DocletPathTestMavenProjectStub"/>
+          <localRepository>${localRepository}</localRepository>
+          <outputDirectory>${basedir}/target/test/unit/doclet-path-test/target/site/apidocs</outputDirectory>
+          <doclet>UmlGraph</doclet>
+          <docletArtifacts>
+            <docletArtifact>
+              <groupId>umlgraph</groupId>
+              <artifactId>UMLGraph</artifactId>
+              <version>2.1</version>
+            </docletArtifact>
+            <docletArtifact>
+              <groupId>umlgraph</groupId>
+              <artifactId>UMLGraph-bis</artifactId>
+              <version>2.1</version>
+            </docletArtifact>
+          </docletArtifacts>
+          <breakiterator>false</breakiterator>
+          <old>false</old>
+          <show>protected</show>
+          <quiet>false</quiet>
+          <verbose>false</verbose>
+          <author>true</author>
+          <charset>ISO-8859-1</charset>
+          <docfilessubdirs>false</docfilessubdirs>
+          <linksource>false</linksource>
+          <nocomment>false</nocomment>
+          <nodeprecated>false</nodeprecated>
+          <nodeprecatedlist>false</nodeprecatedlist>
+          <nohelp>false</nohelp>
+          <noindex>false</noindex>
+          <nonavbar>false</nonavbar>
+          <nosince>false</nosince>
+          <notree>false</notree>
+          <serialwarn>false</serialwarn>
+          <splitindex>false</splitindex>
+          <stylesheet>java</stylesheet>
+          <groups/>
+          <tags/>
+          <remoteRepositories/>
+          <use>true</use>
+          <version>true</version>
+          <windowtitle>Maven Javadoc Plugin Doclet Path Test 1.0-SNAPSHOT API</windowtitle>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,46 @@
+package doclet.test;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Sample class inside the package to be included in the javadoc
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class App
+{
+    /**
+     * The main method
+     *
+     * @param args  an array of strings that contains the arguments
+     */
+    public static void main( String[] args )
+    {
+        System.out.println( "Sample Application." );
+    }
+
+    /**
+     * Sample method that prints out the parameter string.
+     *
+     * @param str   The string value to be printed.
+     */
+    protected void sampleMethod( String str )
+    {
+        System.out.println( str );
+    }
+
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,76 @@
+package doclet.test;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Sample class inside the package to be included in the javadoc
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class AppSample
+{
+    /**
+     * Contains the file to be set
+     */
+    protected File file;
+
+    /**
+     * The main method
+     *
+     * @param args  an array of strings that contains the arguments
+     */
+    public static void main( String[] args )
+    {
+        System.out.println( "Another Sample Application" );
+    }
+
+    /**
+     * Setter method for variable file
+     *
+     * @param file the value to be set
+     */
+    public void setFile( File file )
+    {
+        this.file = file;
+    }
+
+    /**
+     * Getter method for variable file
+     *
+     * @return a File object
+     */
+    public File getFile()
+    {
+        return file;
+    }
+
+    /**
+     * Create new file
+     *
+     * @throws java.io.IOException  thrown if an I/O error occurred during file creation
+     */
+    public void createFile()
+        throws IOException
+    {
+        File f = new File( file.getAbsolutePath() );
+        f.createNewFile();
+    }
+
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/doclet-path-test/doclet/test/AppSample.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.jar
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.jar?view=auto&rev=440918
==============================================================================
Binary file - no diff available.

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/1.0/taglets-1.0.pom Wed Sep  6 17:58:31 2006
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.tullmann</groupId>
+  <artifactId>taglets</artifactId>
+  <version>1.0</version>
+  <description>POM was created from install:install-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml Wed Sep  6 17:58:31 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>org.tullmann</groupId>
+  <artifactId>taglets</artifactId>
+  <version>1.0</version>
+  <versioning>
+    <versions>
+      <version>1.0</version>
+    </versions>
+    <lastUpdated>20060906202046</lastUpdated>
+  </versioning>
+</metadata>

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/artifact-taglet/org/tullmann/taglets/maven-metadata-local.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml Wed Sep  6 17:58:31 2006
@@ -0,0 +1,55 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>taglet.test</groupId>
+  <artifactId>taglet-test</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <inceptionYear>2006</inceptionYear>
+  <name>Maven Javadoc Plugin Taglet Test</name>
+  <url>http://maven.apache.org</url>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <project implementation="org.apache.maven.plugin.javadoc.stubs.TagletTestMavenProjectStub"/>
+          <localRepository>${localRepository}</localRepository>
+          <outputDirectory>${basedir}/target/test/unit/taglet-test/target/site/apidocs</outputDirectory>
+          <taglet>org.tullmann.taglets.ToDo</taglet>
+          <tagletArtifact>
+            <groupId>org.tullmann</groupId>
+            <artifactId>taglets</artifactId>
+            <version>1.0</version>
+          </tagletArtifact>
+          <breakiterator>false</breakiterator>
+          <old>false</old>
+          <show>protected</show>
+          <quiet>false</quiet>
+          <verbose>false</verbose>
+          <author>true</author>
+          <charset>ISO-8859-1</charset>
+          <docfilessubdirs>false</docfilessubdirs>
+          <linksource>false</linksource>
+          <nocomment>false</nocomment>
+          <nodeprecated>false</nodeprecated>
+          <nodeprecatedlist>false</nodeprecatedlist>
+          <nohelp>false</nohelp>
+          <noindex>false</noindex>
+          <nonavbar>false</nonavbar>
+          <nosince>false</nosince>
+          <notree>false</notree>
+          <serialwarn>false</serialwarn>
+          <splitindex>false</splitindex>
+          <stylesheet>java</stylesheet>
+          <groups/>
+          <tags/>
+          <remoteRepositories/>
+          <use>true</use>
+          <version>true</version>
+          <windowtitle>Maven Javadoc Plugin Taglet Test 1.0-SNAPSHOT API</windowtitle>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,46 @@
+package taglet.test;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Sample class inside the package to be included in the javadoc
+ *
+ * @todo To test!
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class App
+{
+    /**
+     * The main method
+     *
+     * @param args  an array of strings that contains the arguments
+     */
+    public static void main( String[] args )
+    {
+        System.out.println( "Sample Application." );
+    }
+
+    /**
+     * Sample method that prints out the parameter string.
+     *
+     * @param str   The string value to be printed.
+     */
+    protected void sampleMethod( String str )
+    {
+        System.out.println( str );
+    }
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java?view=auto&rev=440918
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java Wed Sep  6 17:58:31 2006
@@ -0,0 +1,76 @@
+package taglet.test;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Sample class inside the package to be included in the javadoc
+ *
+ * @todo To test!
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ */
+public class AppSample
+{
+    /**
+     * Contains the file to be set
+     */
+    protected File file;
+
+    /**
+     * The main method
+     *
+     * @param args  an array of strings that contains the arguments
+     */
+    public static void main( String[] args )
+    {
+        System.out.println( "Another Sample Application" );
+    }
+
+    /**
+     * Setter method for variable file
+     *
+     * @param file the value to be set
+     */
+    public void setFile( File file )
+    {
+        this.file = file;
+    }
+
+    /**
+     * Getter method for variable file
+     *
+     * @return a File object
+     */
+    public File getFile()
+    {
+        return file;
+    }
+
+    /**
+     * Create new file
+     *
+     * @throws java.io.IOException  thrown if an I/O error occurred during file creation
+     */
+    public void createFile()
+        throws IOException
+    {
+        File f = new File( file.getAbsolutePath() );
+        f.createNewFile();
+    }
+}

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/taglet-test/taglet/test/AppSample.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"