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

slachiewicz pushed a commit to branch plexus1
in repository https://gitbox.apache.org/repos/asf/maven-wagon.git

commit aeb408aae89ff70a92b60bb8ec1145be11ea0385
Author: Sylwester Lachiewicz <[email protected]>
AuthorDate: Wed Dec 31 18:24:41 2025 +0100

    Refactor to use javax.inject annotations for dependency injection providers
---
 pom.xml                                               | 11 +++++++++++
 wagon-providers/pom.xml                               | 19 -------------------
 wagon-providers/wagon-file/pom.xml                    |  8 ++++++--
 .../apache/maven/wagon/providers/file/FileWagon.java  |  5 +++--
 wagon-providers/wagon-ftp/pom.xml                     |  8 ++++++--
 .../maven/wagon/providers/ftp/FtpHttpWagon.java       |  8 +++-----
 .../apache/maven/wagon/providers/ftp/FtpWagon.java    | 14 +++-----------
 .../apache/maven/wagon/providers/ftp/FtpsWagon.java   | 17 +++--------------
 wagon-providers/wagon-http-lightweight/pom.xml        |  8 ++++++--
 .../wagon/providers/http/LightweightHttpWagon.java    | 15 ++++++---------
 .../http/LightweightHttpWagonAuthenticator.java       |  4 +++-
 .../wagon/providers/http/LightweightHttpsWagon.java   |  8 +++-----
 .../wagon/shared/http/AbstractHttpClientWagon.java    |  1 -
 wagon-providers/wagon-http/pom.xml                    |  4 ++--
 wagon-providers/wagon-scm/pom.xml                     |  8 ++++++--
 .../apache/maven/wagon/providers/scm/ScmWagon.java    | 14 +++++---------
 .../providers/scm/UserSafeGitExeScmProvider.java      |  5 ++++-
 wagon-providers/wagon-ssh-common/pom.xml              |  8 ++++++--
 .../ssh/interactive/ConsoleInteractiveUserInfo.java   | 11 +++++------
 .../ssh/knownhost/AbstractKnownHostsProvider.java     |  2 --
 .../ssh/knownhost/FileKnownHostsProvider.java         |  7 +++----
 .../ssh/knownhost/NullKnownHostProvider.java          |  7 +++----
 .../ssh/knownhost/SingleKnownHostProvider.java        |  7 +++----
 wagon-providers/wagon-ssh-external/pom.xml            |  4 ++--
 .../ssh/external/ScpExternalCommandExecutor.java      |  7 +++----
 .../providers/ssh/external/ScpExternalWagon.java      | 14 +++-----------
 wagon-providers/wagon-ssh/pom.xml                     |  8 ++++++--
 .../wagon/providers/ssh/jsch/AbstractJschWagon.java   | 19 +++++++------------
 .../wagon/providers/ssh/jsch/ScpCommandExecutor.java  |  7 +++----
 .../maven/wagon/providers/ssh/jsch/ScpWagon.java      |  6 +++---
 .../maven/wagon/providers/ssh/jsch/SftpWagon.java     |  7 +++----
 .../interactive/PrompterUIKeyboardInteractive.java    | 10 +++++-----
 wagon-providers/wagon-webdav-jackrabbit/pom.xml       |  8 ++++++--
 .../maven/wagon/providers/webdav/WebDavWagon.java     |  6 +++---
 34 files changed, 134 insertions(+), 161 deletions(-)

diff --git a/pom.xml b/pom.xml
index f174f91b..5b2fe767 100644
--- a/pom.xml
+++ b/pom.xml
@@ -203,6 +203,12 @@ under the License.
         <artifactId>plexus-container-default</artifactId>
         <version>2.1.1</version>
       </dependency>
+      <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <version>5.1.0</version>
+        <classifier>classes</classifier>
+      </dependency>
       <!-- for slf4j -->
       <dependency>
         <groupId>org.slf4j</groupId>
@@ -243,6 +249,11 @@ under the License.
         <artifactId>mockito-core</artifactId>
         <version>4.11.0</version>
       </dependency>
+      <dependency>
+        <groupId>javax.inject</groupId>
+        <artifactId>javax.inject</artifactId>
+        <version>1</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
diff --git a/wagon-providers/pom.xml b/wagon-providers/pom.xml
index 2997c50e..61f62373 100644
--- a/wagon-providers/pom.xml
+++ b/wagon-providers/pom.xml
@@ -72,25 +72,6 @@ under the License.
   </dependencies>
 
   <build>
