You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/02/17 20:15:45 UTC

[maven-doxia] branch master updated: [DOXIA-649] Plexus to Sisu migration misses Singleton annotation

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git


The following commit(s) were added to refs/heads/master by this push:
     new 2aea450  [DOXIA-649] Plexus to Sisu migration misses Singleton annotation
2aea450 is described below

commit 2aea4500ba6559b91fe3a4b83a5d3aafc10116b4
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Thu Feb 17 17:11:41 2022 +0100

    [DOXIA-649] Plexus to Sisu migration misses Singleton annotation
    
    This closes #96
---
 .../src/main/java/org/apache/maven/doxia/DefaultDoxia.java    |  2 ++
 doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java    |  2 --
 .../src/main/java/org/apache/maven/doxia/macro/EchoMacro.java |  2 ++
 .../src/main/java/org/apache/maven/doxia/macro/Macro.java     |  2 --
 .../apache/maven/doxia/macro/manager/DefaultMacroManager.java |  2 ++
 .../org/apache/maven/doxia/macro/manager/MacroManager.java    |  2 --
 .../org/apache/maven/doxia/macro/snippet/SnippetMacro.java    |  2 ++
 .../main/java/org/apache/maven/doxia/macro/toc/TocMacro.java  |  2 ++
 .../src/main/java/org/apache/maven/doxia/parser/Parser.java   |  2 --
 .../maven/doxia/parser/manager/DefaultParserManager.java      |  2 ++
 .../org/apache/maven/doxia/parser/manager/ParserManager.java  |  2 --
 .../maven/doxia/parser/module/DefaultParserModuleManager.java |  2 ++
 .../java/org/apache/maven/doxia/module/apt/AptParser.java     |  2 ++
 .../org/apache/maven/doxia/module/apt/AptParserModule.java    |  2 ++
 .../org/apache/maven/doxia/module/apt/AptSinkFactory.java     |  2 ++
 .../java/org/apache/maven/doxia/module/fml/FmlParser.java     |  2 ++
 .../org/apache/maven/doxia/module/fml/FmlParserModule.java    |  2 ++
 .../apache/maven/doxia/module/markdown/MarkdownParser.java    |  9 +++------
 .../maven/doxia/module/markdown/MarkdownParserModule.java     |  4 +++-
 .../java/org/apache/maven/doxia/module/xdoc/XdocParser.java   |  2 ++
 .../org/apache/maven/doxia/module/xdoc/XdocParserModule.java  |  2 ++
 .../org/apache/maven/doxia/module/xdoc/XdocSinkFactory.java   |  2 ++
 .../java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java |  2 ++
 .../apache/maven/doxia/module/xhtml/XhtmlParserModule.java    |  2 ++
 .../org/apache/maven/doxia/module/xhtml/XhtmlSinkFactory.java |  2 ++
 .../org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java    |  9 +++------
 .../apache/maven/doxia/module/xhtml5/Xhtml5ParserModule.java  |  2 ++
 .../apache/maven/doxia/module/xhtml5/Xhtml5SinkFactory.java   |  2 ++
 .../src/main/java/org/apache/maven/doxia/sink/Sink.java       |  2 --
 .../main/java/org/apache/maven/doxia/sink/SinkFactory.java    |  2 --
 pom.xml                                                       | 11 +++++++----
 31 files changed, 56 insertions(+), 31 deletions(-)

diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java b/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java
index a4b1d17..aaf071a 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java
@@ -21,6 +21,7 @@ package org.apache.maven.doxia;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.ParseException;
 import org.apache.maven.doxia.parser.Parser;
@@ -37,6 +38,7 @@ import java.io.Reader;
  * @author Jason van Zyl
  * @since 1.0
  */
