evenisse    2004/02/06 09:56:25

  Modified:    javadoc  plugin.jelly
  Log:
  Apply new patch for MPJAVADOC-19
  
  Revision  Changes    Path
  1.30      +211 -177  maven-plugins/javadoc/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/javadoc/plugin.jelly,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- plugin.jelly      6 Feb 2004 13:42:40 -0000       1.29
  +++ plugin.jelly      6 Feb 2004 17:56:25 -0000       1.30
  @@ -7,10 +7,14 @@
     xmlns:j="jelly:core" 
     xmlns:util="jelly:util"
     xmlns:artifact="artifact"
  +  xmlns:javadoc="javadoc"
     >
   
     <goal name="maven-javadoc-plugin:register">
  -    <j:if test="${sourcesPresent}">
  +
  +    <javadoc:check-needed/>
  +
  +    <j:if test="${needed}">
         <doc:registerReport 
           name="JavaDocs" 
           pluginName="maven-javadoc-plugin"
  @@ -30,197 +34,227 @@
     </goal>
   
     <!-- ================================================================== -->
  -  <!-- J A V A D O C S                                                    -->
  +  <!-- Test if we need to call javadoc                                    -->
     <!-- ================================================================== -->
   
  -  <!-- 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"/>
  +  <define:taglib uri="javadoc">
  +    <define:tag name="check-needed">
   
  -  <goal name="maven-javadoc-plugin:report"
  -        prereqs="xdoc:init"
  -        description="Generate API documentation">
  -
  -    <j:if test="${sourcesPresent == 'true'}">
  +      <j:choose>
   
  -      <ant:fileset id="sources" dir="${pom.build.sourceDirectory}">
  -        <ant:include name="**/*.java"/>
  +        <j:when test="${needed != null}">
  +      <!-- We have already decided if javadoc is needed -->
  +    </j:when>
  +
  +        <j:when test="${sourcesPresent != 'true'}">
  +          <j:set var="needed" value="false" />
  +        </j:when>
  +
  +    <j:otherwise>
  +          <ant:fileset id="sourceSet" dir="${pom.build.sourceDirectory}">
  +            <ant:include name="**/*.java"/>
           <!-- FIXME: This is a bad cut and paste -->
           <!-- handle source modifications -->
           <j:forEach var="sm" items="${pom.build.sourceModifications}">
             <ant:available property="classPresent" classname="${sm.className}"/>
             <j:if test="${classPresent != 'true'}">
  -            <j:forEach var="exclude" items="${sm.excludes}">
  -              <ant:exclude name="${exclude}"/>
  -            </j:forEach>
  -            <j:forEach var="include" items="${sm.includes}">
  -              <ant:include name="${include}"/>
  -            </j:forEach>
  +        <j:forEach var="exclude" items="${sm.excludes}">
  +          <ant:exclude name="${exclude}"/>
  +        </j:forEach>
  +        <j:forEach var="include" items="${sm.includes}">
  +          <ant:include name="${include}"/>
  +        </j:forEach>
             </j:if>
           </j:forEach>
         </ant:fileset> 
   
  -      <!-- Only continue if there is any Java source file in the source dir -->
  -      <j:if test="${sources.iterator().hasNext()}">
  +          <ant:fileScanner var="sources">
  +            <ant:fileset refid="sourceSet" />
  +          </ant:fileScanner>
  +
  +          <j:set var="needed" scope="parent" 
  +             value="${sources.iterator().hasNext()}" />
  +    </j:otherwise>
   
  -        <ant:mkdir dir="${maven.javadoc.destdir}"/>
  -    
  -        <!-- Get the year to display in the Javadocs -->
  -        <ant:tstamp>
  -           <ant:format property="currentYear" pattern="yyyy"/>
  -        </ant:tstamp>
  -        <ant:tstamp>
  -          <j:choose>
  -            <j:when test="${pom.inceptionYear.equals(currentYear)}">
  -              <ant:format property="year" pattern="yyyy"/>
  -            </j:when>
  -            <j:otherwise>
  -              <ant:format property="year" pattern="${pom.inceptionYear}-yyyy"/>
  -            </j:otherwise>
  -          </j:choose>
  -        </ant:tstamp>
  -    
  -        <ant:property name="copyright"
  -          value="Copyright &amp;copy; ${year} ${pom.organization.name}. All Rights 
Reserved." />
  -    
  -        <!-- calculate online/offline mode -->
  -        <j:set var="online" value="${maven.javadoc.mode.online}"/>
  -        <j:if test="${empty(online)}">
  -          <j:set var="online" value="${maven.mode.online}"/>
  -        </j:if>
  -    
  -        <j:choose>
  -          <j:when test="${online}">
  -            <util:tokenize var="links" delim="," 
