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 2009/07/14 00:47:27 UTC

svn commit: r793739 - in /maven/plugins/trunk/maven-javadoc-plugin/src: main/java/org/apache/maven/plugin/javadoc/ test/java/org/apache/maven/plugin/javadoc/ test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ test/resources/unit/fix-jdk...

Author: vsiveton
Date: Mon Jul 13 22:47:26 2009
New Revision: 793739

URL: http://svn.apache.org/viewvc?rev=793739&view=rev
Log:
o take care of generic
o add test cases

Modified:
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/FixJavadocMojoTest.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ClassWithJavadoc.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/src/main/java/fix/test/ClassWithJavadoc.java

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java?rev=793739&r1=793738&r2=793739&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java Mon Jul 13 22:47:26 2009
@@ -3105,7 +3105,8 @@
         String line;
         while ( ( line = lr.readLine() ) != null )
         {
-            if ( StringUtils.removeDuplicateWhitespace( line ).startsWith( " * @" ) )
+            if ( StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith( "* @" )
+                || StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith( "*@" ) )
             {
                 break;
             }
@@ -3160,22 +3161,33 @@
 
         String originalJavadoc = extractOriginalJavadocContent( javaClassContent, entity );
 
+        String paramValue = docletTag.getParameters()[0];
+        if ( docletTag.getParameters().length > 3 && docletTag.getParameters()[0].trim().equals( "<" )
+            && docletTag.getParameters()[2].trim().equals( ">" ) )
+        {
+            paramValue = "<" + docletTag.getParameters()[1] + ">";
+        }
+
         StringBuffer sb = new StringBuffer();
         BufferedReader lr = new BufferedReader( new StringReader( originalJavadoc ) );
         String line;
         boolean found = false;
         while ( ( line = lr.readLine() ) != null )
         {
-            if ( StringUtils.removeDuplicateWhitespace( line ).startsWith(
-                                                                           " * @" + docletTag.getName() + " "
-                                                                               + docletTag.getParameters()[0] ) )
+            if ( StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith(
+                                                                                  "* @" + docletTag.getName()
+                                                                                      + " " + paramValue )
+                || StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith(
+                                                                                    "*@" + docletTag.getName()
+                                                                                        + " " + paramValue ) )
             {
                 sb.append( line ).append( EOL );
                 found = true;
             }
             else
             {
-                if ( StringUtils.removeDuplicateWhitespace( line ).startsWith( " * @" ) )
+                if ( StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith( "* @" )
+                    || StringUtils.removeDuplicateWhitespace( line.trim() ).startsWith( "*@" ) )
                 {
                     found = false;
                 }

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/FixJavadocMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/FixJavadocMojoTest.java?rev=793739&r1=793738&r2=793739&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/FixJavadocMojoTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/FixJavadocMojoTest.java Mon Jul 13 22:47:26 2009
@@ -440,6 +440,85 @@
         assertTrue( withoutEmptyJavadocLines.endsWith( "any" ) );
     }
 
+    /**
+     * @throws Throwable if any
+     */
+    public void testJavadocCommentJdk5()
+        throws Throwable
+    {
+        if ( !SystemUtils.isJavaVersionAtLeast( 1.5f ) )
+        {
+            getContainer().getLogger().warn(
+                                             "JDK 5.0 or more is required to run fix for '" + getClass().getName()
+                                                 + "#" + getName() + "()'." );
+            return;
+        }
+
+        String content = "/**" + EOL +
+                " * Dummy Class." + EOL +
+                " */" + EOL +
+                "public class DummyClass" + EOL +
+                "{" + EOL +
+                "    /**" + EOL +
+                "     * Dummy method." + EOL +
+                "     *" + EOL +
+                "     * @param <K>  The Key type for the method" + EOL +
+                "     * @param <V>  The Value type for the method" + EOL +
+                "     * @param name The name." + EOL +
+                "     * @return A map configured." + EOL +
+                "     */" + EOL +
+                "    public <K, V> java.util.Map<K, V> dummyMethod( String name )" + EOL +
+                "    {" + EOL +
+                "        return null;" + EOL +
+                "    }" + EOL +
+                "}";
+
+        JavaDocBuilder builder = new JavaDocBuilder();
+        builder.setEncoding( "UTF-8" );
+        builder.addSource( new StringReader( content ) );
+
+        JavaClass[] classes = builder.getClasses();
+        JavaClass clazz = classes[0];
+
+        JavaMethod javaMethod = clazz.getMethods()[0];
+
+        String methodJavadoc =
+            (String) PrivateAccessor.invoke( AbstractFixJavadocMojo.class, "getJavadocComment", new Class[] {
+                String.class, AbstractJavaEntity.class }, new Object[] { content, javaMethod } );
+        assertEquals( "     * Dummy method." + EOL +
+                "     *", methodJavadoc );
+
+        assertEquals( 4, javaMethod.getTags().length );
+
+        DocletTag tag = javaMethod.getTags()[0];
+        String tagJavadoc =
+            (String) PrivateAccessor.invoke( AbstractFixJavadocMojo.class, "getJavadocComment", new Class[] {
+                String.class, AbstractInheritableJavaEntity.class, DocletTag.class }, new Object[] { content,
+                javaMethod, tag } );
+        assertEquals( "     * @param <K>  The Key type for the method", tagJavadoc );
+
+        tag = javaMethod.getTags()[1];
+        tagJavadoc =
+            (String) PrivateAccessor.invoke( AbstractFixJavadocMojo.class, "getJavadocComment", new Class[] {
+                String.class, AbstractInheritableJavaEntity.class, DocletTag.class }, new Object[] { content,
+                javaMethod, tag } );
+        assertEquals( "     * @param <V>  The Value type for the method", tagJavadoc );
+
+        tag = javaMethod.getTags()[2];
+        tagJavadoc =
+            (String) PrivateAccessor.invoke( AbstractFixJavadocMojo.class, "getJavadocComment", new Class[] {
+                String.class, AbstractInheritableJavaEntity.class, DocletTag.class }, new Object[] { content,
+                javaMethod, tag } );
+        assertEquals( "     * @param name The name.", tagJavadoc );
+
+        tag = javaMethod.getTags()[3];
+        tagJavadoc =
+            (String) PrivateAccessor.invoke( AbstractFixJavadocMojo.class, "getJavadocComment", new Class[] {
+                String.class, AbstractInheritableJavaEntity.class, DocletTag.class }, new Object[] { content,
+                javaMethod, tag } );
+        assertEquals( "     * @return A map configured.", tagJavadoc );
+    }
+
     // ----------------------------------------------------------------------
     // private methods
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ClassWithJavadoc.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ClassWithJavadoc.java?rev=793739&r1=793738&r2=793739&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ClassWithJavadoc.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/expected/src/main/java/fix/test/ClassWithJavadoc.java Mon Jul 13 22:47:26 2009
@@ -61,6 +61,19 @@
         return null;
     }
 
+    /**
+     * Dummy method.
+     *
+     * @param <K>  The Key type for the method
+     * @param <V>  The Value type for the method
+     * @param name The name.
+     * @return A map configured.
+     */
+    public <K, V> java.util.Map<K, V> dummyMethod( String name )
+    {
+        return null;
+    }
+
     // ----------------------------------------------------------------------
     // Inheritance
     // ----------------------------------------------------------------------

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/src/main/java/fix/test/ClassWithJavadoc.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/src/main/java/fix/test/ClassWithJavadoc.java?rev=793739&r1=793738&r2=793739&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/src/main/java/fix/test/ClassWithJavadoc.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/resources/unit/fix-jdk5-test/src/main/java/fix/test/ClassWithJavadoc.java Mon Jul 13 22:47:26 2009
@@ -51,6 +51,19 @@
         return null;
     }
 
+    /**
+     * Dummy method.
+     *
+     * @param <K>  The Key type for the method
+     * @param <V>  The Value type for the method
+     * @param name The name.
+     * @return A map configured.
+     */
+    public <K, V> java.util.Map<K, V> dummyMethod( String name )
+    {
+        return null;
+    }
+
     // ----------------------------------------------------------------------
     // Inheritance
     // ----------------------------------------------------------------------