+@Singleton
 @Named
 public class DefaultDoxia
     implements Doxia
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java b/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java
index 17d3920..01c7ee5 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/Doxia.java
@@ -34,8 +34,6 @@ import java.io.Reader;
  */
 public interface Doxia
 {
-    /** The Plexus lookup role. */
-    String ROLE = Doxia.class.getName();
 
     /**
      * Parses the given source model using a parser with given id,
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java
index 5b34b0a..0cacafb 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.macro;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
@@ -27,6 +28,7 @@ import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
 /**
  * A simple macro that prints out the key and value of some supplied parameters.
  */
+@Singleton
 @Named( "echo" )
 public class EchoMacro
     extends AbstractMacro
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java
index f737468..2ae8209 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java
@@ -29,8 +29,6 @@ import org.apache.maven.doxia.sink.Sink;
  */
 public interface Macro
 {
-    /** The Plexus lookup role. */
-    String ROLE = Macro.class.getName();
 
     /** The vm line separator */
     String EOL = System.getProperty( "line.separator" );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/DefaultMacroManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/DefaultMacroManager.java
index 50b8234..1e0b7e7 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/DefaultMacroManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/DefaultMacroManager.java
@@ -21,6 +21,7 @@ package org.apache.maven.doxia.macro.manager;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.macro.Macro;
 
@@ -32,6 +33,7 @@ import java.util.Map;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @since 1.0
  */
+@Singleton
 @Named
 public class DefaultMacroManager
     implements MacroManager
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/MacroManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/MacroManager.java
index c3b7a5a..fe5b246 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/MacroManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/manager/MacroManager.java
@@ -29,8 +29,6 @@ import org.apache.maven.doxia.macro.Macro;
  */
 public interface MacroManager
 {
-    /** The Plexus lookup role. */
-    String ROLE = MacroManager.class.getName();
 
     /**
      * Returns the MacroManager that corresponds to the given id.
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
index d9c31dd..01a718b 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.macro.snippet;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.macro.AbstractMacro;
 import org.apache.maven.doxia.macro.MacroExecutionException;
@@ -40,6 +41,7 @@ import java.util.Map;
 /**
  * A macro that prints out the content of a file or a URL.
  */
+@Singleton
 @Named( "snippet" )
 public class SnippetMacro
     extends AbstractMacro
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
index 4c676cd..e03efd2 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.macro.toc;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.StringReader;
 
@@ -76,6 +77,7 @@ import org.codehaus.plexus.util.StringUtils;
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
+@Singleton
 @Named( "toc" )
 public class TocMacro
     extends AbstractMacro
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java
index 0e1cd39..98ecc1a 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java
@@ -33,8 +33,6 @@ import java.io.Reader;
  */
 public interface Parser
 {
-    /** The Plexus lookup role. */
-    String ROLE = Parser.class.getName();
 
     /** Unknown parser type */
     int UNKNOWN_TYPE = 0;
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/DefaultParserManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/DefaultParserManager.java
index 90c938e..08ad918 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/DefaultParserManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/DefaultParserManager.java
@@ -21,6 +21,7 @@ package org.apache.maven.doxia.parser.manager;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.Parser;
 
@@ -32,6 +33,7 @@ import java.util.Map;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @since 1.0
  */
+@Singleton
 @Named
 public class DefaultParserManager
     implements ParserManager
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/ParserManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/ParserManager.java
index 2751472..77bca13 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/ParserManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/manager/ParserManager.java
@@ -29,8 +29,6 @@ import org.apache.maven.doxia.parser.Parser;
  */
 public interface ParserManager
 {
-    /** The Plexus lookup role. */
-    String ROLE = ParserManager.class.getName();
 
     /**
      * Returns the parser that corresponds to the given id.
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
index 665bee3..5ff1880 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
@@ -21,6 +21,7 @@ package org.apache.maven.doxia.parser.module;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.util.Collection;
 import java.util.LinkedHashMap;
@@ -31,6 +32,7 @@ import java.util.Map;
  *
  * @since 1.6
  */
+@Singleton
 @Named
 public class DefaultParserModuleManager
     implements ParserModuleManager
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
index 003b4fa..81dae4f 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.apt;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.macro.MacroExecutionException;
 import org.apache.maven.doxia.macro.MacroRequest;
@@ -52,6 +53,7 @@ import java.util.StringTokenizer;
  *
  * @since 1.0
  */
+@Singleton
 @Named( "apt" )
 public class AptParser
     extends AbstractTextParser
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParserModule.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParserModule.java
index f433a0f..46eb0b4 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParserModule.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParserModule.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.apt;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
@@ -28,6 +29,7 @@ import org.apache.maven.doxia.parser.module.AbstractParserModule;
  *
  * @since 1.6
  */
+@Singleton
 @Named( "apt" )
 public class AptParserModule
     extends AbstractParserModule
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSinkFactory.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSinkFactory.java
index 300e230..3a4216c 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSinkFactory.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSinkFactory.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.apt;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.Writer;
 
@@ -32,6 +33,7 @@ import org.apache.maven.doxia.sink.impl.AbstractTextSinkFactory;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @since 1.0
  */
+@Singleton
 @Named( "apt" )
 public class AptSinkFactory
     extends AbstractTextSinkFactory
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 70874cd..a1c3602 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
@@ -28,6 +28,7 @@ import java.util.Iterator;
 import java.util.Map;
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.swing.text.html.HTML.Attribute;
 
 import org.apache.maven.doxia.macro.MacroExecutionException;
@@ -57,6 +58,7 @@ import org.slf4j.LoggerFactory;
  * @author ltheussl
  * @since 1.0
  */
+@Singleton
 @Named( "fml" )
 public class FmlParser
     extends AbstractXmlParser
diff --git a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParserModule.java b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParserModule.java
index 0801804..7554129 100644
--- a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParserModule.java
+++ b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParserModule.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.fml;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
@@ -28,6 +29,7 @@ import org.apache.maven.doxia.parser.module.AbstractParserModule;
  *
  * @since 1.6
  */
+@Singleton
 @Named( "fml" )
 public class FmlParserModule
     extends AbstractParserModule
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 bba74f4..445a604 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
@@ -21,6 +21,7 @@ package org.apache.maven.doxia.module.markdown;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import com.vladsch.flexmark.ast.Heading;
 import com.vladsch.flexmark.ast.HtmlCommentBlock;
@@ -66,17 +67,13 @@ import java.util.regex.Pattern;
  * @author Julien Nicoulaud
  * @since 1.3
  */
-@Named( MarkdownParser.ROLE_HINT )
+@Singleton
+@Named( "markdown" )
 public class MarkdownParser
     extends AbstractParser
 {
 
     /**
-     * The role hint for the {@link MarkdownParser} Plexus component.
-     */
-    public static final String ROLE_HINT = "markdown";
-
-    /**
      * Regex that identifies a multimarkdown-style metadata section at the start of the document
      *
      * In order to ensure that we have minimal risk of false positives when slurping metadata sections, the
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParserModule.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParserModule.java
index 465a6d5..7528ba7 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParserModule.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParserModule.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.markdown;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
@@ -28,6 +29,7 @@ import org.apache.maven.doxia.parser.module.AbstractParserModule;
  *
  * @since 1.6
  */
+@Singleton
 @Named( "markdown" )
 public class MarkdownParserModule
     extends AbstractParserModule
@@ -47,6 +49,6 @@ public class MarkdownParserModule
      */
     public MarkdownParserModule()
     {
-        super( MarkdownParser.ROLE_HINT, MarkdownParser.ROLE_HINT, FILE_EXTENSION, ALTERNATE_FILE_EXTENSION );
+        super( "markdown", "markdown", FILE_EXTENSION, ALTERNATE_FILE_EXTENSION );
     }
 }
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 196e700..10d8a4d 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
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.swing.text.html.HTML.Attribute;
 
 import org.apache.maven.doxia.macro.MacroExecutionException;
@@ -50,6 +51,7 @@ import org.slf4j.LoggerFactory;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @since 1.0
  */
+@Singleton
 @Named( "xdoc" )
 public class XdocParser
     extends XhtmlBaseParser
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParserModule.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParserModule.java
index 32eacc8..3f13b6c 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParserModule.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParserModule.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xdoc;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
@@ -28,6 +29,7 @@ import org.apache.maven.doxia.parser.module.AbstractParserModule;
  *
  * @since 1.6
  */
+@Singleton
 @Named( "xdoc" )
 public class XdocParserModule
     extends AbstractParserModule
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSinkFactory.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSinkFactory.java
index bcbe7a8..4d6c495 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSinkFactory.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSinkFactory.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xdoc;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.Writer;
 
@@ -32,6 +33,7 @@ import org.apache.maven.doxia.sink.impl.AbstractXmlSinkFactory;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @since 1.0
  */
+@Singleton
 @Named( "xdoc" )
 public class XdocSinkFactory
     extends AbstractXmlSinkFactory
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 bb3c328..d3d7467 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
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.swing.text.html.HTML.Attribute;
 
 import org.apache.maven.doxia.macro.MacroExecutionException;
@@ -49,6 +50,7 @@ import org.slf4j.LoggerFactory;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @since 1.0
  */
+@Singleton
 @Named( "xhtml" )
 public class XhtmlParser
     extends XhtmlBaseParser
diff --git a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParserModule.java b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParserModule.java
index 4b78d93..8bac1e2 100644
--- a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParserModule.java
+++ b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParserModule.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xhtml;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
@@ -28,6 +29,7 @@ import org.apache.maven.doxia.parser.module.AbstractParserModule;
  *
  * @since 1.6
  */
+@Singleton
 @Named( "xhtml" )
 public class XhtmlParserModule
     extends AbstractParserModule
diff --git a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkFactory.java b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkFactory.java
index 18c4c29..468e652 100644
--- a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkFactory.java
+++ b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkFactory.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xhtml;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.Writer;
 
@@ -32,6 +33,7 @@ import org.apache.maven.doxia.sink.impl.AbstractXmlSinkFactory;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @since 1.0
  */
+@Singleton
 @Named( "xhtml" )
 public class XhtmlSinkFactory
     extends AbstractXmlSinkFactory
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 e38f1c2..392ac4f 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
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 import javax.swing.text.html.HTML.Attribute;
 
 import org.apache.maven.doxia.macro.MacroExecutionException;
@@ -46,18 +47,14 @@ import org.slf4j.LoggerFactory;
 /**
  * Parse an xhtml model and emit events into a Doxia Sink.
  */
-@Named( Xhtml5Parser.ROLE_HINT )
+@Singleton
+@Named( "xhtml5" )
 public class Xhtml5Parser
     extends Xhtml5BaseParser
     implements Xhtml5Markup
 {
     private static final Logger LOGGER = LoggerFactory.getLogger( Xhtml5Parser.class );
 
-    /**
-     * The role hint for the {@link Xhtml5Parser} Plexus component.
-     */
-    public static final String ROLE_HINT = "xhtml5";
-
     /** For boxed verbatim. */
     private boolean boxed;
 
diff --git a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserModule.java b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserModule.java
index 14a06ca..6bc58b2 100644
--- a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserModule.java
+++ b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserModule.java
@@ -20,12 +20,14 @@ package org.apache.maven.doxia.module.xhtml5;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.maven.doxia.parser.module.AbstractParserModule;
 
 /**
  * <p>Xhtml5ParserModule class.</p>
  */
+@Singleton
 @Named( "xhtml5" )
 public class Xhtml5ParserModule
     extends AbstractParserModule
diff --git a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkFactory.java b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkFactory.java
index 227dd07..42658bc 100644
--- a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkFactory.java
+++ b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkFactory.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xhtml5;
  */
 
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.Writer;
 
@@ -29,6 +30,7 @@ import org.apache.maven.doxia.sink.impl.AbstractXmlSinkFactory;
 /**
  * Xhtml implementation of the Sink factory.
  */
+@Singleton
 @Named( "xhtml5" )
 public class Xhtml5SinkFactory
     extends AbstractXmlSinkFactory
diff --git a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
index b790bad..3268262 100644
--- a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
+++ b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
@@ -55,8 +55,6 @@ package org.apache.maven.doxia.sink;
  */
 public interface Sink
 {
-    /** The Plexus Sink Role. */
-    String ROLE = Sink.class.getName();
 
     /**
      * A numbering to handle a number list.
diff --git a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkFactory.java b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkFactory.java
index 5cbafe6..fe9258f 100644
--- a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkFactory.java
+++ b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkFactory.java
@@ -31,8 +31,6 @@ import java.io.OutputStream;
  */
 public interface SinkFactory
 {
-    /** The Plexus SinkFactory Role. */
-    String ROLE = SinkFactory.class.getName();
 
     /**
      * Create a <code>Sink</code> into a file.
diff --git a/pom.xml b/pom.xml
index 9fd1c48..cd8e401 100644
--- a/pom.xml
+++ b/pom.xml
@@ -89,6 +89,7 @@ under the License.
     <project.build.outputTimestamp>2022-02-13T21:44:43Z</project.build.outputTimestamp>
     <slf4jVersion>1.7.32</slf4jVersion>
     <junitVersion>5.8.2</junitVersion>
+    <sisuVersion>0.3.5</sisuVersion>
   </properties>
 
   <dependencyManagement>
@@ -183,7 +184,7 @@ under the License.
       <dependency>
         <groupId>org.eclipse.sisu</groupId>
         <artifactId>org.eclipse.sisu.plexus</artifactId>
-        <version>0.3.5</version>
+        <version>${sisuVersion}</version>
       </dependency>
       <dependency>
         <groupId>com.google.inject</groupId>
@@ -279,12 +280,14 @@ under the License.
     </pluginManagement>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+        <version>${sisuVersion}</version>
         <executions>
           <execution>
             <goals>
-              <goal>generate-metadata</goal>
+              <goal>main-index</goal>
+              <goal>test-index</goal>
             </goals>
           </execution>
         </executions>