evenisse    2004/08/23 06:12:44

  Modified:    jxr      plugin.jelly
               jxr/src/main/org/apache/maven/jxr CodeTransform.java
                        JXR.java JxrBean.java
               jxr/src/main/org/apache/maven/jxr/pacman FileManager.java
                        JavaFile.java JavaFileImpl.java
               jxr/xdocs changes.xml
  Log:
  MPJXR-14. Support encoding and lang.
  
  Revision  Changes    Path
  1.22      +8 -0      maven-plugins/jxr/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/jxr/plugin.jelly,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- plugin.jelly      23 Aug 2004 12:30:20 -0000      1.21
  +++ plugin.jelly      23 Aug 2004 13:12:44 -0000      1.22
  @@ -79,6 +79,12 @@
   
         <maven:pluginVar var="javadocDestdir" plugin='maven-javadoc-plugin' 
property='maven.javadoc.destdir'/>
   
  +      <j:set var="inputEncoding"
  +        value="${maven.compile.encoding}" />
  +
  +      <j:set var="outputEncoding"
  +        value="${maven.docs.outputencoding}" />
  +
         <j:set var="copyright"
           value="Copyright &amp;copy; ${year} ${pom.organization.name}. All Rights 
Reserved." />
   
  @@ -90,6 +96,8 @@
         <jxr:jxr
           sourceDir="${pom.build.sourceDirectory}"
           destDir="${maven.jxr.destdir}"
  +        inputEncoding="${inputEncoding}"
  +        outputEncoding="${outputEncoding}"
           templateDir="${maven.jxr.templateDir}"
           javadocDir="${javadocDestdir}"
           windowTitle="${title}"
  
  
  
  1.11      +44 -8     
