You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-dev@maven.apache.org by Vincent Siveton <vi...@gmail.com> on 2007/08/09 21:33:10 UTC
Re: svn commit: r564180 - in /maven/doxia: doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/ doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/ doxia/trunk/doxia-core/src/main/java/org/apache/maven
Hi Dennis,
2007/8/9, Dennis Lundberg <de...@apache.org>:
> Shouldn't FmlParser extend AbstractXmlParser?
Yes! It is on my todo list ;)
Cheers,
Vincent
> vsiveton@apache.org wrote:
> > Author: vsiveton
> > Date: Thu Aug 9 05:15:44 2007
> > New Revision: 564180
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=564180
> > Log:
> > DOXIA-133: default XML encoding (UTF-8) or XML encoding set in XML files is ignored: inputEncoding is used instead
> > Submitted by: Herve Boutemy
> > Reviewed by: Vincent Siveton
> >
> > o applied with modifications discussed on this issue
> > o added/updated javadoc
> >
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
> > maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java
> > maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java
> > maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
> > maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractTextParser.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/parser/Parser.java
> > maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.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-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
> >
> > Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java (original)
> > +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java Thu Aug 9 05:15:44 2007
> > @@ -22,6 +22,7 @@
> > import org.apache.maven.doxia.Doxia;
> > import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
> > import org.apache.maven.doxia.parser.ParseException;
> > +import org.apache.maven.doxia.parser.Parser;
> > import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
> > import org.apache.maven.doxia.site.decoration.DecorationModel;
> > import org.apache.maven.doxia.module.site.SiteModule;
> > @@ -53,10 +54,9 @@
> > * @since 1.0
> > * @plexus.component role-hint="default"
> > */
> > -public class
> > - DefaultSiteRenderer
> > - extends AbstractLogEnabled
> > - implements Renderer
> > +public class DefaultSiteRenderer
> > + extends AbstractLogEnabled
> > + implements Renderer
> > {
> > // ----------------------------------------------------------------------
> > // Requirements
> > @@ -92,6 +92,7 @@
> > // Renderer implementation
> > // ----------------------------------------------------------------------
> >
> > + /** {@inheritDoc} */
> > public void render( Collection documents,
> > SiteRenderingContext siteRenderingContext,
> > File outputDirectory )
> > @@ -106,6 +107,7 @@
> > }
> > }
> >
> > + /** {@inheritDoc} */
> > public Map locateDocumentFiles( SiteRenderingContext siteRenderingContext )
> > throws IOException, RendererException
> > {
> > @@ -278,6 +280,7 @@
> > }
> > }
> >
> > + /** {@inheritDoc} */
> > public void renderDocument( Writer writer,
> > RenderingContext renderingContext,
> > SiteRenderingContext context )
> > @@ -285,16 +288,17 @@
> > {
> > SiteRendererSink sink = new SiteRendererSink( renderingContext );
> >
> > - String fullPathDoc = new File( renderingContext.getBasedir(), renderingContext.getInputName() ).getPath();
> > + File doc = new File( renderingContext.getBasedir(), renderingContext.getInputName() );
> >
> > try
> > {
> > Reader reader = null;
> > + Parser parser = doxia.getParser( renderingContext.getParserId() );
> >
> > // DOXIA-111: the filter used here must be checked generally.
> > if ( renderingContext.getAttribute( "velocity" ) != null )
> > {
> > - String resource = new File( fullPathDoc ).getAbsolutePath();
> > + String resource = doc.getAbsolutePath();
> >
> > try
> > {
> > @@ -322,7 +326,17 @@
> > }
> > else
> > {
> > - reader = new InputStreamReader( new FileInputStream( fullPathDoc ), context.getInputEncoding() );
> > + switch ( parser.getType() )
> > + {
> > + case Parser.XML_TYPE:
> > + reader = ReaderFactory.newXmlReader( doc );
> > + break;
> > +
> > + case Parser.TXT_TYPE:
> > + case Parser.UNKNOWN_TYPE:
> > + default:
> > + reader = ReaderFactory.newReader( doc, context.getInputEncoding() );
> > + }
> > }
> >
> > doxia.parse( reader, renderingContext.getParserId(), sink );
> > @@ -331,12 +345,15 @@
> > }
> > catch ( ParserNotFoundException e )
> > {
> > - throw new RendererException( "Error getting a parser for " + fullPathDoc + ": " + e.getMessage() );
> > + throw new RendererException( "Error getting a parser for " + doc + ": " + e.getMessage() );
> > }
> > catch ( ParseException e )
> > {
> > - getLogger().error( "Error parsing " + fullPathDoc + ": line [" + e.getLineNumber() + "] " + e.getMessage(),
> > - e );
> > + getLogger().error( "Error parsing " + doc + ": line [" + e.getLineNumber() + "] " + e.getMessage(), e );
> > + }
> > + catch ( IOException e )
> > + {
> > + getLogger().error( "Error parsing " + doc + " to detect encoding", e );
> > }
> > finally
> > {
> > @@ -423,6 +440,7 @@
> > return context;
> > }
> >
> > + /** {@inheritDoc} */
> > public void generateDocument( Writer writer,
> > SiteRendererSink sink,
> > SiteRenderingContext siteRenderingContext )
> > @@ -495,6 +513,7 @@
> > }
> > }
> >
> > + /** {@inheritDoc} */
> > public SiteRenderingContext createContextForSkin( File skinFile,
> > Map attributes,
> > DecorationModel decoration,
> > @@ -534,6 +553,7 @@
> > return context;
> > }
> >
> > + /** {@inheritDoc} */
> > public SiteRenderingContext createContextForTemplate( File templateFile,
> > File skinFile,
> > Map attributes,
> > @@ -569,6 +589,7 @@
> > }
> > }
> >
> > + /** {@inheritDoc} */
> > public void copyResources( SiteRenderingContext siteContext,
> > File resourcesDirectory,
> > File outputDirectory )
> >
> > Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java Thu Aug 9 05:15:44 2007
> > @@ -31,10 +31,10 @@
> > * Simple implementation of the Doxia interface:
> > * uses a ParserManager to lookup a parser.
> > *
> > - * @plexus.component
> > - *
> > * @author Jason van Zyl
> > - * @version $Id:DefaultDoxia.java 348605 2005-11-24 12:02:44 +1100 (Thu, 24 Nov 2005) brett $
> > + * @version $Id$
> > + * @since 1.0
> > + * @plexus.component
> > */
> > public class DefaultDoxia
> > implements Doxia
> > @@ -57,5 +57,12 @@
> > Parser parser = parserManager.getParser( parserId );
> >
> > parser.parse( source, sink );
> > + }
> > +
> > + /** {@inheritDoc} */
> > + public Parser getParser( String parserId )
> > + throws ParserNotFoundException
> > + {
> > + return parserManager.getParser( parserId );
> > }
> > }
> >
> > Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java Thu Aug 9 05:15:44 2007
> > @@ -20,6 +20,7 @@
> > */
> >
> > import org.apache.maven.doxia.parser.ParseException;
> > +import org.apache.maven.doxia.parser.Parser;
> > import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
> > import org.apache.maven.doxia.sink.Sink;
> >
> > @@ -29,7 +30,8 @@
> > * Basic interface of the Doxia framework.
> > *
> > * @author Jason van Zyl
> > - * @version $Id:Doxia.java 348605 2005-11-24 12:02:44 +1100 (Thu, 24 Nov 2005) brett $
> > + * @version $Id$
> > + * @since 1.0
> > */
> > public interface Doxia
> > {
> > @@ -50,4 +52,14 @@
> > void parse( Reader source, String parserId, Sink sink )
> > throws ParserNotFoundException, ParseException;
> >
> > + /**
> > + * Return a parser for the given <code>parserId</code>.
> > + *
> > + * @param parserId Identifier for the parser to use.
> > + * @return the parser defining by parserId.
> > + * @throws ParserNotFoundException if no parser could be found
> > + * for the given id.
> > + */
> > + Parser getParser( String parserId )
> > + throws ParserNotFoundException;
> > }
> >
> > Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java Thu Aug 9 05:15:44 2007
> > @@ -46,6 +46,12 @@
> > /** @plexus.requirement */
> > protected MacroManager macroManager;
> >
> > + /** {@inheritDoc} */
> > + public int getType()
> > + {
> > + return UNKNOWN_TYPE;
> > + }
> > +
> > /**
> > * Execute a macro on the given sink.
> > *
> >
> > Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractTextParser.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractTextParser.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractTextParser.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractTextParser.java Thu Aug 9 05:15:44 2007
> > @@ -32,6 +32,9 @@
> > extends AbstractParser
> > implements TextMarkup
> > {
> > -
> > + /** {@inheritDoc} */
> > + public final int getType()
> > + {
> > + return TXT_TYPE;
> > + }
> > }
> > -
> >
> > 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?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- 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 Thu Aug 9 05:15:44 2007
> > @@ -62,6 +62,12 @@
> > }
> > }
> >
> > + /** {@inheritDoc} */
> > + public final int getType()
> > + {
> > + return XML_TYPE;
> > + }
> > +
> > /**
> > * Parse the model from the XmlPullParser into the given sink.
> > *
> >
> > Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java Thu Aug 9 05:15:44 2007
> > @@ -37,6 +37,15 @@
> > /** The Plexus lookup role. */
> > String ROLE = Parser.class.getName();
> >
> > + /** Unknown parser type */
> > + int UNKNOWN_TYPE = 0;
> > +
> > + /** Text parser type */
> > + int TXT_TYPE = 1;
> > +
> > + /** XML parser type */
> > + int XML_TYPE = 2;
> > +
> > /** Used for table cells: justify center. */
> > int JUSTIFY_CENTER = 0;
> >
> > @@ -55,4 +64,12 @@
> > */
> > void parse( Reader source, Sink sink )
> > throws ParseException;
> > +
> > + /**
> > + * The parser type value could be {@link #UNKNOWN_TYPE}, {@link #TXT_TYPE} or
> > + * {@link #XML_TYPE}.
> > + *
> > + * @return the type of Parser
> > + */
> > + int getType();
> > }
> >
> > Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java Thu Aug 9 05:15:44 2007
> > @@ -29,7 +29,7 @@
> > import org.apache.maven.doxia.module.confluence.parser.HorizontalRuleBlockParser;
> > import org.apache.maven.doxia.module.confluence.parser.table.TableBlockParser;
> > import org.apache.maven.doxia.module.confluence.parser.list.ListBlockParser;
> > -import org.apache.maven.doxia.parser.AbstractParser;
> > +import org.apache.maven.doxia.parser.AbstractTextParser;
> > import org.apache.maven.doxia.parser.ParseException;
> > import org.apache.maven.doxia.sink.Sink;
> >
> > @@ -38,9 +38,17 @@
> > import java.util.Iterator;
> > import java.util.List;
> >
> > -/** @plexus.component role-hint="confluence" */
> > +/**
> > + * Parse the <a href="http://www.atlassian.com/software/confluence/">Confluence</a>.
> > + * See <a href="http://confluence.atlassian.com/display/CONF25/Confluence+Notation+Guide+Overview">
> > + * Confluence Notation Guide Overview</a>
> > + *
> > + * @version $Id$
> > + * @since 1.0
> > + * plexus.component role-hint="confluence"
> > + */
> > public class ConfluenceParser
> > - extends AbstractParser
> > + extends AbstractTextParser
> > {
> > private BlockParser[] parsers;
> >
> > @@ -109,6 +117,7 @@
> > return blocks;
> > }
> >
> > + /** {@inheritDoc} */
> > public synchronized void parse( Reader reader,
> > Sink sink )
> > throws ParseException
> >
> > 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?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- 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 Thu Aug 9 05:15:44 2007
> > @@ -38,15 +38,14 @@
> > * Parse a fml model and emit events into the specified doxia Sink.
> > *
> > * @author <a href="mailto:evenisse@codehaus.org">Emmanuel Venisse</a>
> > - * @version $Id:FmlParser.java 348605 2005-11-24 12:02:44 +1100 (Thu, 24 Nov 2005) brett $
> > + * @version $Id$
> > + * @since 1.0
> > * @plexus.component role-hint="fml"
> > */
> > public class FmlParser
> > implements Parser
> > {
> > - /**
> > - * @see org.apache.maven.doxia.parser.Parser#parse(java.io.Reader, org.apache.maven.doxia.sink.Sink)
> > - */
> > + /** {@inheritDoc} */
> > public void parse( Reader reader, Sink sink )
> > throws ParseException
> > {
> > @@ -72,6 +71,12 @@
> > {
> > throw new ParseException( "Error creating sink: " + e.getMessage(), e );
> > }
> > + }
> > +
> > + /** {@inheritDoc} */
> > + public int getType()
> > + {
> > + return XML_TYPE;
> > }
> >
> > /**
> >
> > Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
> > URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java?view=diff&rev=564180&r1=564179&r2=564180
> > ==============================================================================
> > --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java (original)
> > +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java Thu Aug 9 05:15:44 2007
> > @@ -28,7 +28,7 @@
> > import org.apache.maven.doxia.module.twiki.parser.SectionBlockParser;
> > import org.apache.maven.doxia.module.twiki.parser.TableBlockParser;
> > import org.apache.maven.doxia.module.twiki.parser.TextParser;
> > -import org.apache.maven.doxia.parser.AbstractParser;
> > +import org.apache.maven.doxia.parser.AbstractTextParser;
> > import org.apache.maven.doxia.parser.ParseException;
> > import org.apache.maven.doxia.sink.Sink;
> > import org.apache.maven.doxia.util.ByLineReaderSource;
> > @@ -44,10 +44,12 @@
> > * twiki file format</a>
> > *
> > * @author Juan F. Codagnone
> > + * @version $Id$
> > + * @since 1.0
> > * @plexus.component role="org.apache.maven.doxia.parser.Parser" role-hint="twiki"
> > - * @since Oct 31, 2005
> > */
> > -public class TWikiParser extends AbstractParser
> > +public class TWikiParser
> > + extends AbstractTextParser
> > {
> > /**
> > * paragraph parser. stateless
> > @@ -126,7 +128,7 @@
> > for ( int i = 0; i < parsers.length; i++ )
> > {
> > final BlockParser parser = parsers[i];
> > -
> > +
> > if ( parser.accept( line ) )
> > {
> > accepted = true;
> > @@ -144,10 +146,7 @@
> > return ret;
> > }
> >
> > - /**
> > - * @see org.apache.maven.doxia.parser.Parser#parse(java.io.Reader,
> > - * org.apache.maven.doxia.sink.Sink)
> > - */
> > + /** {@inheritDoc} */
> > public final synchronized void parse( final Reader reader, final Sink sink )
> > throws ParseException
> > {
> > @@ -175,7 +174,7 @@
> > for ( Iterator it = blocks.iterator(); it.hasNext(); )
> > {
> > final Block block = (Block) it.next();
> > -
> > +
> > block.traverse( sink );
> > }
> > sink.body_();
> >
> >
> >
>
>
> --
> Dennis Lundberg
>