Author: vsiveton
Date: Thu May 28 11:24:35 2009
New Revision: 779565
URL: http://svn.apache.org/viewvc?rev=779565&view=rev
Log:
DOXIA-325: Not valid xhtml document if comment with minus character
o more generic solution for all xml sink
o add test cases
Modified:
maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/AbstractSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-latex/src/test/java/org/apache/maven/doxia/module/latex/LatexSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/TWikiSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
Modified:
maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
Thu May 28 11:24:35 2009
@@ -474,4 +474,10 @@
// TODO
return "";
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "<!-- Simple comment with - - - - -->";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
Thu May 28 11:24:35 2009
@@ -1745,13 +1745,20 @@
/** {...@inheritdoc} */
public void comment( String comment )
{
- StringBuffer buf = new StringBuffer( comment.length() + 9 );
+ if ( StringUtils.isNotEmpty( comment ) )
+ {
+ // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments
+ while ( comment.indexOf( "--" ) != -1 )
+ {
+ comment = StringUtils.replace( comment, "--", "- -" );
+ }
+ }
- buf.append( "" + LESS_THAN + BANG + MINUS + MINUS + SPACE );
+ StringBuffer buf = new StringBuffer( comment.length() + 9 );
+ buf.append( LESS_THAN ).append( BANG ).append( MINUS ).append( MINUS
).append( SPACE );
buf.append( comment );
-
- buf.append( "" + SPACE + MINUS + MINUS + GREATER_THAN );
+ buf.append( SPACE ).append( MINUS ).append( MINUS ).append(
GREATER_THAN );
write( buf.toString() );
}
Modified:
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/AbstractSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/AbstractSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/AbstractSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/AbstractSinkTest.java
Thu May 28 11:24:35 2009
@@ -700,6 +700,24 @@
assertEquals( "Wrong rawText!", expected, actual );
}
+ /**
+ * Checks that the sequence <code>[comment(comment)]</code>,
+ * invoked on the current sink, produces the same result as
+ * {...@link #getCommentBlock getCommentBlock}( comment ).
+ * @since 1.1.1
+ */
+ public void testComment()
+ {
+ String comment = "Simple comment with ----";
+ sink.comment( comment );
+ sink.flush();
+ sink.close();
+
+ String actual = testWriter.toString();
+ String expected = getCommentBlock( comment );
+
+ assertEquals( "Wrong comment!", expected, actual );
+ }
// ----------------------------------------------------------------------
// Utility methods
@@ -982,4 +1000,13 @@
* @see #testRawText()
*/
protected abstract String getRawTextBlock( String text );
+
+ /**
+ * Returns a comment block generated by this sink.
+ * @param text The text to use.
+ * @return The result of invoking a comment block on the current sink.
+ * @see #testComment()
+ * @since 1.1.1
+ */
+ protected abstract String getCommentBlock( String text );
}
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=779565&r1=779564&r2=779565&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
Thu May 28 11:24:35 2009
@@ -265,4 +265,10 @@
{
return AptMarkup.BACKSLASH + "" + c;
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return EOL + "~~ Simple comment with ----";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceSinkTest.java
Thu May 28 11:24:35 2009
@@ -279,4 +279,10 @@
{
// nop
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
Thu May 28 11:24:35 2009
@@ -35,6 +35,7 @@
import org.apache.maven.doxia.util.HtmlTools;
import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
/**
* <a href="http://www.oasis-open.org/docbook">Docbook</a> Sink implementation.
@@ -1534,12 +1535,19 @@
/** {...@inheritdoc} */
public void comment( String comment )
{
+ if ( StringUtils.isNotEmpty( comment ) )
+ {
+ // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments
+ while ( comment.indexOf( "--" ) != -1 )
+ {
+ comment = StringUtils.replace( comment, "--", "- -" );
+ }
+ }
+
StringBuffer buffer = new StringBuffer( comment.length() + 9 );
buffer.append( LESS_THAN ).append( BANG ).append( MINUS ).append(
MINUS ).append( SPACE );
-
buffer.append( comment );
-
buffer.append( SPACE ).append( MINUS ).append( MINUS ).append(
GREATER_THAN );
markup( buffer.toString() );
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
Thu May 28 11:24:35 2009
@@ -244,5 +244,9 @@
return "";
}
-
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "<!-- Simple comment with - - - - -->";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
Thu May 28 11:24:35 2009
@@ -1321,6 +1321,15 @@
/** {...@inheritdoc} */
public void comment( String comment )
{
+ if ( StringUtils.isNotEmpty( comment ) )
+ {
+ // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments
+ while ( comment.indexOf( "--" ) != -1 )
+ {
+ comment = StringUtils.replace( comment, "--", "- -" );
+ }
+ }
+
StringBuffer buf = new StringBuffer( comment.length() + 9 );
buf.append( LESS_THAN ).append( BANG ).append( MINUS ).append( MINUS
).append( SPACE );
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
Thu May 28 11:24:35 2009
@@ -414,4 +414,9 @@
return config;
}
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "<!-- Simple comment with - - - - -->";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-latex/src/test/java/org/apache/maven/doxia/module/latex/LatexSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-latex/src/test/java/org/apache/maven/doxia/module/latex/LatexSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-latex/src/test/java/org/apache/maven/doxia/module/latex/LatexSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-latex/src/test/java/org/apache/maven/doxia/module/latex/LatexSinkTest.java
Thu May 28 11:24:35 2009
@@ -232,4 +232,10 @@
// TODO: not implemented
return "";
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/TWikiSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/TWikiSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/TWikiSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/TWikiSinkTest.java
Thu May 28 11:24:35 2009
@@ -273,4 +273,10 @@
{
// nop
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
Thu May 28 11:24:35 2009
@@ -284,4 +284,10 @@
assertEquals( "<a href=\"name\"></a><a href=\"name\"
target=\"nirvana\"></a>", writer.toString() );
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "<!-- Simple comment with - - - - -->";
+ }
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
Thu May 28 11:24:35 2009
@@ -240,16 +240,6 @@
resetState();
}
- /** {...@inheritdoc} */
- public void comment( String comment )
- {
- if ( StringUtils.isNotEmpty( comment ) )
- {
- comment = StringUtils.replace( comment, "-", " -" );
- }
- super.comment( comment );
- }
-
// ----------------------------------------------------------------------
// Public protected methods
// ----------------------------------------------------------------------
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java?rev=779565&r1=779564&r2=779565&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
Thu May 28 11:24:35 2009
@@ -333,4 +333,10 @@
"<head><title>Title</title><!-- A comment --><meta
name=\"author\" content=\"ģ&\" /></head>";
assertTrue( writer.toString().indexOf( exp ) != -1 );
}
+
+ /** {...@inheritdoc} */
+ protected String getCommentBlock( String text )
+ {
+ return "<!-- Simple comment with - - - - -->";
+ }
}