Author: hboutemy
Date: Sun Jan 31 18:36:36 2010
New Revision: 905092

URL: http://svn.apache.org/viewvc?rev=905092&view=rev
Log:
[DOXIA-379] fixed title block parsing when comments are present before it

Added:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
   (with props)
Modified:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=905092&r1=905091&r2=905092&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 Sun Jan 31 18:36:36 2010
@@ -217,6 +217,13 @@
             // Lookahead block.
             nextBlock( /*first*/true );
 
+            // traverse comments
+            while ( ( block != null ) && ( block.getType() == COMMENT_BLOCK ) )
+            {
+                block.traverse();
+                nextBlock( /*first*/true );
+            }
+
             traverseHead();
 
             traverseBody();

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java?rev=905092&r1=905091&r2=905092&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
 Sun Jan 31 18:36:36 2010
@@ -60,6 +60,9 @@
     /**  date. */
     private String date;
 
+    /** startFlag. */
+    private boolean startFlag;
+
     /**  tableCaptionFlag. */
     private boolean tableCaptionFlag;
 
@@ -160,6 +163,7 @@
         this.author = null;
         this.title = null;
         this.date = null;
+        this.startFlag = true;
         this.tableCaptionFlag = false;
         this.headerFlag = false;
         this.bufferFlag = false;
@@ -192,9 +196,12 @@
     /** {...@inheritdoc} */
     public void head()
     {
+        boolean startFlag = this.startFlag;
+
         init();
 
         headerFlag = true;
+        this.startFlag = startFlag;
     }
 
     /** {...@inheritdoc} */
@@ -202,6 +209,10 @@
     {
         headerFlag = false;
 
+        if ( ! startFlag )
+        {
+            write( EOL );
+        }
         write( HEADER_START_MARKUP + EOL );
         if ( title != null )
         {
@@ -896,7 +907,7 @@
     /** {...@inheritdoc} */
     public void comment( String comment )
     {
-        rawText( EOL + COMMENT + COMMENT + SPACE + comment.trim() );
+        rawText( ( startFlag ? "" : EOL ) + COMMENT + COMMENT + SPACE + 
comment.trim() );
     }
 
     /**
@@ -917,6 +928,7 @@
      */
     protected void write( String text )
     {
+        startFlag = false;
         writer.write( unifyEOLs( text ) );
     }
 

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java?rev=905092&r1=905091&r2=905092&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
 Sun Jan 31 18:36:36 2010
@@ -102,6 +102,16 @@
     }
 
     /** @throws Exception  */
+    public void testCommentsBeforeTitle()
+        throws Exception
+    {
+        String comments = parseFileToAptSink( "test/comments" );
+
+        assertEquals( 0, comments.indexOf( "~~ comments before title" + EOL + 
"~~ like a license header, for example"
+            + EOL + " -----" + EOL + " Test DOXIA-379" ) );
+    }
+
+    /** @throws Exception  */
     public void testSnippet()
         throws Exception
     {

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java?rev=905092&r1=905091&r2=905092&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
 Sun Jan 31 18:36:36 2010
@@ -269,6 +269,6 @@
     /** {...@inheritdoc} */
     protected String getCommentBlock( String text )
     {
-        return EOL + "~~ Simple comment with ----";
+        return "~~ Simple comment with ----";
     }
 }

Added: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt?rev=905092&view=auto
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
 (added)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
 Sun Jan 31 18:36:36 2010
@@ -0,0 +1,9 @@
+~~ comments before title
+~~ like a license header, for example
+ -----
+ Test DOXIA-379
+ -----
+ Herve Boutemy
+ -----
+
+Test DOXIA-379

Propchange: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to