Author: vsiveton
Date: Wed Mar 1 04:15:46 2006
New Revision: 382000
URL: http://svn.apache.org/viewcvs?rev=382000&view=rev
Log:
PR: MJAVADOC-8 <group> parameter seems hard to use
Refactored the group option
Updated documentation and tests.
Added:
maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/
maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
Modified:
maven/plugins/trunk/maven-javadoc-plugin/pom.xml
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/configuration.apt
maven/plugins/trunk/maven-javadoc-plugin/src/test/projects/javadoc-plugin-test1/pom.xml
Modified: maven/plugins/trunk/maven-javadoc-plugin/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-javadoc-plugin/pom.xml?rev=382000&r1=381999&r2=382000&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/pom.xml Wed Mar 1 04:15:46 2006
@@ -30,6 +30,26 @@
<timezone>-5</timezone>
</developer>
</developers>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-8</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <version>1.0.0</version>
+ <model>src/main/mdo/javadocOptions.mdo</model>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
URL:
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java?rev=382000&r1=381999&r2=382000&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 Mar 1 04:15:46 2006
@@ -33,6 +33,7 @@
import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.model.Model;
+import org.apache.maven.plugin.javadoc.options.Group;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.MavenReportException;
@@ -211,7 +212,7 @@
/**
* Specifies the access level for classes and members to show in the
Javadocs.
- * Possible values are:
+ * 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>
@@ -220,7 +221,7 @@
* (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).
- *
+ *
* @parameter expression="${show}" default-value="protected"
*/
private String show = "protected";
@@ -323,9 +324,9 @@
* See <a
href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#group">group</a>.
* It is a comma separated String.
*
- * @parameter expression="${group}"
+ * @parameter expression="${groups}"
*/
- private String group;
+ private Group[] groups;
/**
* Specifies the header text to be placed at the top of each output file.
@@ -819,15 +820,15 @@
bottom = StringUtils.replace( bottom, "{currentYear}", year );
- if ( model != null && model.getInceptionYear() != null )
+ if ( model != null && model.getInceptionYear() != null )
{
if ( model.getInceptionYear().equals( year ) )
{
- bottom = StringUtils.replace( bottom, "{inceptionYear}-",
"" );
+ bottom = StringUtils.replace( bottom, "{inceptionYear}-",
"" );
}
else
{
- bottom = StringUtils.replace( bottom, "{inceptionYear}",
model.getInceptionYear() );
+ bottom = StringUtils.replace( bottom, "{inceptionYear}",
model.getInceptionYear() );
}
}
@@ -847,7 +848,17 @@
addArgIfNotEmpty( arguments, "-doctitle", quotedArgument( doctitle
) );
addArgIfNotEmpty( arguments, "-excludedocfilessubdir",
quotedPathArgument( excludedocfilessubdir ), 1.4f );
addArgIfNotEmpty( arguments, "-footer", quotedArgument( footer ) );
- addArgIfNotEmpty( arguments, "-group", quotedArgument( group ),
true );
+ for ( int i = 0; i < groups.length; i++ )
+ {
+ if ( ( groups[i] == null ) || ( StringUtils.isEmpty(
groups[i].getTitle() ) )
+ || ( StringUtils.isEmpty( groups[i].getPackages() ) ) )
+ {
+ getLog().info( "A group option is empty. Ignore this
option." );
+ continue;
+ }
+ addArgIfNotEmpty( arguments, "-group", quotedArgument(
groups[i].getTitle() ) + " "
+ + quotedArgument( groups[i].getPackages() ), true );
+ }
addArgIfNotEmpty( arguments, "-header", quotedArgument( header ) );
addArgIfNotEmpty( arguments, "-helpfile", quotedPathArgument(
helpfile ) );
Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
URL:
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo?rev=382000&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
(added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
Wed Mar 1 04:15:46 2006
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+
+<model>
+ <id>javadocoptions</id>
+ <name>JavadocOptions</name>
+ <description><![CDATA[Model for Javadoc Options.]]></description>
+ <defaults>
+ <default>
+ <key>package</key>
+ <value>org.apache.maven.plugin.javadoc.options</value>
+ </default>
+ </defaults>
+ <classes>
+ <class>
+ <name>Group</name>
+ <description>A Group parameter.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>title</name>
+ <description>Title can be any text, and can include white space.
This text is placed in the table heading for the group.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ <identifier>true</identifier>
+ </field>
+ <field>
+ <name>packages</name>
+ <description>Packages can be any package name, or can be the start
of any package name followed by an asterisk (*). The asterisk is a wildcard
meaning "match any characters". This is the only wildcard allowed. Multiple
patterns can be included in a group by separating them with colons
(:).</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ <identifier>true</identifier>
+ </field>
+ </fields>
+ </class>
+ </classes>
+</model>
+
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/configuration.apt
URL:
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/configuration.apt?rev=382000&r1=381999&r2=382000&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/configuration.apt
(original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/site/apt/configuration.apt Wed
Mar 1 04:15:46 2006
@@ -3,13 +3,13 @@
------
Vincent Siveton
------
- 10 July 2005
+ 01 March 2005
------
-
+
Javadoc Plugin Configuration
- To generate the project javadocs as part of the site generation, add
configuration
+ To generate the project javadocs as part of the site generation, add
configuration
similar to the following to your POM:
-------------------
@@ -35,7 +35,7 @@
The configuration within <reporting> is not used when javadoc is explicitly
invoked
via 'mvn javadoc:javadoc'. To configure explicit invocation, use the
<build> element instead:
-
+
-------------------
<project>
...
@@ -56,3 +56,39 @@
...
</project>
-------------------
+
+Specific configuration for some Javadoc options
+
+ Some Javadoc options have a specific configuration. Add similar configuration
to your POM:
+
+*group
+
+-------------------
+<project>
+ ...
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <groups>
+ <group>
+ <title>Core Packages</title>
+ <packages>org.apache.maven.plugin.javadoc.test1</packages>
+ </group>
+ <group>
+ <title>Extension Packages</title>
+ <packages>org.apache.maven.plugin.javadoc.test2</packages>
+ </group>
+ </groups>
+ ...
+ </configuration>
+ </plugin>
+ </plugins>
+ ...
+ </build>
+ ...
+</project>
+-------------------
+
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/test/projects/javadoc-plugin-test1/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-javadoc-plugin/src/test/projects/javadoc-plugin-test1/pom.xml?rev=382000&r1=381999&r2=382000&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/test/projects/javadoc-plugin-test1/pom.xml
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/test/projects/javadoc-plugin-test1/pom.xml
Wed Mar 1 04:15:46 2006
@@ -57,7 +57,16 @@
<bottom>Copyright me</bottom>
<source>true</source>
<link>http://java.sun.com/j2se/1.4.2/docs/api,
http://maven.apache.org/apidocs/</link>
- <group>"Core Packages" "org.apache.maven.plugin.javadoc.test1",
"Extension Packages" "org.apache.maven.plugin.javadoc.test2"</group>
+ <groups>
+ <group>
+ <title>Core Packages</title>
+ <packages>org.apache.maven.plugin.javadoc.test1</packages>
+ </group>
+ <group>
+ <title>Extension Packages</title>
+ <packages>org.apache.maven.plugin.javadoc.test2</packages>
+ </group>
+ </groups>
<tag>.usage:a:Usage:, .todo:a:To do something:, .fixme:a:Fixme:</tag>
</configuration>
</plugin>