Author: schulte
Date: Fri Dec 11 18:01:19 2015
New Revision: 1719483
URL: http://svn.apache.org/viewvc?rev=1719483&view=rev
Log:
[DOXIA-532] Support for server side includes.
o Updated to handle comments starting with a '#' character to represent
SSI expressions.
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/Markup.java
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/RandomAccessSink.java
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.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/parser/XhtmlBaseParserTest.java
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/SinkEventTestingSink.java
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/WellformednessCheckingSink.java
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/resources/test/comments.apt
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-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.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-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/Markup.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/Markup.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/Markup.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/Markup.java
Fri Dec 11 18:01:19 2015
@@ -80,4 +80,8 @@ public interface Markup
/** semicolon character: ';' */
char SEMICOLON = ';';
+
+ /** hash character: '#' */
+ char HASH = '#';
+
}
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
Fri Dec 11 18:01:19 2015
@@ -260,7 +260,7 @@ public abstract class AbstractXmlParser
}
else if ( eventType == XmlPullParser.COMMENT )
{
- handleComment( parser, sink );
+ handleCommentOrSsi( parser, sink );
}
else if ( eventType == XmlPullParser.ENTITY_REF )
{
@@ -359,6 +359,31 @@ public abstract class AbstractXmlParser
}
/**
+ * Decides whether a comment is a SSI directive and delegates to the
+ * corresponding method.
+ *
+ * @param parser A parser, not null.
+ * @param sink the sink to receive the events. Not null.
+ *
+ * @throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
if there's a problem parsing the model
+ * @since 1.7
+ */
+ private void handleCommentOrSsi( XmlPullParser parser, Sink sink )
+ throws XmlPullParserException
+ {
+ final String text = getText( parser ).trim();
+
+ if ( text.indexOf( HASH ) == 0 )
+ {
+ handleSsi( parser, sink );
+ }
+ else
+ {
+ handleComment( parser, sink );
+ }
+ }
+
+ /**
* Handles comments.
*
* <p>This is a default implementation, all data are emitted as
comment
@@ -375,6 +400,23 @@ public abstract class AbstractXmlParser
}
/**
+ * Handles SSI directives.
+ *
+ * <p>This is a default implementation, all data are emitted as SSI
+ * events into the specified sink.</p>
+ *
+ * @param parser A parser, not null.
+ * @param sink the sink to receive the events. Not null.
+ * @throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
if there's a problem parsing the model
+ * @since 1.7
+ */
+ protected void handleSsi( XmlPullParser parser, Sink sink )
+ throws XmlPullParserException
+ {
+ sink.ssi( getText( parser ).trim().substring( 1 ) );
+ }
+
+ /**
* Handles entities.
*
* <p>This is a default implementation, all entities are resolved
and emitted as text
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/RandomAccessSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/RandomAccessSink.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/RandomAccessSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/RandomAccessSink.java
Fri Dec 11 18:01:19 2015
@@ -726,6 +726,15 @@ public class RandomAccessSink
currentSink.section_( level );
}
+ /**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ currentSink.ssi( directive );
+ }
+
/** {@inheritDoc} */
public void table()
{
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java
Fri Dec 11 18:01:19 2015
@@ -212,6 +212,15 @@ public class SinkAdapter
// nop
}
+ /**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ // nop
+ }
+
/** {@inheritDoc} */
public void table()
{
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -1904,6 +1904,22 @@ public class XhtmlBaseSink
}
/**
+ * {@inheritDoc}
+ * @sine 1.7
+ */
+ @Override
+ public void ssi( final String directive )
+ {
+ final StringBuilder buf = new StringBuilder( directive.length()
+ 9 );
+
+ buf.append( LESS_THAN ).append( BANG ).append( MINUS ).append(
MINUS ).append( HASH );
+ buf.append( directive );
+ buf.append( SPACE ).append( MINUS ).append( MINUS ).append(
GREATER_THAN );
+
+ write( buf.toString() );
+ }
+
+ /**
* Add an unknown event.
* This can be used to generate html tags for which no
corresponding sink event exists.
*
Modified:
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
Fri Dec 11 18:01:19 2015
@@ -597,13 +597,14 @@ public class XhtmlBaseParserTest
public void testSpecial()
throws Exception
{
- String text = "<p><!-- a pagebreak: --><!-- PB
-->  <unknown /></p>";
+ String text = "<p><!-- a pagebreak: --><!-- PB --><!--#echo
var=\"code\" -->  <unknown /></p>";
parser.parse( text, sink );
Iterator<SinkEventElement> it = sink.getEventList().iterator();
assertEquals( "paragraph", it.next().getName() );
assertEquals( "comment", it.next().getName() );
assertEquals( "pageBreak", it.next().getName() );
+ assertEquals( "ssi", it.next().getName() );
assertEquals( "nonBreakingSpace", it.next().getName() );
assertEquals( "nonBreakingSpace", it.next().getName() );
// unknown events are not reported by the base parser
Modified:
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/SinkEventTestingSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/SinkEventTestingSink.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/SinkEventTestingSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/SinkEventTestingSink.java
Fri Dec 11 18:01:19 2015
@@ -236,6 +236,15 @@ public class SinkEventTestingSink
addEvent( "figure_" );
}
+ /**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ addEvent( "ssi" );
+ }
+
/** {@inheritDoc} */
public void table()
{
Modified:
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java
Fri Dec 11 18:01:19 2015
@@ -222,6 +222,15 @@ public class TextSink
writeln( "end:figure" );
}
+ /**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ writeln( "ssi:" + directive );
+ }
+
/** {@inheritDoc} */
public void table()
{
Modified:
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/WellformednessCheckingSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/WellformednessCheckingSink.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/WellformednessCheckingSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/WellformednessCheckingSink.java
Fri Dec 11 18:01:19 2015
@@ -218,6 +218,15 @@ public class WellformednessCheckingSink
checkWellformedness( "figure" );
}
+ /**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ // ignore
+ }
+
/** {@inheritDoc} */
public void table()
{
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -112,6 +112,9 @@ public class AptParser
/** Comment event id. */
private static final int COMMENT_BLOCK = 17;
+ /** SSI event id. */
+ private static final int SSI_BLOCK = 18;
+
/** String representations of event ids */
private static final String TYPE_NAMES[] = {
"TITLE",
@@ -131,7 +134,8 @@ public class AptParser
"PG_BREAK",
"LIST_BREAK",
"MACRO",
- "COMMENT_BLOCK" };
+ "COMMENT_BLOCK",
+ "SSI_BLOCK" };
/** An array of 85 spaces. */
protected static final char[] SPACES;
@@ -218,8 +222,8 @@ public class AptParser
// Lookahead block.
nextBlock( /*first*/true );
- // traverse comments
- while ( ( block != null ) && ( block.getType() ==
COMMENT_BLOCK ) )
+ // traverse comments and SSI directives
+ while ( ( block != null ) && ( block.getType() ==
COMMENT_BLOCK || block.getType() == SSI_BLOCK ) )
{
block.traverse();
nextBlock( /*first*/true );
@@ -1368,7 +1372,10 @@ public class AptParser
case COMMENT:
if ( charAt( line, length, i + 1 ) == COMMENT )
{
- block = new Comment( line.substring( i + 2 ).trim()
);
+ block = charAt( line, length, i + 2 ) == HASH
+ ? new SSI( line.substring( i + 3
).trim() )
+ : new Comment( line.substring( i + 2
).trim() );
+
}
break;
default:
@@ -2235,6 +2242,30 @@ public class AptParser
}
}
+ /** A SSI Block. */
+ private class SSI
+ extends Block
+ {
+ /**
+ * Constructor.
+ *
+ * @param line the SSI directive.
+ * @throws AptParseException AptParseException
+ */
+ public SSI( String line )
+ throws AptParseException
+ {
+ super( SSI_BLOCK, 0, line );
+ }
+
+ /** {@inheritDoc} */
+ public void traverse()
+ throws AptParseException
+ {
+ AptParser.this.sink.ssi( text );
+ }
+ }
+
/** A Verbatim Block. */
private class Verbatim
extends Block
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -912,6 +912,15 @@ public class AptSink
/**
* {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ rawText( ( startFlag ? "" : EOL ) + COMMENT + COMMENT + HASH +
SPACE + directive );
+ }
+
+ /**
+ * {@inheritDoc}
*
* Unkown events just log a warning message but are ignored
otherwise.
* @see
org.apache.maven.doxia.sink.Sink#unknown(String,Object[],SinkEventAttributes)
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -101,14 +101,20 @@ public class AptParserTest
assertTrue( macro.indexOf(
"<modelVersion\\>4.0.0\\</modelVersion\\>" ) != -1 );
}
- /** @throws Exception */
+ /** @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" ) );
+ assertEquals( 0, comments.indexOf( "~~ " + EOL
+ + "~~ comments before
title" + EOL
+ + "~~ like a license
header, for example" + EOL
+ + "~~# " + EOL
+ + "~~# echo
var=\"code\"" + EOL
+ + " -----" + EOL
+ + " Test DOXIA-379" ) );
+
}
/** @throws Exception */
Modified:
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=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/resources/test/comments.apt
Fri Dec 11 18:01:19 2015
@@ -1,5 +1,8 @@
+~~
~~ comments before title
~~ like a license header, for example
+~~#
+~~# echo var="code"
-----
Test DOXIA-379
-----
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -1589,6 +1589,21 @@ public class DocBookSink
/**
* {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ final StringBuilder buf = new StringBuilder( directive.length()
+ 10 );
+
+ buf.append( LESS_THAN ).append( BANG ).append( MINUS ).append(
MINUS ).append( HASH ).append( SPACE );
+ buf.append( directive );
+ buf.append( SPACE ).append( MINUS ).append( MINUS ).append(
GREATER_THAN );
+
+ write( buf.toString() );
+ }
+
+ /**
+ * {@inheritDoc}
*
* Unknown events just log a warning message but are ignored
otherwise.
* @see
org.apache.maven.doxia.sink.Sink#unknown(String,Object[],SinkEventAttributes)
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
Fri Dec 11 18:01:19 2015
@@ -408,6 +408,26 @@ public class FmlParser
}
}
+ /**
+ * {@inheritDoc}
+ * @sine 1.7
+ */
+ protected void handleSsi( XmlPullParser parser, Sink sink )
+ throws XmlPullParserException
+ {
+ final String directive = parser.getText().trim().substring( 1 );
+
+ if ( buffer != null )
+ {
+ buffer.append( LESS_THAN ).append( BANG ).append( MINUS
).append( MINUS ).append( HASH ).append( SPACE )
+ .append( directive ).append( SPACE ).append( MINUS
).append( MINUS ).append( GREATER_THAN );
+ }
+ else
+ {
+ sink.ssi( directive );
+ }
+ }
+
/** {@inheritDoc} */
protected void handleEntity( XmlPullParser parser, Sink sink )
throws XmlPullParserException
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=1719483&r1=1719482&r2=1719483&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
Fri Dec 11 18:01:19 2015
@@ -1393,6 +1393,21 @@ public class FoSink
}
/**
+ * {@inheritDoc}
+ * @since 1.7
+ */
+ public void ssi( final String directive )
+ {
+ final StringBuilder buf = new StringBuilder( directive.length()
+ 10 );
+
+ buf.append( LESS_THAN ).append( BANG ).append( MINUS ).append(
MINUS ).append( HASH ).append( SPACE );
+ buf.append( directive );
+ buf.append( SPACE ).append( MINUS ).append( MINUS ).append(
GREATER_THAN );
+
+ write( buf.toString() );
+ }
+
+ /**
* Writes the beginning of a FO document.
*/
public void beginDocument()
Modified:
maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java?rev=1719483&r1=1719482&r2=1719483&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
Fri Dec 11 18:01:19 2015
@@ -1345,6 +1345,14 @@ public interface Sink
void comment( String comment );
/**
+ * Add a SSI directive.
+ *
+ * @param directive The directive to write.
+ * @since 1.7
+ */
+ void ssi( String directive );
+
+ /**
* Add an unknown event. This may be used by parsers to notify a
general Sink about
* an event that doesn't fit into any event defined by the Sink API.
* Depending on the parameters, a Sink may decide whether or not to
process the event,