You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2007/10/27 17:46:18 UTC

svn commit: r589140 - in /maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html: Pass1.java Pass2.java

Author: vsiveton
Date: Sat Oct 27 08:46:18 2007
New Revision: 589140

URL: http://svn.apache.org/viewvc?rev=589140&view=rev
Log:
o imptoved the rendering to make difference between Javadoc comments (i.e. /** ... */) and other comments (i.e. /* ... */)
o added encoding option for JavaDocBuilder
o improve performance

Modified:
    maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass1.java
    maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass2.java

Modified: maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass1.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass1.java?rev=589140&r1=589139&r2=589140&view=diff
==============================================================================
--- maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass1.java (original)
+++ maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass1.java Sat Oct 27 08:46:18 2007
@@ -23,7 +23,6 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
@@ -48,11 +47,6 @@
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.Annotation;
-import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.JavaMethod;
-
 import antlr.ANTLRException;
 
 /**
@@ -67,6 +61,32 @@
     /** Logger for this class  */
     private static final Logger log = Logger.getLogger( Pass1.class );
 
+    /**
+     * Default Javadoc tags.
+     *
+     * @see <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html#javadoctags">http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html#javadoctags</a>
+     */
+    private static final String[] TAGS = {
+        "@author",
+        "{@code}",
+        "{@docRoot}",
+        "@deprecated",
+        "@exception",
+        "{@inheritDoc}",
+        "{@link}",
+        "{@linkplain}",
+        "{@literal}",
+        "@param",
+        "@return",
+        "@see",
+        "@serial",
+        "@serialData",
+        "@serialField",
+        "@since",
+        "@throws",
+        "{@value}",
+        "@version" };
+
     int currentColumn;
 
     int currentChar;
@@ -495,7 +515,7 @@
         int i = 0;
 
         StringBuffer sb = new StringBuffer();
-        sb.append( "<SPAN CLASS=\"multiLinesComment\">" );
+        sb.append( "<SPAN CLASS=\"singleLineComment\">" );
 
         while ( i < length )
         {
@@ -521,7 +541,7 @@
 
             if ( currentChar == '\n' )
             {
-                sb.append( "<SPAN CLASS=\"multiLinesComment\">" );
+                sb.append( "<SPAN CLASS=\"singleLineComment\">" );
                 currentColumn = 0;
             }
 
@@ -534,27 +554,17 @@
 
         String comment = sb.toString();
 
-        // Highlight Javadoc reserved words
-        File javaFile = t.getFile();
-        JavaDocBuilder builder = new JavaDocBuilder();
-        builder.addSource( new FileReader( javaFile ) );
-        DocletTag[] classTags = builder.getClasses()[0].getTags();
-        for ( int j = 0; j < classTags.length; j++ )
-        {
-            comment = StringUtils.replace( comment, "@" + classTags[j].getName(), "<B>@" + classTags[j].getName()
-                + "</B>" );
-        }
-        JavaMethod[] methods = builder.getClasses()[0].getMethods();
-        for ( int j = 0; j < methods.length; j++ )
+        // Javadoc comments
+        if ( comment.startsWith( "<SPAN CLASS=\"singleLineComment\">/**" ) )
         {
-            DocletTag[] methodTags = methods[j].getTags();
-            for ( int k = 0; k < methodTags.length; k++ )
+            comment = StringUtils.replace( comment, "singleLineComment", "multiLinesComment" );
+
+            // Highlight Javadoc reserved words
+            for ( int j = 0; j < TAGS.length; j++ )
             {
-                comment = StringUtils.replace( comment, "@" + methodTags[k].getName(), "<B>@" + methodTags[k].getName()
-                    + "</B>" );
+                comment = StringUtils.replace( comment, TAGS[j], "<B>" + TAGS[j] + "</B>" );
             }
         }
-
         output.write( comment );
 
         if ( currentChar == '\n' )

Modified: maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass2.java?rev=589140&r1=589139&r2=589140&view=diff
==============================================================================
--- maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass2.java (original)
+++ maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/src/html/Pass2.java Sat Oct 27 08:46:18 2007
@@ -957,14 +957,18 @@
 
             List classes = orderedPackageClasses( packageName );
 
-            JavaDocBuilder builder = new JavaDocBuilder();
+            JavaDocBuilder javaDocBuilder = new JavaDocBuilder();
+            if ( StringUtils.isNotEmpty( getOptions().getEncoding() ) )
+            {
+                javaDocBuilder.setEncoding( getOptions().getEncoding() );
+            }
             for ( Iterator it = getSrcDirs().iterator(); it.hasNext(); )
             {
                 String srcDir = (String) it.next();
                 File packageDir = new File( srcDir, packageName.replace( '.', File.separatorChar ) + File.separatorChar );
                 if ( packageDir.exists() )
                 {
-                    builder.addSourceTree( packageDir );
+                    javaDocBuilder.addSourceTree( packageDir );
                 }
             }
 
@@ -1058,7 +1062,7 @@
                 pw.println( "</TD>" );
 
                 JavaClass clazz = null;
-                JavaClass[] clazzes = builder.getClasses();
+                JavaClass[] clazzes = javaDocBuilder.getClasses();
                 for ( int i = 0; i < clazzes.length; i++ )
                 {
                     if ( clazzes[i].getName().equals( className ) )