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 &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]