trim="true">${maven.javadoc.links}</util:tokenize>
  -            <j:forEach var="link" items="${links}">
  -              <ant:echo>Linking with API information from ${link.trim()} 
...</ant:echo>
  -            </j:forEach>
  -          </j:when>
  -          <j:otherwise>
  -            <util:tokenize var="links" delim="," 
trim="true">${maven.javadoc.offlineLinks}</util:tokenize>
  -            <j:forEach var="link" items="${links}">
  -              <ant:echo>Linking offline API information from ${link.trim()} 
...</ant:echo>
  -            </j:forEach>
  -          </j:otherwise>
  -        </j:choose>
  -    
  -        <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:javadoc
  -          packagenames="${pom.package}.*"
  -          destdir="${maven.javadoc.destdir}"
  -          author="${maven.javadoc.author}"
  -          public="${maven.javadoc.public}"
  -          package="${maven.javadoc.package}" 
  -          private="${maven.javadoc.private}"
  -          version="${maven.javadoc.version}"
  -          use="${maven.javadoc.use}"
  -          windowtitle="${maven.javadoc.windowtitle}"
  -          doctitle="${maven.javadoc.windowtitle}"
  -          bottom="${copyright}"
  -          stylesheetfile="${maven.javadoc.stylesheet}"
  -          additionalparam="${maven.javadoc.additionalparam}"
  -          useexternalfile="${maven.javadoc.useexternalfile}">
  -    
  -          <ant:fileset refid="sources" />
  -    
  -          <j:if test="${context.getVariable('maven.javadoc.source') != null}">
  -            <ant:setProperty name="source" value="${maven.javadoc.source}" />
  -          </j:if>
  -    
  -          <!-- Process/Parse links -->
  -          <!-- This code allows to specify a packagelistLoc even when in online 
mode -->
  -          <j:forEach var="link" items="${links}">
  -            <j:set var="pos" value="${link.indexOf('#')}" />
  -    
  -            <!-- set href and packagelistLoc -->
  -            <j:choose>
  -              <!-- I am bad with jelly, the test is: "pos == -1" -->
  -              <j:when test="${1+pos == 0}">
  -            <j:set var="href" value="${link.trim()}" />
  -            <j:set var="packagelistLoc" value="${href}"/>
  -              </j:when>
  -              <j:otherwise>
  -            <j:set var="href" value="${link.substring(0,pos).trim()}"/>
  -            <j:set var="packagelistLoc" 
value="${link.substring(pos).substring(1).trim()}"/>
  -              </j:otherwise>
  -            </j:choose>
  -    
  -            <!-- generate the link -->
  -            <j:choose>
  -              <j:when test="${online}" >
  -            <ant:link href="${href}" offline="false" 
packagelistLoc="${packagelistLoc}" />
  -              </j:when>
  -              <j:otherwise>
  -            <ant:link href="${href}" offline="true" 
packagelistLoc="${packagelistLoc}" />
  -              </j:otherwise>
  -            </j:choose>
  -          </j:forEach>
  -    
  -          <ant:classpath>
  -            <ant:path refid="maven.dependency.classpath"/>
  -            <ant:path location="${maven.build.dest}"/>
  -          </ant:classpath>
  -    
  -          <j:if test="${context.getVariable('maven.javadoc.locale') != null}">
  -            <ant:setProperty name="locale" value="${maven.javadoc.locale}" />
  -          </j:if>
  -    
  -          <j:if test="${context.getVariable('maven.javadoc.overview') != null}">
  -            <ant:setProperty name="overview" value="${maven.javadoc.overview}" />
  -          </j:if>
  -    
  -          <j:if test="${maxMemory != null}">
  -            <ant:setProperty name="maxmemory" value="${maven.javadoc.maxmemory}" />
  -          </j:if>
  -    
  -          <j:forEach var="packageGroup" items="${pom.packageGroups}">
  -            <ant:group title="${packageGroup.title}" 
packages="${packageGroup.packages}"/>
  -          </j:forEach>
  -    
  -          <!-- allow custom doclets -->    
  -          <j:if test="${context.getVariable('maven.javadoc.doclet') != null}">
  -            <ant:setProperty name="doclet" value="${maven.javadoc.doclet}" />
  -          </j:if>
  -          <j:if test="${context.getVariable('maven.javadoc.docletpath') != null}">
  -            <ant:setProperty name="docletpath" value="${maven.javadoc.docletpath}" 
/>
  -          </j:if>
  -    
  -          <!-- allow custom tags -->    
  -          <util:tokenize var="listOfTags" delim=" 
">${maven.javadoc.customtags}</util:tokenize>
  -          <j:forEach var="someTag" items="${listOfTags}">
  -            <j:set var="nameVar" value="${someTag}.name"/>
  -            <j:set var="name" value="${context.findVariable(nameVar)}"/>
  -            <j:set var="descriptionVar" value="${someTag}.description"/>
  -            <j:set var="description" 