maven-plugins/jxr/src/main/org/apache/maven/jxr/CodeTransform.java
  
  Index: CodeTransform.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/CodeTransform.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- CodeTransform.java        30 Jan 2004 03:57:25 -0000      1.10
  +++ CodeTransform.java        23 Aug 2004 13:12:44 -0000      1.11
  @@ -32,13 +32,19 @@
   
   import java.io.BufferedReader;
   import java.io.File;
  +import java.io.FileInputStream;
  +import java.io.FileOutputStream;
   import java.io.FileReader;
   import java.io.FileWriter;
   import java.io.IOException;
  +import java.io.InputStreamReader;
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
  +import java.io.OutputStreamWriter;
   import java.io.PrintWriter;
  +import java.io.Reader;
   import java.io.Serializable;
  +import java.io.Writer;
   import java.util.Hashtable;
   import java.util.Vector;
   
  @@ -183,6 +189,10 @@
        */
       private String sourcedir = null;
   
  +    private String inputEncoding = null;
  +    private String outputEncoding = null;
  +    private String lang = null;
  +
       /**
        * Relative path to javadocs, suitable for hyperlinking
        */
  @@ -597,19 +607,27 @@
   
       /**
        * Gets the header attribute of the CodeTransform object
  -     * @todo make language and encoding headers customizable
        * @return String
        */
       public String getHeader()
       {
           StringBuffer buffer = new StringBuffer();
   
  +        String lang = this.lang;
  +        if (lang == null) {
  +            lang = "en";
  +        }
  +        String outputEncoding = this.outputEncoding;
  +        if (outputEncoding == null) {
  +            outputEncoding = "ISO-8859-1";
  +        }
  +
           // header
           buffer
               .append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 
Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\";>\n")
  -            .append("<html xmlns=\"http://www.w3.org/1999/xhtml\"; xml:lang=\"en\" 
lang=\"en\">\n")
  +            .append("<html xmlns=\"http://www.w3.org/1999/xhtml\"; 
xml:lang=\"").append(lang).append("\" lang=\"").append(lang).append("\">\n")
               .append("<head>\n")
  -            .append("<meta http-equiv=\"content-type\" content=\"text/html; 
charset=ISO-8859-1\" />");
  +            .append("<meta http-equiv=\"content-type\" content=\"text/html; 
charset=").append(outputEncoding).append("\" />");
   
           // title ("classname xref")
           try
  @@ -654,11 +672,14 @@
        * This is the public method for doing all transforms of code.
        * @param sourcefile String
        * @param destfile String
  +     * @param lang String
  +     * @param inputEncoding String
  +     * @param outputEncoding String
        * @param javadocLinkDir String
        * @param revision String
        * @throws IOException
        */
  -    public final void transform(String sourcefile, String destfile, String 
javadocLinkDir, String revision)
  +    public final void transform(String sourcefile, String destfile, String lang, 
String inputEncoding, String outputEncoding, String javadocLinkDir, String revision)
           throws IOException
       {
   
  @@ -666,18 +687,33 @@
   
           this.sourcefile = sourcefile;
           this.destfile = destfile;
  +        this.lang = lang;
  +        this.inputEncoding = inputEncoding;
  +        this.outputEncoding = outputEncoding;
           this.javadocLinkDir = javadocLinkDir;
           this.revision = revision;
   
           //make sure that the parent directories exist...
           new File(new File(destfile).getParent()).mkdirs();
   
  -        FileReader fr = null;
  -        FileWriter fw = null;
  +        Reader fr = null;
  +        Writer fw = null;
           try
           {
  -            fr = new FileReader(sourcefile);
  -            fw = new FileWriter(destfile);
  +            if (inputEncoding != null) {
  +                fr = new InputStreamReader(new FileInputStream(sourcefile), 
inputEncoding);
  +            }
  +            else
  +            {
  +                fr = new FileReader(sourcefile);
  +            }
  +            if (outputEncoding != null) {
  +                fw = new OutputStreamWriter(new FileOutputStream(destfile), 
outputEncoding);
  +            }
  +            else
  +            {
  +                fw = new FileWriter(destfile);
  +            }
               BufferedReader in = new BufferedReader(fr);
   
               PrintWriter out = new PrintWriter(fw);
  
  
  
  1.9       +12 -2     maven-plugins/jxr/src/main/org/apache/maven/jxr/JXR.java
  
  Index: JXR.java
  ===================================================================
  RCS file: /home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/JXR.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JXR.java  23 Aug 2004 12:17:46 -0000      1.8
  +++ JXR.java  23 Aug 2004 13:12:44 -0000      1.9
  @@ -53,6 +53,10 @@
        */
       private String dest = "";
   
  +    private String lang;
  +    private String inputEncoding;
  +    private String outputEncoding;
  +
       /**
        * Relative path to javadocs, suitable for hyperlinking
        */
  @@ -81,12 +85,18 @@
       public JXR(PackageManager packageManager,
                  String source,
                  String dest,
  +               String lang,
  +               String inputEncoding,
  +               String outputEncoding,
                  String javadocLinkDir,
                  String revision)
       {
           this.transformer = new CodeTransform(packageManager);
           this.source = source;
           this.dest = dest;
  +        this.lang = lang;
  +        this.inputEncoding = inputEncoding;
  +        this.outputEncoding = outputEncoding;
           this.javadocLinkDir = javadocLinkDir;
           this.revision = revision;
   
  @@ -223,7 +233,7 @@
   
           log.debug(source + " -> " + dest);
   
  -        transformer.transform(source, dest, javadocLinkDir, this.revision);
  +        transformer.transform(source, dest, lang, inputEncoding, outputEncoding, 
javadocLinkDir, this.revision);
   
       }
   
  
  
  
  1.10      +71 -2     maven-plugins/jxr/src/main/org/apache/maven/jxr/JxrBean.java
  
  Index: JxrBean.java
  ===================================================================
  RCS file: /home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/JxrBean.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JxrBean.java      2 Mar 2004 15:08:12 -0000       1.9
  +++ JxrBean.java      23 Aug 2004 13:12:44 -0000      1.10
  @@ -19,6 +19,7 @@
   
   import org.apache.maven.jxr.JXR;
   import org.apache.maven.jxr.DirectoryIndexer;
  +import org.apache.maven.jxr.pacman.FileManager;
   import org.apache.maven.jxr.pacman.PackageManager;
   import org.apache.maven.jxr.pacman.PackageType;
   import org.apache.maven.jxr.pacman.ClassType;
  @@ -53,6 +54,9 @@
        */
       private List sourceDirs;
       private String destDir;
  +    private String lang;
  +    private String inputEncoding;
  +    private String outputEncoding;
       private String javadocDir;
       private String windowTitle;
       private String docTitle;
  @@ -83,6 +87,8 @@
           
           // first collect package and class info
           PackageManager pkgmgr = new PackageManager();
  +
  +        FileManager.getInstance().setEncoding(inputEncoding);
           
           // go through each source directory and xref the java files
           for (Iterator i = sourceDirs.iterator(); i.hasNext();)
  @@ -92,7 +98,7 @@
               
               pkgmgr.process(path);
               
  -            new JXR(pkgmgr, path, destDir, javadocLinkDir, "HEAD");
  +            new JXR(pkgmgr, path, destDir, lang, inputEncoding, outputEncoding, 
javadocLinkDir, "HEAD");
           }
           
           // once we have all the source files xref'd, create the index pages
  @@ -214,6 +220,69 @@
       public String getDestDir()
       {
           return destDir;
  +    }
  +
  +
  +    /**
  +     * Lang attribute of output files.
  +     *
  +     * @param lang lang attribute of output files.
  +     */
  +    public void setLang(String lang)
  +    {
  +        this.lang = lang;
  +    }
  +
  +    /**
  +     * see setLang(String)
  +     *
  +     * @see setLang(String)
  +     */
  +    public String getLang()
  +    {
  +        return lang;
  +    }
  +
  +
  +    /**
  +     * InputEncoding is the encoding of source files.
  +     *
  +     * @param inputEncoding encoding of source files
  +     */
  +    public void setInputEncoding(String inputEncoding)
  +    {
  +        this.inputEncoding = inputEncoding;
  +    }
  +
  +    /**
  +     * see setInputEncoding(String)
  +     *
  +     * @see setInputEncoding(String)
  +     */
  +    public String getInputEncoding()
  +    {
  +        return inputEncoding;
  +    }
  +
  +
  +    /**
  +     * OutputEncoding is the encoding of output files.
  +     *
  +     * @param outputEncoding encoding of output files
  +     */
  +    public void setOutputEncoding(String outputEncoding)
  +    {
  +        this.outputEncoding = outputEncoding;
  +    }
  +
  +    /**
  +     * see setOutputEncoding(String)
  +     *
  +     * @see setOutputEncoding(String)
  +     */
  +    public String getOutputEncoding()
  +    {
  +        return outputEncoding;
       }
   
   
  
  
  
  1.3       +21 -1     
maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/FileManager.java
  
  Index: FileManager.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/FileManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FileManager.java  2 Mar 2004 15:08:12 -0000       1.2
  +++ FileManager.java  23 Aug 2004 13:12:44 -0000      1.3
  @@ -38,6 +38,7 @@
       private static FileManager instance = new FileManager();
   
       private Hashtable files = new Hashtable();
  +    private String encoding = null;
   
       /** Get an instance of the FileManager  */
       public static FileManager getInstance()
  @@ -57,7 +58,7 @@
   
           if (real == null)
           {
  -            real = new JavaFileImpl(name);
  +            real = new JavaFileImpl(name, this.getEncoding());
               this.addFile(real);
           }
   
  @@ -70,4 +71,23 @@
           this.files.put(file.getFilename(), file);
       }
   
  +    /**
  +     * Encoding is the encoding of source files.
  +     *
  +     * @param encoding encoding of source files
  +     */
  +    public void setEncoding(String encoding)
  +    {
  +        this.encoding = encoding;
  +    }
  +
  +    /**
  +     * see setEncoding(String)
  +     *
  +     * @see setEncoding(String)
  +     */
  +    public String getEncoding()
  +    {
  +        return encoding;
  +    }
   }
  
  
  
  1.3       +15 -1     
maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/JavaFile.java
  
  Index: JavaFile.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/JavaFile.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JavaFile.java     2 Mar 2004 15:08:12 -0000       1.2
  +++ JavaFile.java     23 Aug 2004 13:12:44 -0000      1.3
  @@ -34,6 +34,7 @@
       private PackageType packageType = new PackageType();
   
       private String filename = null;
  +    private String encoding = null;
   
       /** Get the imported packages/files that this package has.  */
       public ImportType[] getImportTypes()
  @@ -86,5 +87,18 @@
       public void setFilename(String filename)
       {
           this.filename = filename;
  +    }
  +
  +
  +    /** Gets the encoding attribute of the JavaFile object */
  +    public String getEncoding()
  +    {
  +        return this.encoding;
  +    }
  +
  +    /** Sets the encoding attribute of the JavaFile object */
  +    public void setEncoding(String encoding)
  +    {
  +        this.encoding = encoding;
       }
   }
  
  
  
  1.5       +11 -3     
maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/JavaFileImpl.java
  
  Index: JavaFileImpl.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/jxr/src/main/org/apache/maven/jxr/pacman/JavaFileImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JavaFileImpl.java 2 Mar 2004 15:08:12 -0000       1.4
  +++ JavaFileImpl.java 23 Aug 2004 13:12:44 -0000      1.5
  @@ -37,10 +37,11 @@
        * @param filename
        * @exception IOException
        */
  -    public JavaFileImpl(String filename)
  +    public JavaFileImpl(String filename, String encoding)
           throws IOException
       {
           this.setFilename(filename);
  +        this.setEncoding(encoding);
   
           //always add java.lang.* to the package imports because the JVM always
           //does this implicitly.  Unless we add this to the ImportTypes JXR
  @@ -134,7 +135,14 @@
               throw new IOException(this.getFilename() + " does not exist!");
           }
   
  -        this.reader = new FileReader(this.getFilename());
  +        if (this.getEncoding() != null)
  +        {
  +            this.reader = new InputStreamReader(new 
FileInputStream(this.getFilename()), this.getEncoding());
  +        }
  +        else
  +        {
  +            this.reader = new FileReader(this.getFilename());
  +        }
   
           StreamTokenizer stok = new StreamTokenizer(reader);
           //int tok;
  
  
  
  1.25      +1 -0      maven-plugins/jxr/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/jxr/xdocs/changes.xml,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- changes.xml       23 Aug 2004 12:30:20 -0000      1.24
  +++ changes.xml       23 Aug 2004 13:12:44 -0000      1.25
  @@ -26,6 +26,7 @@
     </properties>
     <body>
       <release version="1.4.2-SNAPSHOT" date="in CVS">
  +      <action dev="evenisse" type="update" issue="MPJXR-14">Support encoding and 
lang.</action>
         <action dev="evenisse" type="update" issue="MPJXR-17">Add the possibility to 
run JXR for tests classes if sources classes doesn't exists.</action>
         <action dev="evenisse" type="fix" issue="MPJXR-13">Remove 
NullPointerException for empty java files.</action>
         <action dev="dion" type="update">Reduce output for non-debug run.</action>
  
  
  

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

Reply via email to