-    <pluginManagement>
-      <plugins>
-        <!-- required due to Javadoc based Plexus components -->
-        <plugin>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-component-metadata</artifactId>
-          <version>2.2.0</version>
-          <executions>
-            <execution>
-              <id>generate</id>
-              <goals>
-                <goal>generate-metadata</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-
     <plugins>
       <plugin>
         <groupId>org.eclipse.sisu</groupId>
diff --git a/wagon-providers/wagon-file/pom.xml 
b/wagon-providers/wagon-file/pom.xml
index c1b322b3..eae3c984 100644
--- a/wagon-providers/wagon-file/pom.xml
+++ b/wagon-providers/wagon-file/pom.xml
@@ -31,6 +31,10 @@ under the License.
   <description>Wagon provider that gets and puts artifacts using file system 
protocol</description>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
@@ -45,8 +49,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
 
b/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
index 778f28d4..d54fa36f 100644
--- 
a/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
+++ 
b/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.file;
 
+import javax.inject.Named;
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -44,9 +46,8 @@
  * Wagon Provider for Local File System
  *
  * @author <a href="[email protected]">Michal Maczka</a>
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon" role-hint="file" 
instantiation-strategy="per-lookup"
  */
+@Named("file")
 public class FileWagon extends StreamWagon {
     public void fillInputData(InputData inputData) throws 
TransferFailedException, ResourceDoesNotExistException {
         if (getRepository().getBasedir() == null) {
diff --git a/wagon-providers/wagon-ftp/pom.xml 
b/wagon-providers/wagon-ftp/pom.xml
index e74352ab..4f056b60 100644
--- a/wagon-providers/wagon-ftp/pom.xml
+++ b/wagon-providers/wagon-ftp/pom.xml
@@ -31,6 +31,10 @@ under the License.
   <description>Wagon provider that gets and puts artifacts from and to remote 
server using FTP protocol</description>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
@@ -61,8 +65,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpHttpWagon.java
 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpHttpWagon.java
index e2067fac..f2b36a99 100644
--- 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpHttpWagon.java
+++ 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpHttpWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ftp;
 
+import javax.inject.Named;
+
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPHTTPClient;
 import org.apache.maven.wagon.proxy.ProxyInfo;
@@ -26,12 +28,8 @@
 
 /**
  * FtpHttpWagon
- *
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="ftph"
- * instantiation-strategy="per-lookup"
  */
+@Named("ftph")
 public class FtpHttpWagon extends FtpWagon {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(FtpHttpWagon.class);
diff --git 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
index 7fd651d4..1db01184 100644
--- 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
+++ 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ftp;
 
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -50,23 +52,13 @@
 
 /**
  * FtpWagon
- *
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="ftp"
- * instantiation-strategy="per-lookup"
  */
+@Named("ftp")
 public class FtpWagon extends StreamWagon {
     private FTPClient ftp;
 
-    /**
-     * @plexus.configuration default-value="true"
-     */
     private boolean passiveMode = true;
 
-    /**
-     * @plexus.configuration default-value="ISO-8859-1"
-     */
     private String controlEncoding = FTP.DEFAULT_CONTROL_ENCODING;
 
     public boolean isPassiveMode() {
diff --git 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
index cb878518..f0f273cb 100644
--- 
a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
+++ 
b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ftp;
 
+import javax.inject.Named;
+
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPSClient;
 import org.slf4j.Logger;
@@ -25,28 +27,15 @@
 
 /**
  * FtpsWagon
- *
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="ftps"
- * instantiation-strategy="per-lookup"
  */
+@Named("ftps")
 public class FtpsWagon extends FtpWagon {
     private static final Logger LOG = LoggerFactory.getLogger(FtpsWagon.class);
 
-    /**
-     * @plexus.configuration default-value="TLS"
-     */
     private String securityProtocol = "TLS";
 
-    /**
-     * @plexus.configuration default-value="false"
-     */
     private boolean implicit = false;
 
-    /**
-     * @plexus.configuration default-value="true"
-     */
     private boolean endpointChecking = true;
 
     @Override
diff --git a/wagon-providers/wagon-http-lightweight/pom.xml 
b/wagon-providers/wagon-http-lightweight/pom.xml
index dcd0a6d1..a91945ee 100644
--- a/wagon-providers/wagon-http-lightweight/pom.xml
+++ b/wagon-providers/wagon-http-lightweight/pom.xml
@@ -31,6 +31,10 @@ under the License.
   <description>Wagon provider that gets and puts artifacts through http using 
standard Java library</description>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>wagon-http-shared</artifactId>
@@ -72,8 +76,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
index 67e298bd..5af25905 100644
--- 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
+++ 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.wagon.providers.http;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -62,9 +65,9 @@
  * LightweightHttpWagon, using JDK's HttpURLConnection.
  *
  * @author <a href="[email protected]">Michal Maczka</a>
- * @plexus.component role="org.apache.maven.wagon.Wagon" role-hint="http" 
instantiation-strategy="per-lookup"
  * @see HttpURLConnection
  */
+@Named("http")
 public class LightweightHttpWagon extends StreamWagon {
     private boolean preemptiveAuthentication;
 
@@ -79,19 +82,13 @@ public class LightweightHttpWagon extends StreamWagon {
 
     /**
      * Whether to use any proxy cache or not.
-     *
-     * @plexus.configuration default="false"
      */
     private boolean useCache;
 
-    /**
-     * @plexus.configuration
-     */
     private Properties httpHeaders;
 
-    /**
-     * @plexus.requirement
-     */
+    @Inject
+    
@Named("org.apache.maven.wagon.providers.http.LightweightHttpWagonAuthenticator")
     private volatile LightweightHttpWagonAuthenticator authenticator;
 
     /**
diff --git 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonAuthenticator.java
 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonAuthenticator.java
index 52609041..e06e388e 100644
--- 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonAuthenticator.java
+++ 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagonAuthenticator.java
@@ -18,13 +18,15 @@
  */
 package org.apache.maven.wagon.providers.http;
 
+import javax.inject.Named;
+
 import java.net.Authenticator;
 import java.net.PasswordAuthentication;
 
 /**
  * @author <a href="mailto:[email protected]";>Nicolas De loof</a>
- * @plexus.component 
role="org.apache.maven.wagon.providers.http.LightweightHttpWagonAuthenticator"
  */
+@Named
 public class LightweightHttpWagonAuthenticator extends Authenticator {
     ThreadLocal<LightweightHttpWagon> localWagon = new ThreadLocal<>();
 
diff --git 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagon.java
 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagon.java
index 4661b161..3c93b130 100644
--- 
a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagon.java
+++ 
b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.http;
 
+import javax.inject.Named;
+
 import org.apache.maven.wagon.ConnectionException;
 import org.apache.maven.wagon.authentication.AuthenticationException;
 import org.apache.maven.wagon.proxy.ProxyInfo;
@@ -26,12 +28,8 @@
  * LightweightHttpsWagon, using JDK's HttpURLConnection.
  *
  * @author <a href="mailto:[email protected]";>Joakim Erdfelt</a>
- *
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- *   role-hint="https"
- *   instantiation-strategy="per-lookup"
  */
+@Named("https")
 public class LightweightHttpsWagon extends LightweightHttpWagon {
     private String previousHttpsProxyHost;
 
diff --git 
a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 
b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
index 92dc157b..5069f9e5 100644
--- 
a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
+++ 
b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
@@ -516,7 +516,6 @@ private static CloseableHttpClient createClient() {
     private Closeable closeable;
 
     /**
-     * @plexus.configuration
      * @deprecated Use httpConfiguration instead.
      */
     private Properties httpHeaders;
diff --git a/wagon-providers/wagon-http/pom.xml 
b/wagon-providers/wagon-http/pom.xml
index f7c38954..8be7f6a7 100644
--- a/wagon-providers/wagon-http/pom.xml
+++ b/wagon-providers/wagon-http/pom.xml
@@ -103,8 +103,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git a/wagon-providers/wagon-scm/pom.xml 
b/wagon-providers/wagon-scm/pom.xml
index 473e9d09..6a9f2e05 100644
--- a/wagon-providers/wagon-scm/pom.xml
+++ b/wagon-providers/wagon-scm/pom.xml
@@ -35,6 +35,10 @@ under the License.
   </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-api</artifactId>
@@ -84,8 +88,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
       <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
diff --git 
a/wagon-providers/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
 
b/wagon-providers/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
index 5883ac05..afa0f068 100644
--- 
a/wagon-providers/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
+++ 
b/wagon-providers/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.wagon.providers.scm;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.IOException;
 import java.text.DecimalFormat;
@@ -69,26 +72,19 @@
  * @author <a href="[email protected]">Emmanuel Venisse</a>
  * @author <a href="[email protected]">Carlos Sanchez</a>
  * @author Jason van Zyl
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon" role-hint="scm" 
instantiation-strategy="per-lookup"
  */
+@Named("scm")
 public class ScmWagon extends AbstractWagon {
-    /**
-     * @plexus.requirement
-     */
+    @Inject
     private volatile ScmManager scmManager;
 
     /**
      * The SCM version, if any.
-     *
-     * @parameter
      */
     private String scmVersion;
 
     /**
      * The SCM version type, if any. Defaults to "branch".
-     *
-     * @parameter
      */
     private String scmVersionType;
 
diff --git 
a/wagon-providers/wagon-scm/src/test/java/org/apache/maven/wagon/providers/scm/UserSafeGitExeScmProvider.java
 
b/wagon-providers/wagon-scm/src/test/java/org/apache/maven/wagon/providers/scm/UserSafeGitExeScmProvider.java
index fe4114a7..37af63e3 100644
--- 
a/wagon-providers/wagon-scm/src/test/java/org/apache/maven/wagon/providers/scm/UserSafeGitExeScmProvider.java
+++ 
b/wagon-providers/wagon-scm/src/test/java/org/apache/maven/wagon/providers/scm/UserSafeGitExeScmProvider.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.scm;
 
+import javax.inject.Named;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmVersion;
@@ -27,8 +29,9 @@
 import org.apache.maven.scm.repository.ScmRepository;
 
 /**
- * @plexus.component role="org.apache.maven.scm.provider.ScmProvider" 
role-hint="git"
+ * Test utility provider
  */
+@Named("git")
 public class UserSafeGitExeScmProvider extends GitExeScmProvider {
 
     @Override
diff --git a/wagon-providers/wagon-ssh-common/pom.xml 
b/wagon-providers/wagon-ssh-common/pom.xml
index dd8bc740..1e8484ee 100644
--- a/wagon-providers/wagon-ssh-common/pom.xml
+++ b/wagon-providers/wagon-ssh-common/pom.xml
@@ -30,6 +30,10 @@ under the License.
   <name>Apache Maven Wagon :: Providers :: SSH Common Library</name>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
@@ -48,8 +52,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/interactive/ConsoleInteractiveUserInfo.java
 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/interactive/ConsoleInteractiveUserInfo.java
index ee1f3a99..54cf766e 100644
--- 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/interactive/ConsoleInteractiveUserInfo.java
+++ 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/interactive/ConsoleInteractiveUserInfo.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.wagon.providers.ssh.interactive;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import java.util.Arrays;
 
 import org.codehaus.plexus.components.interactivity.Prompter;
@@ -28,14 +31,10 @@
  *
  * @author Juan F. Codagnone
  * @since Sep 12, 2005
- *
- * @plexus.component 
role="org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo"
- *    instantiation-strategy="per-lookup"
  */
+@Named
 public class ConsoleInteractiveUserInfo implements InteractiveUserInfo {
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Inject
     private volatile Prompter prompter;
 
     public ConsoleInteractiveUserInfo() {}
diff --git 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
index 00e5a017..148f552c 100644
--- 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
+++ 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
@@ -31,8 +31,6 @@
 public abstract class AbstractKnownHostsProvider implements KnownHostsProvider 
{
     /**
      * Valid values are ask, yes, no.
-     *
-     * @plexus.configuration default-value="ask"
      */
     private String hostKeyChecking = "ask";
 
diff --git 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
index 3c757814..99e0e14d 100644
--- 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
+++ 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.knownhost;
 
+import javax.inject.Named;
+
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -32,11 +34,8 @@
  *
  * @author Juan F. Codagnone
  * @since Sep 12, 2005
- *
- * @plexus.component 
role="org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider"
- *    role-hint="file"
- *    instantiation-strategy="per-lookup"
  */
+@Named("file")
 public class FileKnownHostsProvider extends StreamKnownHostsProvider {
     private final File file;
 
diff --git 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/NullKnownHostProvider.java
 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/NullKnownHostProvider.java
index 46248510..899798d1 100644
--- 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/NullKnownHostProvider.java
+++ 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/NullKnownHostProvider.java
@@ -18,14 +18,13 @@
  */
 package org.apache.maven.wagon.providers.ssh.knownhost;
 
+import javax.inject.Named;
+
 /**
  * Dummy <code>KnownHostsProvider</code>
  *
  * @author Juan F. Codagnone
  * @since Sep 12, 2005
- *
- * @plexus.component 
role="org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider"
- *    role-hint="null"
- *    instantiation-strategy="per-lookup"
  */
+@Named("null")
 public final class NullKnownHostProvider extends AbstractKnownHostsProvider {}
diff --git 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/SingleKnownHostProvider.java
 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/SingleKnownHostProvider.java
index 229b4e05..572bd090 100644
--- 
a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/SingleKnownHostProvider.java
+++ 
b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/SingleKnownHostProvider.java
@@ -18,16 +18,15 @@
  */
 package org.apache.maven.wagon.providers.ssh.knownhost;
 
+import javax.inject.Named;
+
 /**
  * Simple <code>KnownHostsProvider</code> with known wired values
  *
- * @plexus.component 
role="org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider"
- *    role-hint="single"
- *    instantiation-strategy="per-lookup"
- *
  * @author Juan F. Codagnone
  * @since Sep 12, 2005
  */
+@Named("single")
 public class SingleKnownHostProvider extends AbstractKnownHostsProvider {
     public SingleKnownHostProvider() {}
 
diff --git a/wagon-providers/wagon-ssh-external/pom.xml 
b/wagon-providers/wagon-ssh-external/pom.xml
index 7164504b..9e059606 100644
--- a/wagon-providers/wagon-ssh-external/pom.xml
+++ b/wagon-providers/wagon-ssh-external/pom.xml
@@ -63,8 +63,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalCommandExecutor.java
 
b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalCommandExecutor.java
index 0d3567e5..655357cb 100644
--- 
a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalCommandExecutor.java
+++ 
b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalCommandExecutor.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.external;
 
+import javax.inject.Named;
+
 /**
  * ScpExternalCommandExecutor - bridge class for plexus:descriptor
  *
@@ -25,11 +27,8 @@
  *
  *
  * @todo is this even needed anymore?
- *
- * @plexus.component role="org.apache.maven.wagon.CommandExecutor"
- *   role-hint="scpexe"
- *   instantiation-strategy="per-lookup"
  */
+@Named("scpexe")
 public class ScpExternalCommandExecutor extends ScpExternalWagon {
 
     public ScpExternalCommandExecutor() {
diff --git 
a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
 
b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
index 0ab0cd29..5228a6dc 100644
--- 
a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
+++ 
b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.external;
 
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.List;
@@ -50,36 +52,26 @@
  *
  * @author <a href="mailto:[email protected]";>Brett Porter</a>
  * @todo [BP] add compression flag
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="scpexe"
- * instantiation-strategy="per-lookup"
  */
+@Named("scpexe")
 public class ScpExternalWagon extends AbstractWagon implements CommandExecutor 
{
     /**
      * The external SCP command to use - default is <code>scp</code>.
-     *
-     * @component.configuration default="scp"
      */
     private String scpExecutable = "scp";
 
     /**
      * The external SSH command to use - default is <code>ssh</code>.
-     *
-     * @component.configuration default="ssh"
      */
     private String sshExecutable = "ssh";
 
     /**
      * Arguments to pass to the SCP command.
-     *
-     * @component.configuration
      */
     private String scpArgs;
 
     /**
      * Arguments to pass to the SSH command.
-     *
-     * @component.configuration
      */
     private String sshArgs;
 
diff --git a/wagon-providers/wagon-ssh/pom.xml 
b/wagon-providers/wagon-ssh/pom.xml
index 717d2934..26102e4e 100644
--- a/wagon-providers/wagon-ssh/pom.xml
+++ b/wagon-providers/wagon-ssh/pom.xml
@@ -34,6 +34,10 @@ under the License.
   </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <groupId>com.jcraft</groupId>
       <artifactId>jsch</artifactId>
@@ -96,8 +100,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java
 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java
index 825e1d75..a7320923 100644
--- 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java
+++ 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.wagon.providers.ssh.jsch;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -80,24 +83,16 @@ public abstract class AbstractJschWagon extends StreamWagon 
implements SshWagon,
 
     private String strictHostKeyChecking;
 
-    /**
-     * @plexus.requirement role-hint="file"
-     */
+    @Inject
+    @Named("file")
     private volatile KnownHostsProvider knownHostsProvider;
 
-    /**
-     * @plexus.requirement
-     */
+    @Inject
     private volatile InteractiveUserInfo interactiveUserInfo;
 
-    /**
-     * @plexus.configuration
-     */
     private volatile String preferredAuthentications;
 
-    /**
-     * @plexus.requirement
-     */
+    @Inject
     private volatile UIKeyboardInteractive uIKeyboardInteractive;
 
     private static final int SOCKS5_PROXY_PORT = 1080;
diff --git 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpCommandExecutor.java
 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpCommandExecutor.java
index f0757e7a..f0e84bde 100644
--- 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpCommandExecutor.java
+++ 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpCommandExecutor.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.jsch;
 
+import javax.inject.Named;
+
 /**
  * ScpCommandExecutor - bridge class for plexus:descriptor
  *
@@ -25,11 +27,8 @@
  *
  *
  * @todo is this even needed anymore?
- *
- * @plexus.component role="org.apache.maven.wagon.CommandExecutor"
- *   role-hint="scp"
- *   instantiation-strategy="per-lookup"
  */
+@Named("scp")
 public class ScpCommandExecutor extends ScpWagon {
     public ScpCommandExecutor() {
         super();
diff --git 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagon.java
 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagon.java
index 978f225e..4d824f59 100644
--- 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagon.java
+++ 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.jsch;
 
+import javax.inject.Named;
+
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -47,10 +49,8 @@
  *
  *
  * @todo [BP] add compression flag
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="scp"
- * instantiation-strategy="per-lookup"
  */
+@Named("scp")
 public class ScpWagon extends AbstractJschWagon {
     private static final char COPY_START_CHAR = 'C';
 
diff --git 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java
 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java
index 71048ed1..93e44542 100644
--- 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java
+++ 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.ssh.jsch;
 
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -47,11 +49,8 @@
  *
  * @todo [BP] add compression flag
  * @todo see if SftpProgressMonitor allows us to do streaming (without it, we 
can't do checksums as the input stream is lost)
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- *   role-hint="sftp"
- *   instantiation-strategy="per-lookup"
  */
+@Named("sftp")
 public class SftpWagon extends AbstractJschWagon {
     private static final String SFTP_CHANNEL = "sftp";
 
diff --git 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/interactive/PrompterUIKeyboardInteractive.java
 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/interactive/PrompterUIKeyboardInteractive.java
index 5bdd2e20..b4023234 100644
--- 
a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/interactive/PrompterUIKeyboardInteractive.java
+++ 
b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/interactive/PrompterUIKeyboardInteractive.java
@@ -18,6 +18,9 @@
  */
 package org.apache.maven.wagon.providers.ssh.jsch.interactive;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import com.jcraft.jsch.UIKeyboardInteractive;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -31,13 +34,10 @@
  *
  * @author <a href="mailto:juam at users.sourceforge.net">Juan F. Codagnone</a>
  * @since Sep 22, 2005
- *
- * @plexus.component role="com.jcraft.jsch.UIKeyboardInteractive"
  */
+@Named
 public class PrompterUIKeyboardInteractive implements UIKeyboardInteractive {
-    /**
-     * @plexus.requirement role-hint="default"
-     */
+    @Inject
     private volatile Prompter prompter;
 
     public PrompterUIKeyboardInteractive() {}
diff --git a/wagon-providers/wagon-webdav-jackrabbit/pom.xml 
b/wagon-providers/wagon-webdav-jackrabbit/pom.xml
index 1cafcf92..5607ca25 100644
--- a/wagon-providers/wagon-webdav-jackrabbit/pom.xml
+++ b/wagon-providers/wagon-webdav-jackrabbit/pom.xml
@@ -42,6 +42,10 @@ under the License.
   </contributors>
 
   <dependencies>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
     <dependency>
       <!-- Workaround for QDOX-148, see also MNG-3686 -->
       <groupId>${project.groupId}</groupId>
@@ -119,8 +123,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
index 97a57912..4be3caa6 100644
--- 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
+++ 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.wagon.providers.webdav;
 
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URLDecoder;
@@ -59,10 +61,8 @@
  * @author <a href="mailto:[email protected]";>Joakim Erdfelt</a>
  * @author <a href="mailto:[email protected]";>Carlos Sanchez</a>
  * @author <a href="mailto:[email protected]";>James William Dumay</a>
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="dav"
- * instantiation-strategy="per-lookup"
  */
+@Named("dav")
 public class WebDavWagon extends AbstractHttpClientWagon {
     protected static final String CONTINUE_ON_FAILURE_PROPERTY = 
"wagon.webdav.continueOnFailure";
 


Reply via email to