Create a New Doxia Module

First, you need to create a POM with doxia-modules as parent:

<project>
  <parent>
    <groupId>org.apache.maven.doxia</groupId>
    <artifactId>doxia-modules</artifactId>
    <version>1.0</version> <!-- Latest release -->
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>doxia-module-my</artifactId>
  <name>Doxia :: MY Module</name>

  ...
</project>

Secondly, you should implement some Doxia classes:

  • MyParser class
    import org.apache.maven.doxia.parser.AbstractParser;
    
    /**
     * @plexus.component role="org.apache.maven.doxia.parser.Parser" role-hint="my"
     */
    public class MyParser
        extends AbstractParser
    {
    ...
    }
  • MyParseException class (optional)
    import org.apache.maven.doxia.parser.ParseException;
    
    public class MyParseException
        extends ParseException
    {
    ...
    }
  • MySiteModule class (optional, will be used by doxia-sitetools)
    import org.apache.maven.doxia.module.site.AbstractSiteModule;
    
    /**
     * @plexus.component role="org.apache.maven.doxia.module.site.SiteModule" role-hint="my"
     */
    public class MySiteModule
        extends AbstractSiteModule
    {
    ...
    }
  • MySink class
    import org.apache.maven.doxia.sink.SinkAdapter;
    
    public class MySink
        extends SinkAdapter
    {
    ...
    }
  • MySinkFactory class
    import org.apache.maven.doxia.sink.SinkFactory;
    
    /**
     * @plexus.component role="org.apache.maven.doxia.sink.SinkFactory" role-hint="my"
     */
    public class MySinkFactory
        extends SinkFactory
    {
    ...
    }