evenisse    2003/10/21 08:04:59

  Modified:    src/plugins-build/jellydoc plugin.jelly project.xml
               src/plugins-build/jellydoc/src/main/org/apache/maven/jellydoc
                        TagXMLDoclet.java XMLDoclet.java
               src/plugins-build/jellydoc/xdocs changes.xml
  Log:
  Externalise output directory and encoding.
  JellyDoc report works correctly now with multiproject
  
  Revision  Changes    Path
  1.16      +12 -10    maven/src/plugins-build/jellydoc/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/jellydoc/plugin.jelly,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- plugin.jelly      1 Oct 2003 12:11:42 -0000       1.15
  +++ plugin.jelly      21 Oct 2003 15:04:58 -0000      1.16
  @@ -54,14 +54,13 @@
       <ant:javadoc
         sourcepath="${pom.build.sourceDirectory}"
         packagenames="${maven.jellydoc.packages}"
  -      classpathref="doclet.classpath"
  -      docletpathref="doclet.classpath"
  -      doclet="org.apache.maven.jellydoc.TagXMLDoclet">
  +      classpathref="doclet.classpath">
  +        <doclet name="org.apache.maven.jellydoc.TagXMLDoclet"
  +          pathref="doclet.classpath">
  +            <param name="-d" value="${maven.build.dir}"/>
  +            <param name="-encoding" value="${maven.docs.outputencoding}"/>
  +        </doclet>
       </ant:javadoc>
  -
  -    <!-- if ran inside the reactor then lets copy the generated file -->
  -    <!-- the doclet dumps taglib.xml into ${user.dir}/target -->
  -    <ant:copy tofile="${maven.build.dir}/taglib.xml" 
file="${user.dir}/target/taglib.xml"/>
     </goal>
   
     <!-- runs the XML doclet -->
  @@ -71,9 +70,12 @@
       <ant:javadoc
         sourcepath="${pom.build.sourceDirectory}"
         packagenames="${pom.package}.*"
  -      classpathref="doclet.classpath"
  -      docletpathref="doclet.classpath"
  -      doclet="org.apache.maven.jellydoc.XMLDoclet">
  +      classpathref="doclet.classpath">
  +        <doclet name="org.apache.maven.jellydoc.XMLDoclet"
  +          pathref="doclet.classpath">
  +            <param name="-d" value="${maven.build.dir}"/>
  +            <param name="-encoding" value="${maven.docs.outputencoding}"/>
  +        </doclet>
       </ant:javadoc>
   
     </goal>
  
  
  
  1.21      +10 -0     maven/src/plugins-build/jellydoc/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/jellydoc/project.xml,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- project.xml       1 Oct 2003 12:11:42 -0000       1.20
  +++ project.xml       21 Oct 2003 15:04:58 -0000      1.21
  @@ -36,6 +36,16 @@
           <role>Java Developer</role>
         </roles>
       </developer>
  +    <developer>
  +      <name>Emmanuel Venisse</name>
  +      <id>evenisse</id>
  +      <email>[EMAIL PROTECTED]</email>
  +      <organization/>
  +      <roles>
  +        <role>Java Developer</role>
  +      </roles>
  +      <timezone>+18</timezone>
  +    </developer>
     </developers>
     <dependencies>
       <dependency>
  
  
  
  1.4       +81 -4     
maven/src/plugins-build/jellydoc/src/main/org/apache/maven/jellydoc/TagXMLDoclet.java
  
  Index: TagXMLDoclet.java
  ===================================================================
  RCS file: 
