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