You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/07/09 13:31:54 UTC
[maven-doxia] 01/06: [DOXIA-614] Make Parser::parse(Reader, Sink,
String) the default method for modules
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch DOXIA-614/support-source-reference-in-doxia-parser
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit ae4d112281aa503ce19bfa5d2ee89e6bde606f38
Author: Abel Salgado Romero <ab...@gmail.com>
AuthorDate: Sun Jun 28 17:31:33 2020 +0200
[DOXIA-614] Make Parser::parse(Reader,Sink,String) the default method for modules
---
.../apache/maven/doxia/parser/AbstractParser.java | 40 ++++++++++++-----
.../maven/doxia/parser/AbstractXmlParser.java | 52 ++++++++--------------
.../maven/doxia/parser/Xhtml5BaseParser.java | 4 +-
.../apache/maven/doxia/parser/XhtmlBaseParser.java | 4 +-
.../apache/maven/doxia/module/fml/FmlParser.java | 4 +-
.../doxia/module/markdown/MarkdownParser.java | 2 +-
.../apache/maven/doxia/module/xdoc/XdocParser.java | 4 +-
.../maven/doxia/module/xhtml/XhtmlParser.java | 4 +-
.../maven/doxia/module/xhtml/XhtmlParserTest.java | 1 +
.../maven/doxia/module/xhtml5/Xhtml5Parser.java | 4 +-
10 files changed, 61 insertions(+), 58 deletions(-)
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
index 1745585..ae8c0a7 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
@@ -19,14 +19,6 @@ package org.apache.maven.doxia.parser;
* under the License.
*/
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.StringReader;
-
-import java.util.Properties;
-
import org.apache.maven.doxia.logging.Log;
import org.apache.maven.doxia.logging.SystemStreamLog;
import org.apache.maven.doxia.macro.Macro;
@@ -37,6 +29,13 @@ import org.apache.maven.doxia.macro.manager.MacroNotFoundException;
import org.apache.maven.doxia.sink.Sink;
import org.codehaus.plexus.component.annotations.Requirement;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.Properties;
+
/**
* An abstract base class that defines some convenience methods for parsers.
* Provides a macro mechanism to give dynamic functionalities for the parsing.
@@ -179,15 +178,32 @@ public abstract class AbstractParser
public void parse( String string, Sink sink )
throws ParseException
{
- parse( new StringReader( string ), sink );
+ this.parse( string, sink, null );
}
-
+
+ /**
+ * {@inheritDoc}
+ *
+ * Convenience method to parse an arbitrary string and emit events into the given sink.
+ *
+ * @param string A string that provides the source input.
+ * @param sink A sink that consumes the Doxia events.
+ * @param reference A string containing the reference to the source of the input string (e.g. filename).
+ * @throws org.apache.maven.doxia.parser.ParseException if the string could not be parsed.
+ * @since 1.9.2
+ */
+ public void parse( String string, Sink sink, String reference )
+ throws ParseException
+ {
+ parse( new StringReader( string ), sink, reference );
+ }
+
/** {@inheritDoc} */
@Override
- public void parse( Reader source, Sink sink, String reference )
+ public void parse( Reader source, Sink sink )
throws ParseException
{
- parse( source, sink );
+ parse( source, sink, null );
}
/**
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
index 224c1cf..10095d1 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
@@ -19,23 +19,6 @@ package org.apache.maven.doxia.parser;
* under the License.
*/
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.StringReader;
-import java.net.URL;
-import java.util.Hashtable;
-import java.util.LinkedHashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
@@ -49,18 +32,33 @@ import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
import org.apache.maven.doxia.util.HtmlTools;
import org.apache.maven.doxia.util.XmlValidator;
-
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.pull.MXParser;
import org.codehaus.plexus.util.xml.pull.XmlPullParser;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.Hashtable;
+import java.util.LinkedHashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
/**
* An abstract class that defines some convenience methods for <code>XML</code> parsers.
*
@@ -100,7 +98,7 @@ public abstract class AbstractXmlParser
private boolean validate = false;
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
init();
@@ -153,7 +151,7 @@ public abstract class AbstractXmlParser
setSecondParsing( false );
init();
}
-
+
/**
* Initializes the parser with custom entities or other options.
*
@@ -166,18 +164,6 @@ public abstract class AbstractXmlParser
// nop
}
- /**
- * {@inheritDoc}
- *
- * Convenience method to parse an arbitrary string and emit any xml events into the given sink.
- */
- @Override
- public void parse( String string, Sink sink )
- throws ParseException
- {
- super.parse( string, sink );
- }
-
/** {@inheritDoc} */
@Override
public final int getType()
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
index 5dfc757..dd10f58 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
@@ -81,14 +81,14 @@ public class Xhtml5BaseParser
/** {@inheritDoc} */
@Override
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
init();
try
{
- super.parse( source, sink );
+ super.parse( source, sink, reference );
}
finally
{
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
index 36b1024..da379c2 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
@@ -82,14 +82,14 @@ public class XhtmlBaseParser
/** {@inheritDoc} */
@Override
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
init();
try
{
- super.parse( source, sink );
+ super.parse( source, sink, reference );
}
finally
{
diff --git a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
index 6fc121b..da334a1 100644
--- a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
+++ b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
@@ -89,7 +89,7 @@ public class FmlParser
private Map<String, Object> macroParameters = new HashMap<>();
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
this.faqs = null;
@@ -118,7 +118,7 @@ public class FmlParser
this.faqs = new Faqs();
// this populates faqs
- super.parse( tmp, sink );
+ super.parse( tmp, sink, reference );
writeFaqs( sink );
}
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
index f40e123..9ae9706 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
@@ -107,7 +107,7 @@ public class MarkdownParser
private MarkdownHtmlParser parser;
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
try
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
index 6efa2b5..e1b8184 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
@@ -85,7 +85,7 @@ public class XdocParser
private boolean hasTitle;
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
this.sourceContent = null;
@@ -110,7 +110,7 @@ public class XdocParser
try
{
- super.parse( new StringReader( sourceContent ), sink );
+ super.parse( new StringReader( sourceContent ), sink, reference );
}
finally
{
diff --git a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
index 00cfc8d..5c12ace 100644
--- a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
+++ b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
@@ -333,7 +333,7 @@ public class XhtmlParser
}
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
this.sourceContent = null;
@@ -355,7 +355,7 @@ public class XhtmlParser
try
{
- super.parse( new StringReader( sourceContent ), sink );
+ super.parse( new StringReader( sourceContent ), sink, reference );
}
finally
{
diff --git a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
index 7820fa7..ac27097 100644
--- a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
+++ b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
@@ -21,6 +21,7 @@ package org.apache.maven.doxia.module.xhtml;
import java.io.File;
import java.io.FileFilter;
+import java.io.StringReader;
import java.util.Iterator;
import java.util.regex.Pattern;
diff --git a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
index 984769b..e049355 100644
--- a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
+++ b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
@@ -334,7 +334,7 @@ public class Xhtml5Parser
}
/** {@inheritDoc} */
- public void parse( Reader source, Sink sink )
+ public void parse( Reader source, Sink sink, String reference )
throws ParseException
{
this.sourceContent = null;
@@ -356,7 +356,7 @@ public class Xhtml5Parser
try
{
- super.parse( new StringReader( sourceContent ), sink );
+ super.parse( new StringReader( sourceContent ), sink, reference );
}
finally
{