/home/cvs/maven/src/plugins-build/jellydoc/src/main/org/apache/maven/jellydoc/TagXMLDoclet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TagXMLDoclet.java 8 Feb 2003 11:40:25 -0000       1.3
  +++ TagXMLDoclet.java 21 Oct 2003 15:04:59 -0000      1.4
  @@ -63,6 +63,7 @@
   package org.apache.maven.jellydoc;
   
   import java.beans.Introspector;
  +import java.io.File;
   import java.io.FileOutputStream;
   import java.io.IOException;
   import java.io.StringReader;
  @@ -79,6 +80,7 @@
   
   import com.sun.javadoc.ClassDoc;
   import com.sun.javadoc.Doc;
  +import com.sun.javadoc.DocErrorReporter;
   import com.sun.javadoc.Doclet;
   import com.sun.javadoc.MethodDoc;
   import com.sun.javadoc.PackageDoc;
  @@ -100,16 +102,20 @@
   public class TagXMLDoclet extends Doclet {
   
       private String xmlns = "jvx";
  -    private String encodingFormat="UTF-8";
  +    private String encodingFormat = "UTF-8";
       private String localName = "javadoc";
       private ContentHandler cm = null;
  -    private String targetFileName="target/taglib.xml";
  +    private String targetFileName = null;
       private Attributes emptyAtts = new AttributesImpl();
   
  -    public TagXMLDoclet (RootDoc root) throws Exception {
  -        
  +    public TagXMLDoclet (RootDoc root) throws Exception
  +    {
  +        readOptions(root);
  +        File targetFile = new File(targetFileName);
  +        targetFile.getParentFile().mkdirs();
           FileOutputStream writer = new FileOutputStream(targetFileName);
           OutputFormat format = OutputFormat.createPrettyPrint();
  +        format.setEncoding(encodingFormat);
           XMLWriter xmlWriter = new XMLWriter(writer, format);
           try {
               cm = xmlWriter;
  @@ -400,5 +406,76 @@
               System.exit(1);
               return false;
           }
  +    }
  +    
  +    private void readOptions(RootDoc root)
  +    {
  +        String[][] options = root.options();
  +        for (int i = 0; i < options.length; i++)
  +        {
  +            String[] opt = options[i];
  +            if (opt[0].equals("-d"))
  +            {
  +                targetFileName = opt[1] + "/taglib.xml";
  +            }
  +            if (opt[0].equals("-encoding"))
  +            {
  +                encodingFormat = opt[1];
  +            }
  +        }
  +    }
  +    
  +    public static int optionLength(String option)
  +    {
  +        if(option.equals("-d"))
  +        {
  +            return 2;
  +        }
  +        if(option.equals("-encoding"))
  +        {
  +            return 2;
  +        }
  +        return 0;
  +    }
  +    
  +    public static boolean validOptions(String options[][], 
  +        DocErrorReporter reporter)
  +    {
  +        boolean foundEncodingOption = false;
  +        boolean foundDirOption = false;
  +        for (int i = 0; i < options.length; i++)
  +        {
  +            String[] opt = options[i];
  +            if (opt[0].equals("-d"))
  +            {
  +                if (foundDirOption)
  +                {
  +                    reporter.printError("Only one -d option allowed.");
  +                    return false;
  +                }
  +                else
  +                { 
  +                    foundDirOption = true;
  +                }
  +            } 
  +            if (opt[0].equals("-encoding"))
  +            {
  +                if (foundEncodingOption)
  +                {
  +                    reporter.printError("Only one -encoding option allowed.");
  +                    return false;
  +                }
  +                else
  +                { 
  +                    foundEncodingOption = true;
  +                }
  +            } 
  +        }
  +        if (!foundDirOption)
  +        {
  +            reporter.printError("Usage: javadoc -d <directory> -doclet TagXMLDoclet 
...");
  +            return false;
  +        }
  +        return true;
       }
   }
  
  
  
  1.4       +78 -1     
maven/src/plugins-build/jellydoc/src/main/org/apache/maven/jellydoc/XMLDoclet.java
  
  Index: XMLDoclet.java
  ===================================================================
  RCS file: 
/home/cvs/maven/src/plugins-build/jellydoc/src/main/org/apache/maven/jellydoc/XMLDoclet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLDoclet.java    14 Sep 2003 06:44:39 -0000      1.3
  +++ XMLDoclet.java    21 Oct 2003 15:04:59 -0000      1.4
  @@ -59,6 +59,7 @@
   package org.apache.maven.jellydoc;
   
   import java.io.IOException;
  +import java.io.File;
   import java.io.FileOutputStream;
   import java.util.Enumeration;
   import java.util.Vector;
  @@ -66,6 +67,7 @@
   import com.sun.javadoc.ClassDoc;
   import com.sun.javadoc.ConstructorDoc;
   import com.sun.javadoc.Doc;
  +import com.sun.javadoc.DocErrorReporter;
   import com.sun.javadoc.Doclet;
   import com.sun.javadoc.ExecutableMemberDoc;
   import com.sun.javadoc.FieldDoc;
  @@ -99,12 +101,16 @@
       private String encodingFormat="UTF-8";
       private String localName = "javadoc";
       private ContentHandler cm = null;
  -    private String targetFileName="target/javadoc.xml";
  +    private String targetFileName = null;
       private Attributes emptyAtts = new AttributesImpl();
   
       public XMLDoclet (RootDoc root) throws Exception {
  +        readOptions(root);
  +        File targetFile = new File(targetFileName);
  +        targetFile.getParentFile().mkdirs();
           FileOutputStream writer = new FileOutputStream(targetFileName);
           OutputFormat format = OutputFormat.createPrettyPrint();
  +        format.setEncoding(encodingFormat);
           XMLWriter xmlWriter = new XMLWriter(writer, format);
           try
           {
  @@ -719,5 +725,76 @@
               System.exit(1);
               return false;
           }
  +    }
  +    
  +    private void readOptions(RootDoc root)
  +    {
  +        String[][] options = root.options();
  +        for (int i = 0; i < options.length; i++)
  +        {
  +            String[] opt = options[i];
  +            if (opt[0].equals("-d"))
  +            {
  +                targetFileName = opt[1] + "/javadoc.xml";
  +            }
  +            if (opt[0].equals("-encoding"))
  +            {
  +                encodingFormat = opt[1];
  +            }
  +        }
  +    }
  +    
  +    public static int optionLength(String option)
  +    {
  +        if(option.equals("-d"))
  +        {
  +            return 2;
  +        }
  +        if(option.equals("-encoding"))
  +        {
  +            return 2;
  +        }
  +        return 0;
  +    }
  +    
  +    public static boolean validOptions(String options[][], 
  +        DocErrorReporter reporter)
  +    {
  +        boolean foundEncodingOption = false;
  +        boolean foundDirOption = false;
  +        for (int i = 0; i < options.length; i++)
  +        {
  +            String[] opt = options[i];
  +            if (opt[0].equals("-d"))
  +            {
  +                if (foundDirOption)
  +                {
  +                    reporter.printError("Only one -d option allowed.");
  +                    return false;
  +                }
  +                else
  +                { 
  +                    foundDirOption = true;
  +                }
  +            } 
  +            if (opt[0].equals("-encoding"))
  +            {
  +                if (foundEncodingOption)
  +                {
  +                    reporter.printError("Only one -encoding option allowed.");
  +                    return false;
  +                }
  +                else
  +                { 
  +                    foundEncodingOption = true;
  +                }
  +            } 
  +        }
  +        if (!foundDirOption)
  +        {
  +            reporter.printError("Usage: javadoc -d <directory> -doclet TagXMLDoclet 
...");
  +            return false;
  +        }
  +        return true;
       }
   }
  
  
  
  1.8       +4 -0      maven/src/plugins-build/jellydoc/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/jellydoc/xdocs/changes.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- changes.xml       1 Oct 2003 12:11:42 -0000       1.7
  +++ changes.xml       21 Oct 2003 15:04:59 -0000      1.8
  @@ -9,6 +9,10 @@
     <body>
   
       <release version="1.2" date="in CVS">
  +      <action dev="evenisse" type="fix">
  +        Externalise output directory and encoding.
  +        JellyDoc report works correctly now with multiproject.
  +      </action>
         <action dev="dion" type="fix">
           Only register report if sources exist
         </action>
  
  
  

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

Reply via email to