value="${context.findVariable(descriptionVar)}"/>
  -            <j:set var="enabledVar" value="${someTag}.enabled"/>
  -            <j:set var="enabled" value="${context.findVariable(enabledVar)}"/>
  -            <j:set var="scopeVar" value="${someTag}.scope"/>
  -            <j:set var="scope" value="${context.findVariable(scopeVar)}"/>
  -            <ant:tag name="${name}" description="${description}"
  -             enabled="${enabled}" scope="${scope}"/>
  -          </j:forEach>
  -    
  -          <!-- allow taglets -->
  -          <util:tokenize var="listOfTaglets" delim="," 
trim="true">${maven.javadoc.taglets}</util:tokenize>
  -          <j:set var="tagletPath" 
value="${context.getVariable('maven.javadoc.tagletpath')}" />
  -          <j:forEach var="someTaglet" items="${listOfTaglets}">
  -            <ant:taglet name="${someTaglet}" path="${tagletPath}" />
  -          </j:forEach>
  -    
  -        </ant:javadoc>
  -        <ant:record name="${maven.build.dir}/javadoc/report.txt" action="stop" />
  -    
  -        <j:set var="genDocs" value="${maven.gen.docs}" />
  -        <doc:text-xdoc
  -          title="Javadoc Report"
  -          section="Javadoc Report"
  -          inputFile="${maven.build.dir}/javadoc/report.txt"
  -          output="${genDocs}/javadoc.xml"/>
  +      </j:choose>
  +
  +    </define:tag>
  +  </define:taglib>
  +
  +  <!-- ================================================================== -->
  +  <!-- J A V A D O C 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:report"
  +        prereqs="xdoc:init"
  +        description="Generate API documentation">
  +
  +    <javadoc:check-needed/>
  +
  +    <j:if test="${needed}">
  +
  +      <ant:mkdir dir="${maven.javadoc.destdir}"/>
  +
  +      <!-- Get the year to display in the Javadocs -->
  +      <ant:tstamp>
  +     <ant:format property="currentYear" pattern="yyyy"/>
  +      </ant:tstamp>
  +      <ant:tstamp>
  +    <j:choose>
  +      <j:when test="${pom.inceptionYear.equals(currentYear)}">
  +        <ant:format property="year" pattern="yyyy"/>
  +      </j:when>
  +      <j:otherwise>
  +        <ant:format property="year" pattern="${pom.inceptionYear}-yyyy"/>
  +      </j:otherwise>
  +    </j:choose>
  +      </ant:tstamp>
  +
  +      <ant:property name="copyright"
  +    value="Copyright &amp;copy; ${year} ${pom.organization.name}. All Rights 
Reserved." />
  +
  +      <!-- calculate online/offline mode -->
  +      <j:set var="online" value="${maven.javadoc.mode.online}"/>
  +      <j:if test="${empty(online)}">
  +    <j:set var="online" value="${maven.mode.online}"/>
         </j:if>
  +
  +      <j:choose>
  +    <j:when test="${online}">
  +      <util:tokenize var="links" delim="," 
trim="true">${maven.javadoc.links}</util:tokenize>
  +      <j:forEach var="link" items="${links}">
  +        <ant:echo>Linking with API information from ${link.trim()} ...</ant:echo>
  +      </j:forEach>
  +    </j:when>
  +    <j:otherwise>
  +      <util:tokenize var="links" delim="," 
trim="true">${maven.javadoc.offlineLinks}</util:tokenize>
  +      <j:forEach var="link" items="${links}">
  +        <ant:echo>Linking offline API information from ${link.trim()} ...</ant:echo>
  +      </j:forEach>
  +    </j:otherwise>
  +      </j:choose>
  +
  +      <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:javadoc
  +    packagenames="${pom.package}.*"
  +    destdir="${maven.javadoc.destdir}"
  +    author="${maven.javadoc.author}"
  +    public="${maven.javadoc.public}"
  +    package="${maven.javadoc.package}" 
  +    private="${maven.javadoc.private}"
  +    version="${maven.javadoc.version}"
  +    use="${maven.javadoc.use}"
  +    windowtitle="${maven.javadoc.windowtitle}"
  +    doctitle="${maven.javadoc.windowtitle}"
  +    bottom="${copyright}"
  +    stylesheetfile="${maven.javadoc.stylesheet}"
  +    additionalparam="${maven.javadoc.additionalparam}"
  +    useexternalfile="${maven.javadoc.useexternalfile}">
  +
  +    <!-- sourceSet is set by the javadoc:check-needed function -->
  +    <ant:fileset refid="sourceSet" />
  +
  +    <j:if test="${context.getVariable('maven.javadoc.source') != null}">
  +      <ant:setProperty name="source" value="${maven.javadoc.source}" />
  +    </j:if>
  +
  +    <!-- Process/Parse links -->
  +    <!-- This code allows to specify a packagelistLoc even when in online mode -->
  +    <j:forEach var="link" items="${links}">
  +      <j:set var="pos" value="${link.indexOf('#')}" />
  +
  +      <!-- set href and packagelistLoc -->
  +      <j:choose>
  +        <!-- I am bad with jelly, the test is: "pos == -1" -->
  +        <j:when test="${1+pos == 0}">
  +      <j:set var="href" value="${link.trim()}" />
  +      <j:set var="packagelistLoc" value="${href}"/>
  +        </j:when>
  +        <j:otherwise>
  +      <j:set var="href" value="${link.substring(0,pos).trim()}"/>
  +      <j:set var="packagelistLoc" 
