aheritier    2004/07/09 11:50:48

  Modified:    javadoc  plugin.jelly
  Log:
  To generate javadoc when sourceModifications are used, we copy in a temporary 
directory all the needed source files.
  Fix MPJAVADOC-32
  
  Revision  Changes    Path
  1.50      +78 -38    maven-plugins/javadoc/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/javadoc/plugin.jelly,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- plugin.jelly      7 Jul 2004 23:01:12 -0000       1.49
  +++ plugin.jelly      9 Jul 2004 18:50:48 -0000       1.50
  @@ -29,24 +29,27 @@
     >
   
     <!-- ================================================================== -->
  -  <!-- Initialize plugin                                                  -->
  +  <!-- Test if we need to call javadoc                                    -->
     <!-- ================================================================== -->
  -  
  -  <goal name="javadoc:init" prereqs="xdoc:init">
  -  
  -    <!-- 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.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>
  +
  +  <define:taglib uri="javadoc">
  +    <define:tag name="init">
  +      <j:if test="${maven.javadoc.debug}"><ant:echo>javadoc init</ant:echo></j:if>
  +      
  +      <!-- internal variables -->
  +      <j:set scope="parent" var="internal.javadoc.jar"          
value="${maven.build.dir}/${maven.final.name}_javadoc.jar"/>
  +      <j:set scope="parent" var="internal.javadoc.needed"       value="null"/>
  +      <j:set scope="parent" var="internal.javadoc.working.dir"  
value="${maven.build.dir}/javadoc"/>
  +      <j:set scope="parent" var="internal.javadoc.src.tmp"      
value="${internal.javadoc.working.dir}/src"/>
  +     
  +      <j:if test="${maven.javadoc.debug}">
  +        <ant:echo>
   ### Debug mode is on ###
   ==================================
   === java plugin properties     ===
   ==================================
   maven.compile.encoding            = [${maven.compile.encoding}]
  +maven.compile.src.set             = 
[${context.getAntProject().getReferences().get('maven.compile.src.set')}]
   ==================================
   === javadoc plugin properties  ===
   ==================================
  @@ -80,25 +83,18 @@
   ==================================
   internal.javadoc.jar              = [${internal.javadoc.jar}]
   internal.javadoc.needed           = [${internal.javadoc.needed}]
  -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>
  +        </ant:echo>
  +      </j:if>
  +      <j:if test="not ${maven.javadoc.debug}">
  +        <ant:echo>
   ### Debug mode is off ###
  -      </ant:echo>
  -    </j:if>
  +        </ant:echo>
  +      </j:if>
   
  -  </goal>
  +      <ant:mkdir dir="${internal.javadoc.working.dir}"/>
  +      <ant:mkdir dir="${internal.javadoc.src.tmp}"/>
   
  -  <!-- ================================================================== -->
  -  <!-- Test if we need to call javadoc                                    -->
  -  <!-- ================================================================== -->
  -
  -  <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="${internal.javadoc.needed != null}">
  @@ -106,10 +102,46 @@
             <j:if test="${maven.javadoc.debug}"><ant:echo>internal.javadoc.needed not 
null : ${internal.javadoc.needed}</ant:echo></j:if>
           </j:when>
                   
  -        <j:otherwise>         
  +        <j:otherwise>
  +        
  +          <!-- test if sourceModifications are defined -->
  +          <j:if test="${pom.build.sourceModifications!=null &amp;&amp; 
!pom.build.sourceModifications.isEmpty()}">
  +            <j:if test="${maven.javadoc.debug}"><ant:echo>sourceModifications 
used.</ant:echo></j:if>
  +            <util:tokenize var="sources.dirs" 
delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize>
  +            <ant:copy todir="${internal.javadoc.src.tmp}">
  +              <j:forEach var="dir" items="${sources.dirs}">
  +                <ant:fileset dir="${dir}">
  +                  <ant:include name="**/*.java"/>
  +                  <ant:include name="**/doc-files/**/*"/>
  +                  <!-- 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> <!-- end sourceModification exclude -->
  +                      <j:forEach var="include" items="${sm.includes}">
  +                        <ant:include name="${include}"/>
  +                      </j:forEach> <!-- end sourceModification include -->
  +                    </j:if>
  +                  </j:forEach> <!-- end sourceModification -->
  +                </ant:fileset>
  +              </j:forEach>
  +            </ant:copy>
  +            <ant:path id="internal.javadoc.sources">
  +              <ant:pathelement location="${internal.javadoc.src.tmp}"/>
  +            </ant:path>
  +          </j:if>
  +          <!-- test if sourceModifications aren't defined -->
  +          <j:if test="${pom.build.sourceModifications==null || 
pom.build.sourceModifications.isEmpty()}">
  +            <j:if test="${maven.javadoc.debug}"><ant:echo>sourceModifications not 
used.</ant:echo></j:if>
  +            <ant:path id="internal.javadoc.sources">
  +              <ant:pathelement 
path="${context.getAntProject().getReferences().get('maven.compile.src.set')}"/>
  +            </ant:path>
  +          </j:if>
   
             <!-- Tokenize the set of directories -->
  -          <util:tokenize var="sources.dirs" 
delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize>
  +          <util:tokenize var="sources.dirs" 
delim="${path.separator}">${context.getAntProject().getReferences().get('internal.javadoc.sources')}</util:tokenize>
                    
             <!-- For each directory -->
             <j:forEach var="dir" items="${sources.dirs}">
  @@ -133,7 +165,7 @@
         <j:if test="${maven.javadoc.debug}">
           <ant:echo>internal.javadoc.needed is ${internal.javadoc.needed}</ant:echo>
         </j:if>
  -
  +      
       </define:tag>
     </define:taglib>
   
  @@ -142,9 +174,9 @@
     <!-- J A V A D O C S   R E P O R T S                                    -->
     <!-- ================================================================== -->
   
  -  <goal name="maven-javadoc-plugin:register">      
  +  <goal name="maven-javadoc-plugin:register" prereqs="xdoc:init">      
   
  -    <javadoc:check-needed/>
  +    <javadoc:init/>
   
       <j:if test="${internal.javadoc.needed}">
         <doc:registerReport 
  @@ -164,8 +196,15 @@
     </goal>
     
     <goal name="maven-javadoc-plugin:deregister">
  -    <doc:deregisterReport name="JavaDocs"/>
  -    <doc:deregisterReport name="JavaDoc Report"/>
  +
  +    <javadoc:init/>
  +
  +    <j:if test="${internal.javadoc.needed}">
  +  
  +      <doc:deregisterReport name="JavaDocs"/>
  +      <doc:deregisterReport name="JavaDoc Report"/>
  +      
  +    </j:if>    
     </goal>
   
     <!-- ================================================================== -->
  @@ -173,10 +212,9 @@
     <!-- ================================================================== -->
   
     <goal name="maven-javadoc-plugin:report"
  -        prereqs="javadoc:init"
  -        description="Generate API documentation">
  +        description="Generate API documentation" prereqs="xdoc:init">
   
  -    <javadoc:check-needed/>
  +    <javadoc:init/>
       
       <j:if test="${internal.javadoc.needed}">
   
  @@ -245,7 +283,7 @@
           >
   
           <ant:sourcepath>
  -          <ant:path refid="maven.compile.src.set"/>
  +          <ant:path refid="internal.javadoc.sources"/>
           </ant:sourcepath>
           
           <j:if test="${context.getVariable('maven.javadoc.source') != null}">
  @@ -378,6 +416,8 @@
           section="Javadoc Report"
           inputText="${inputText}"
           output="${genDocs}/javadoc.xml"/>
  +      
  +      <ant:delete dir="${internal.javadoc.src.tmp}"/>
         
       </j:if>
   
  
  
  

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

Reply via email to