Author: hboutemy Date: Sat Sep 12 20:34:09 2015 New Revision: 1702681 URL: http://svn.apache.org/r1702681 Log: [DOXIA-531] improved MacroRequest API with parser and sourceContent parameters requirements
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.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-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java?rev=1702681&r1=1702680&r2=1702681&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java Sat Sep 12 20:34:09 2015 @@ -20,6 +20,10 @@ package org.apache.maven.doxia.macro; */ import java.util.Map; + +import org.apache.maven.doxia.parser.AbstractParser; +import org.apache.maven.doxia.parser.Parser; + import java.io.File; /** @@ -31,6 +35,9 @@ import java.io.File; */ public class MacroRequest { + private static final String PARAM_SOURCE_CONTENT = "sourceContent"; + private static final String PARAM_PARSER = "parser"; + /** The current base directory. */ private File basedir; @@ -42,6 +49,7 @@ public class MacroRequest * * @param param A map of parameters. * @param base The current base directory. + * @deprecated prefer other constructor */ public MacroRequest( Map<String, Object> param, File base ) { @@ -49,6 +57,15 @@ public class MacroRequest this.basedir = base; } + public MacroRequest( String sourceContent, AbstractParser parser, Map<String, Object> param, File base ) + { + this.parameters = param; + this.basedir = base; + param.put( PARAM_SOURCE_CONTENT, sourceContent ); + parser.setSecondParsing( true ); + param.put( PARAM_PARSER, parser ); + } + /** * Returns the current base directory. * @@ -90,4 +107,14 @@ public class MacroRequest { return parameters.get( key ); } + + public String getSourceContent() + { + return (String) getParameter( PARAM_SOURCE_CONTENT ); + } + + public Parser getParser() + { + return (Parser) getParameter( PARAM_PARSER ); + } } Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java?rev=1702681&r1=1702680&r2=1702681&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java Sat Sep 12 20:34:09 2015 @@ -97,8 +97,8 @@ public class TocMacro public void execute( Sink sink, MacroRequest request ) throws MacroExecutionException { - String source = (String) request.getParameter( "sourceContent" ); - Parser parser = (Parser) request.getParameter( "parser" ); + String source = request.getSourceContent(); + Parser parser = request.getParser(); section = getInt( request, "section", 0 ); fromDepth = getInt( request, "fromDepth", 0 ); 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=1702681&r1=1702680&r2=1702681&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 Sat Sep 12 20:34:09 2015 @@ -2913,16 +2913,9 @@ public class AptParser parameters.put( key, value ); } - parameters.put( "sourceContent", sourceContent ); - - AptParser aptParser = new AptParser(); - aptParser.setSecondParsing( true ); - aptParser.enableLogging( getLog() ); - parameters.put( "parser", aptParser ); - // getBasedir() does not work in multi-module builds, see DOXIA-373 // the basedir should be injected from here, see DOXIA-224 - MacroRequest request = new MacroRequest( parameters, getBasedir() ); + MacroRequest request = new MacroRequest( sourceContent, new AptParser(), parameters, getBasedir() ); try { AptParser.this.executeMacro( macroId, request, sink ); 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=1702681&r1=1702680&r2=1702681&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 Sat Sep 12 20:34:09 2015 @@ -486,13 +486,8 @@ public class FmlParser { if ( StringUtils.isNotEmpty( macroName ) ) { - // TODO handles specific macro attributes - macroParameters.put( "sourceContent", sourceContent ); - FmlParser fmlParser = new FmlParser(); - fmlParser.setSecondParsing( true ); - macroParameters.put( "parser", fmlParser ); - - MacroRequest request = new MacroRequest( macroParameters, getBasedir() ); + MacroRequest request = + new MacroRequest( sourceContent, new FmlParser(), macroParameters, getBasedir() ); try { Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=1702681&r1=1702680&r2=1702681&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Sat Sep 12 20:34:09 2015 @@ -392,13 +392,8 @@ public class XdocParser { if ( StringUtils.isNotEmpty( macroName ) ) { - // TODO handles specific macro attributes - macroParameters.put( "sourceContent", sourceContent ); - XdocParser xdocParser = new XdocParser(); - xdocParser.setSecondParsing( true ); - macroParameters.put( "parser", xdocParser ); - - MacroRequest request = new MacroRequest( macroParameters, getBasedir() ); + MacroRequest request = + new MacroRequest( sourceContent, new XdocParser(), macroParameters, getBasedir() ); try {