value="${link.substring(pos).substring(1).trim()}"/>
  +        </j:otherwise>
  +      </j:choose>
  +
  +      <!-- generate the link -->
  +      <j:choose>
  +        <j:when test="${online}" >
  +      <ant:link href="${href}" offline="false" packagelistLoc="${packagelistLoc}" />
  +        </j:when>
  +        <j:otherwise>
  +      <ant:link href="${href}" offline="true" packagelistLoc="${packagelistLoc}" />
  +        </j:otherwise>
  +      </j:choose>
  +    </j:forEach>
  +
  +    <ant:classpath>
  +      <ant:path refid="maven.dependency.classpath"/>
  +      <ant:path location="${maven.build.dest}"/>
  +    </ant:classpath>
  +
  +    <j:if test="${context.getVariable('maven.javadoc.locale') != null}">
  +      <ant:setProperty name="locale" value="${maven.javadoc.locale}" />
  +    </j:if>
  +
  +    <j:if test="${context.getVariable('maven.javadoc.overview') != null}">
  +      <ant:setProperty name="overview" value="${maven.javadoc.overview}" />
  +    </j:if>
  +
  +    <j:if test="${maxMemory != null}">
  +      <ant:setProperty name="maxmemory" value="${maven.javadoc.maxmemory}" />
  +    </j:if>
  +
  +    <j:forEach var="packageGroup" items="${pom.packageGroups}">
  +      <ant:group title="${packageGroup.title}" packages="${packageGroup.packages}"/>
  +    </j:forEach>
  +
  +    <!-- allow custom doclets -->    
  +    <j:if test="${context.getVariable('maven.javadoc.doclet') != null}">
  +      <ant:setProperty name="doclet" value="${maven.javadoc.doclet}" />
  +    </j:if>
  +    <j:if test="${context.getVariable('maven.javadoc.docletpath') != null}">
  +      <ant:setProperty name="docletpath" value="${maven.javadoc.docletpath}" />
  +    </j:if>
  +
  +    <!-- allow custom tags -->    
  +    <util:tokenize var="listOfTags" delim=" 
">${maven.javadoc.customtags}</util:tokenize>
  +    <j:forEach var="someTag" items="${listOfTags}">
  +      <j:set var="nameVar" value="${someTag}.name"/>
  +      <j:set var="name" value="${context.findVariable(nameVar)}"/>
  +      <j:set var="descriptionVar" value="${someTag}.description"/>
  +      <j:set var="description" value="${context.findVariable(descriptionVar)}"/>
  +      <j:set var="enabledVar" value="${someTag}.enabled"/>
  +      <j:set var="enabled" value="${context.findVariable(enabledVar)}"/>
  +      <j:set var="scopeVar" value="${someTag}.scope"/>
  +      <j:set var="scope" value="${context.findVariable(scopeVar)}"/>
  +      <ant:tag name="${name}" description="${description}"
  +       enabled="${enabled}" scope="${scope}"/>
  +    </j:forEach>
  +
  +    <!-- allow taglets -->
  +    <util:tokenize var="listOfTaglets" delim="," 
trim="true">${maven.javadoc.taglets}</util:tokenize>
  +    <j:set var="tagletPath" 
value="${context.getVariable('maven.javadoc.tagletpath')}" />
  +    <j:forEach var="someTaglet" items="${listOfTaglets}">
  +      <ant:taglet name="${someTaglet}" path="${tagletPath}" />
  +    </j:forEach>
  +
  +      </ant:javadoc>
  +      <ant:record name="${maven.build.dir}/javadoc/report.txt" action="stop" />
  +
  +      <j:set var="genDocs" value="${maven.gen.docs}" />
  +      <doc:text-xdoc
  +    title="Javadoc Report"
  +    section="Javadoc Report"
  +    inputFile="${maven.build.dir}/javadoc/report.txt"
  +    output="${genDocs}/javadoc.xml"/>
       </j:if>
   
     </goal>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to