You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ah...@apache.org on 2004/06/29 01:14:24 UTC

cvs commit: maven-plugins/javadoc/xdocs changes.xml properties.xml

aheritier    2004/06/28 16:14:24

  Modified:    javadoc  plugin.jelly
               javadoc/xdocs changes.xml properties.xml
  Log:
  - Add the property maven.javadoc.debug
  - MPJAVADOC-28 partially fixed : @link tag not working with package names.
  - MPJAVADOC-29 partially fixed : Packages list broken on jdk 1.3 for multiple packages.
  
  Revision  Changes    Path
  1.44      +198 -71   maven-plugins/javadoc/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/javadoc/plugin.jelly,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- plugin.jelly	9 Jun 2004 21:54:38 -0000	1.43
  +++ plugin.jelly	28 Jun 2004 23:14:24 -0000	1.44
  @@ -28,30 +28,90 @@
     xmlns:maven="jelly:maven"
     >
   
  -  <goal name="maven-javadoc-plugin:register">      
  -
  -    <javadoc:check-needed/>
  -
  -    <j:if test="${needed}">
  -      <doc:registerReport 
  -        name="JavaDocs" 
  -        pluginName="maven-javadoc-plugin"
  -        link="apidocs/index"
  -        target="_blank"
  -        description="JavaDoc API documentation."
  -        />
  -      <doc:registerReport 
  -        name="JavaDoc Report" 
  -        pluginName=""
  -        link="javadoc"
  -        description="Report on the generation of JavaDoc."
  -        />
  -    </j:if>
  -  </goal>
  +  <!-- ================================================================== -->
  +  <!-- Initialize plugin                                                  -->
  +  <!-- ================================================================== -->
     
  -  <goal name="maven-javadoc-plugin:deregister">
  -    <doc:deregisterReport name="JavaDocs"/>
  -    <doc:deregisterReport name="JavaDoc Report"/>
  +  <goal name="javadoc:init" prereqs="xdoc:init">
  +    <!-- javadoc plugin properties -->
  +    <maven:get var="maven.javadoc.additionalparam"  plugin="maven-javadoc-plugin" property="maven.javadoc.additionalparam"/>
  +    <maven:get var="maven.javadoc.author"           plugin="maven-javadoc-plugin" property="maven.javadoc.author"/>
  +    <maven:get var="maven.javadoc.customtags"       plugin="maven-javadoc-plugin" property="maven.javadoc.customtags"/>
  +    <maven:get var="maven.javadoc.debug"            plugin="maven-javadoc-plugin" property="maven.javadoc.debug"/>
  +    <maven:get var="maven.javadoc.destdir"          plugin="maven-javadoc-plugin" property="maven.javadoc.destdir"/>
  +    <maven:get var="maven.javadoc.doclet"           plugin="maven-javadoc-plugin" property="maven.javadoc.doclet"/>
  +    <maven:get var="maven.javadoc.docletpath"       plugin="maven-javadoc-plugin" property="maven.javadoc.docletpath"/>
  +    <maven:get var="maven.javadoc.links"            plugin="maven-javadoc-plugin" property="maven.javadoc.links"/>
  +    <maven:get var="maven.javadoc.locale"           plugin="maven-javadoc-plugin" property="maven.javadoc.locale"/>
  +    <maven:get var="maven.javadoc.maxmemory"        plugin="maven-javadoc-plugin" property="maven.javadoc.maxmemory"/>
  +    <maven:get var="maven.javadoc.mode.online"      plugin="maven-javadoc-plugin" property="maven.javadoc.mode.online"/>
  +    <maven:get var="maven.javadoc.offlineLinks"     plugin="maven-javadoc-plugin" property="maven.javadoc.offlineLinks"/>
  +    <maven:get var="maven.javadoc.overview"         plugin="maven-javadoc-plugin" property="maven.javadoc.overview"/>
  +    <maven:get var="maven.javadoc.package"          plugin="maven-javadoc-plugin" property="maven.javadoc.package"/>
  +    <maven:get var="maven.javadoc.private"          plugin="maven-javadoc-plugin" property="maven.javadoc.private"/>
  +    <maven:get var="maven.javadoc.public"           plugin="maven-javadoc-plugin" property="maven.javadoc.public"/>
  +    <maven:get var="maven.javadoc.source"           plugin="maven-javadoc-plugin" property="maven.javadoc.source"/>
  +    <maven:get var="maven.javadoc.stylesheet"       plugin="maven-javadoc-plugin" property="maven.javadoc.stylesheet"/>
  +    <maven:get var="maven.javadoc.tagletpath"       plugin="maven-javadoc-plugin" property="maven.javadoc.tagletpath"/>
  +    <maven:get var="maven.javadoc.taglets"          plugin="maven-javadoc-plugin" property="maven.javadoc.taglets"/>
  +    <maven:get var="maven.javadoc.use"              plugin="maven-javadoc-plugin" property="maven.javadoc.use"/>
  +    <maven:get var="maven.javadoc.useexternalfile"  plugin="maven-javadoc-plugin" property="maven.javadoc.useexternalfile"/>
  +    <maven:get var="maven.javadoc.version"          plugin="maven-javadoc-plugin" property="maven.javadoc.version"/>
  +    <maven:get var="maven.javadoc.windowtitle"      plugin="maven-javadoc-plugin" property="maven.javadoc.windowtitle"/>
  +    
  +    <!-- internal variables -->
  +    <j:set var="internal.javadoc.jar"               value="${maven.build.dir}/${maven.final.name}_javadoc.jar"/>
  +    <j:set var="internal.javadoc.needed"            value="null"/>
  +    <j:set var="internal.javadoc.src.modifs"        value="false"/>
  +    <j:set var="internal.javadoc.src.set"           value="${context.getAntProject().getReferences().get('maven.compile.src.set')}"/>
  +    <j:set var="internal.javadoc.working.dir"       value="${maven.build.dir}/javadoc"/>
  +   
  +    <j:if test="${maven.javadoc.debug}">
  +      <ant:echo>
  +### Debug mode is on ###
  +==================================
  +=== javadoc plugin properties  ===
  +==================================
  +maven.javadoc.additionalparam   = [${maven.javadoc.additionalparam}]
  +maven.javadoc.author            = [${maven.javadoc.author}]
  +maven.javadoc.customtags        = [${maven.javadoc.customtags}]
  +maven.javadoc.debug             = [${maven.javadoc.debug}]
  +maven.javadoc.destdir           = [${maven.javadoc.destdir}]
  +maven.javadoc.doclet            = [${maven.javadoc.doclet}]
  +maven.javadoc.docletpath        = [${maven.javadoc.docletpath}]
  +maven.javadoc.links             = [${maven.javadoc.links}]
  +maven.javadoc.locale            = [${maven.javadoc.locale}]
  +maven.javadoc.maxmemory         = [${maven.javadoc.maxmemory}]
  +maven.javadoc.mode.online       = [${maven.javadoc.mode.online}]
  +maven.javadoc.offlineLinks      = [${maven.javadoc.offlineLinks}]
  +maven.javadoc.overview          = [${maven.javadoc.overview}]
  +maven.javadoc.package           = [${maven.javadoc.package}]
  +maven.javadoc.private           = [${maven.javadoc.private}]
  +maven.javadoc.public            = [${maven.javadoc.public}]
  +maven.javadoc.source            = [${maven.javadoc.source}]
  +maven.javadoc.stylesheet        = [${maven.javadoc.stylesheet}]
  +maven.javadoc.tagletpath        = [${maven.javadoc.tagletpath}]
  +maven.javadoc.taglets           = [${maven.javadoc.taglets}]
  +maven.javadoc.use               = [${maven.javadoc.use}]
  +maven.javadoc.useexternalfile   = [${maven.javadoc.useexternalfile}]
  +maven.javadoc.version           = [${maven.javadoc.version}]
  +maven.javadoc.windowtitle       = [${maven.javadoc.windowtitle}]
  +==================================
  +=== javadoc internal variables ===
  +==================================
  +internal.javadoc.jar            = [${internal.javadoc.jar}]
  +internal.javadoc.needed         = [${internal.javadoc.needed}]
  +internal.javadoc.src.modifs     = [${internal.javadoc.src.modifs}]
  +internal.javadoc.src.set        = [${internal.javadoc.src.set}]
  +internal.javadoc.working.dir    = [${internal.javadoc.working.dir}]
  +      </ant:echo>
  +    </j:if>
  +    <j:if test="not ${maven.javadoc.debug}">
  +      <ant:echo>
  +### Debug mode is off ###
  +      </ant:echo>
  +    </j:if>
  +
     </goal>
   
     <!-- ================================================================== -->
  @@ -60,17 +120,14 @@
   
     <define:taglib uri="javadoc">
       <define:tag name="check-needed">
  -      
  +      <j:if test="${maven.javadoc.debug}"><ant:echo>check-needed</ant:echo></j:if>
         <j:choose>
         
  -        <j:when test="${needed != null}">
  +        <j:when test="${internal.javadoc.needed != null}">
             <!-- We have already decided if javadoc is needed -->
  +          <j:if test="${maven.javadoc.debug}"><ant:echo>${internal.javadoc.needed} not null</ant:echo></j:if>
           </j:when>
  -        
  -        <j:when test="${sourcesPresent != 'true'}">
  -          <j:set var="needed" value="false" />
  -        </j:when>
  -        
  +                
           <j:otherwise>
             <!-- Create a patternset for source modifications -->
             <patternset id="source.modifications">
  @@ -88,9 +145,18 @@
                 </j:if>
               </j:forEach> <!-- end sourceModification -->
             </patternset>
  +          
  +          <!-- test if sourceModifications are defined -->
  +          <j:if test="${pom.build.sourceModifications != null &amp;&amp; !pom.build.sourceModifications.isEmpty()}">
  +            <j:set var="internal.javadoc.src.modifs" scope="parent" value="true"/>
  +          </j:if>
  +          
  +          <j:if test="${maven.javadoc.debug}">
  +            <ant:echo>internal.javadoc.src.modifs is ${internal.javadoc.src.modifs}</ant:echo>
  +          </j:if>
   
             <!-- Tokenize the set of directories -->
  -          <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize>
  +          <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize>
             
             <!-- Counter used to name filesets -->
             <j:set var="src.set.counter" value="0"/>
  @@ -98,7 +164,7 @@
             <!-- For each directory -->
             <j:forEach var="dir" items="${sources.dirs}">
               <!-- If we have not already find sources -->
  -            <j:if test="${needed != true}">
  +            <j:if test="${internal.javadoc.needed != true}">
                 <!-- We construct the fileset -->
                 <ant:fileset id="${src.set.counter}" dir="${dir}">
                   <patternset refid="source.modifications"/>
  @@ -108,7 +174,7 @@
                   <ant:fileset refid="${src.set.counter}" />
                 </ant:fileScanner>
       
  -              <j:set var="needed" scope="parent" 
  +              <j:set var="internal.javadoc.needed" scope="parent" 
                    value="${sources.iterator().hasNext()}" />
     
                 <j:set var="src.set.counter" value="${src.set.counter + 1}"/>
  @@ -118,24 +184,55 @@
           </j:otherwise>
         </j:choose>
   
  +      <j:if test="${maven.javadoc.debug}">
  +        <ant:echo>internal.javadoc.needed is ${internal.javadoc.needed}</ant:echo>
  +      </j:if>
  +
       </define:tag>
     </define:taglib>
   
  +
     <!-- ================================================================== -->
  -  <!-- J A V A D O C S                                                    -->
  +  <!-- J A V A D O C S   R E P O R T S                                    -->
     <!-- ================================================================== -->
   
  -  <!-- Some aliases for ease of use and backward compat. -->
  -  <goal name="javadoc:generate" prereqs="maven-javadoc-plugin:report"/>
  -  <goal name="javadoc" prereqs="maven-javadoc-plugin:report"/>
  +  <goal name="maven-javadoc-plugin:register">      
  +
  +    <javadoc:check-needed/>
  +
  +    <j:if test="${internal.javadoc.needed}">
  +      <doc:registerReport 
  +        name="JavaDocs" 
  +        pluginName="maven-javadoc-plugin"
  +        link="apidocs/index"
  +        target="_blank"
  +        description="JavaDoc API documentation."
  +        />
  +      <doc:registerReport 
  +        name="JavaDoc Report" 
  +        pluginName=""
  +        link="javadoc"
  +        description="Report on the generation of JavaDoc."
  +        />
  +    </j:if>
  +  </goal>
  +  
  +  <goal name="maven-javadoc-plugin:deregister">
  +    <doc:deregisterReport name="JavaDocs"/>
  +    <doc:deregisterReport name="JavaDoc Report"/>
  +  </goal>
  +
  +  <!-- ================================================================== -->
  +  <!-- J A V A D O C S                                                    -->
  +  <!-- ================================================================== -->
   
     <goal name="maven-javadoc-plugin:report"
  -        prereqs="xdoc:init"
  +        prereqs="javadoc:init"
           description="Generate API documentation">
   
       <javadoc:check-needed/>
       
  -    <j:if test="${needed}">
  +    <j:if test="${internal.javadoc.needed}">
   
         <ant:mkdir dir="${maven.javadoc.destdir}"/>
   
  @@ -180,8 +277,8 @@
   
         <j:set var="maxMemory" value="${maven.javadoc.maxmemory}" />
   
  -      <ant:mkdir dir="${maven.build.dir}/javadoc/" />
  -      <ant:record name="${maven.build.dir}/javadoc/report.txt" action="start" />
  +      <ant:mkdir dir="${internal.javadoc.working.dir}" />
  +      <ant:record name="${internal.javadoc.working.dir}/report.txt" action="start" />
         
         <ant:javadoc
           packagenames="${pom.package}.*"
  @@ -198,20 +295,35 @@
           stylesheetfile="${maven.javadoc.stylesheet}"
           additionalparam="${maven.javadoc.additionalparam}"
           useexternalfile="${maven.javadoc.useexternalfile}"
  +        verbose="${maven.javadoc.debug}"
           >
   
  -        <!-- Tokenize the set of directories -->
  -        <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize>
  -    
  -        <j:forEach var="dir" items="${sources.dirs}">
  -        
  -          <echo>[${dir}] added to javadoc sources</echo>
  -          <ant:fileset dir="${dir}">
  -            <patternset refid="source.modifications"/>
  -          </ant:fileset> 
  -
  -        </j:forEach> <!-- dir in maven.compile.src.set -->        
  +        <j:if test="${internal.javadoc.src.modifs == true}">
  +          <j:if test="${maven.javadoc.debug}">
  +            <ant:echo>Javadoc uses a fileset</ant:echo>
  +          </j:if>
  +          <!-- Tokenize the set of directories -->
  +          <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize>
  +      
  +          <j:forEach var="dir" items="${sources.dirs}">
  +          
  +            <echo>[${dir}] added to javadoc sources</echo>
  +            <ant:fileset dir="${dir}">
  +              <patternset refid="source.modifications"/>
  +            </ant:fileset> 
  +  
  +          </j:forEach> <!-- dir in maven.compile.src.set -->        
  +        </j:if>
   
  +        <j:if test="${internal.javadoc.src.modifs != true}">
  +          <j:if test="${maven.javadoc.debug}">
  +            <ant:echo>Javadoc uses a source path</ant:echo>
  +          </j:if>
  +          <ant:sourcepath>
  +            <ant:path refid="maven.compile.src.set"/>
  +          </ant:sourcepath>
  +        </j:if>
  +        
           <j:if test="${context.getVariable('maven.javadoc.source') != null}">
             <ant:setProperty name="source" value="${maven.javadoc.source}" />
           </j:if>
  @@ -298,12 +410,12 @@
   
         </ant:javadoc>
         
  -      <ant:record name="${maven.build.dir}/javadoc/report.txt" action="stop" />
  +      <ant:record name="${internal.javadoc.working.dir}/report.txt" action="stop" />
   
         <j:set var="genDocs" value="${maven.gen.docs}" />
         
         <!-- load file in order to remove absolute paths -->
  -      <util:file name="${maven.build.dir}/javadoc/report.txt" var="inputFileObject"/>
  +      <util:file name="${internal.javadoc.working.dir}/report.txt" var="inputFileObject"/>
         <util:loadText var="inputText" file="${inputFileObject}"/>
       
         <!-- remove [javadoc] prefix from rows -->
  @@ -334,34 +446,40 @@
           section="Javadoc Report"
           inputText="${inputText}"
           output="${genDocs}/javadoc.xml"/>
  -        
  -      <!-- 
  -      Because we use in the javadoc task a fileset and not a packageset
  -      (to allow sourceModifications) the javadoc doesn't copy 
  -      automatically doc-files directories.
  -      We must do it manually.
  -      -->
  -      <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize>
  -      <ant:copy todir="${maven.javadoc.destdir}">
  -        <j:forEach var="dir" items="${sources.dirs}">      
  -          <ant:fileset dir="${dir}">
  -            <ant:include name="**/doc-files/**/*"/>
  -          </ant:fileset>
  -        </j:forEach>
  -      </ant:copy>
  +      
  +      <j:if test="${internal.javadoc.src.modifs}">  
  +        <!-- 
  +        Because we use in the javadoc task a fileset and not a packageset
  +        (to allow sourceModifications) the javadoc doesn't copy 
  +        automatically doc-files directories.
  +        We must do it manually.
  +        -->
  +        <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize>
  +        <ant:copy todir="${maven.javadoc.destdir}">
  +          <j:forEach var="dir" items="${sources.dirs}">      
  +            <ant:fileset dir="${dir}">
  +              <ant:include name="**/doc-files/**/*"/>
  +            </ant:fileset>
  +          </j:forEach>
  +        </ant:copy>
  +      </j:if>
       </j:if>
   
  -    <j:if test="${!needed}">
  +    <j:if test="not ${internal.javadoc.needed}">
         <ant:echo>No sources found. Javadoc not created !</ant:echo>
       </j:if>
     </goal>
  +
  +  <!-- ================================================================== -->
  +  <!-- P A C K A G E  A N D  D E P L O Y  J A V A D O C S                 -->
  +  <!-- ================================================================== -->
     
     <!--==================================================================-->
     <!-- Create a jar file containing the javadoc                         -->
     <!--==================================================================-->      
     <goal name="javadoc:jar" prereqs="javadoc">
       <j:set var="maven.javadoc.final.name" 
  -           value="${maven.build.dir}/${maven.final.name}_javadoc.jar" />   
  +           value="${internal.javadoc.jar}" />   
       <ant:jar 
            destfile="${maven.javadoc.final.name}"
            basedir="${maven.javadoc.destdir}"         
  @@ -424,4 +542,13 @@
           project="${pom}"/>    
           
     </goal>
  +
  +  <!-- ================================================================== -->
  +  <!-- B A C K W A R D  C O M P A T I B I L I T Y                         -->
  +  <!-- ================================================================== -->
  +
  +  <!-- Some aliases for ease of use and backward compat. -->
  +  <goal name="javadoc:generate" prereqs="maven-javadoc-plugin:report"/> 
  +  <goal name="javadoc" prereqs="maven-javadoc-plugin:report"/>
  +
   </project>
  
  
  
  1.33      +3 -0      maven-plugins/javadoc/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/javadoc/xdocs/changes.xml,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- changes.xml	9 Jun 2004 21:54:38 -0000	1.32
  +++ changes.xml	28 Jun 2004 23:14:24 -0000	1.33
  @@ -24,6 +24,9 @@
     </properties>
     <body>
       <release version="1.5.1-SNAPSHOT" date="In CVS">
  +      <action dev="aheritier" type="fix" issue="MPJAVADOC-29">Packages list broken on jdk 1.3 for multiple packages.</action>
  +      <action dev="aheritier" type="fix" issue="MPJAVADOC-28">@link tag not working with package names.</action>
  +      <action dev="aheritier" type="add">Add the property maven.javadoc.debug to print informations to debug the plugin.</action>
         <action dev="aheritier" type="fix" issue="MPJAVADOC-26" due-to="Denis McLaughlin">Fix the needed flag when there's an empty sources directory.</action>
         <action dev="aheritier" type="fix" issue="MPJAVADOC-24">doc-files directories contents are correctly copied.</action>
         <action dev="brett" type="fix" issue="MPJAVADOC-5">Add support for multiple source directories.</action>
  
  
  
  1.15      +8 -0      maven-plugins/javadoc/xdocs/properties.xml
  
  Index: properties.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/javadoc/xdocs/properties.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- properties.xml	9 Jun 2004 22:28:03 -0000	1.14
  +++ properties.xml	28 Jun 2004 23:14:24 -0000	1.15
  @@ -74,6 +74,14 @@
             </td>
           </tr>
           <tr>
  +          <td>maven.javadoc.debug</td>
  +          <td>Yes</td>
  +          <td>
  +            Print informations to debug the plugin. 
  +            The default value is <code>false</code>.
  +          </td>
  +        </tr>
  +        <tr>
             <td>maven.javadoc.destdir</td>
             <td>Yes</td>
             <td>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org