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 24de3d63ecdcbcd39fcd3badb8b4b26968ace044
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                                               | 17 ++++++++++++++---
 wagon-provider-test/pom.xml                           |  9 +++++++--
 .../java/org/apache/maven/wagon/WagonTestCase.java    | 18 +++++++++++-------
 wagon-providers/pom.xml                               | 19 -------------------
 wagon-providers/wagon-file/pom.xml                    | 13 +++++++++++--
 .../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                    | 14 ++++++++++----
 wagon-providers/wagon-scm/pom.xml                     | 14 ++++++++++++--
 .../apache/maven/wagon/providers/scm/ScmWagon.java    | 14 +++++---------
 .../providers/scm/UserSafeGitExeScmProvider.java      |  5 ++++-
 wagon-providers/wagon-ssh-common-test/pom.xml         |  9 +++++++--
 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                     | 17 +++++++++++++----
 .../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 +++---
 wagon-tcks/wagon-tck-http/pom.xml                     |  9 +++++++--
 .../apache/maven/wagon/tck/http/HttpWagonTests.java   | 17 +++++++++++++----
 .../wagon/tck/http/WagonTestCaseConfigurator.java     | 12 ++++++------
 40 files changed, 214 insertions(+), 191 deletions(-)

diff --git a/pom.xml b/pom.xml
index f174f91b..d5ae6ee1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -199,9 +199,15 @@ under the License.
         <version>1.5.1</version>
       </dependency>
       <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-container-default</artifactId>
-        <version>2.1.1</version>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>org.eclipse.sisu.plexus</artifactId>
+        <version>0.9.0.M4</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <version>5.1.0</version>
+        <classifier>classes</classifier>
       </dependency>
       <!-- for slf4j -->
       <dependency>
@@ -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-provider-test/pom.xml b/wagon-provider-test/pom.xml
index 375a49af..be633f4f 100644
--- a/wagon-provider-test/pom.xml
+++ b/wagon-provider-test/pom.xml
@@ -36,10 +36,15 @@ under the License.
       <artifactId>wagon-provider-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>compile</scope>
     </dependency>
+    <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
diff --git 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
index 9b3e513e..0840f1cb 100644
--- 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
+++ 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
@@ -37,7 +37,10 @@
 import org.apache.maven.wagon.repository.Repository;
 import org.apache.maven.wagon.repository.RepositoryPermissions;
 import org.apache.maven.wagon.resource.Resource;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.util.FileUtils;
 import org.junit.Assume;
 import org.mockito.invocation.InvocationOnMock;
@@ -168,8 +171,13 @@ protected void setupRepositories() throws Exception {
         }
     }
 
-    protected void customizeContext() throws Exception {
-        getContainer().addContextValue("test.repository", localRepositoryPath);
+    @Override
+    protected void customizeContext(Context context) {
+        context.put("test.repository", localRepositoryPath);
+    }
+
+    protected void customizeContainerConfiguration(ContainerConfiguration 
configuration) {
+        
configuration.setClassPathScanning(PlexusConstants.SCANNING_INDEX).setAutoWiring(true);
     }
 
     protected void setupWagonTestingFixtures() throws Exception {}
@@ -189,14 +197,10 @@ protected RepositoryPermissions getPermissions() {
     }
 
     protected Wagon getWagon() throws Exception {
-        Wagon wagon = (Wagon) lookup(Wagon.ROLE, getProtocol());
-
+        Wagon wagon = lookup(Wagon.class, getProtocol());
         Debug debug = new Debug();
-
         wagon.addSessionListener(debug);
-
         wagon.addTransferListener(debug);
-
         return wagon;
     }
 
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..2bb264f9 100644
--- a/wagon-providers/wagon-file/pom.xml
+++ b/wagon-providers/wagon-file/pom.xml
@@ -31,10 +31,19 @@ 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>
     </dependency>
+    <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
@@ -45,8 +54,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..141de2ad 100644
--- a/wagon-providers/wagon-http/pom.xml
+++ b/wagon-providers/wagon-http/pom.xml
@@ -85,8 +85,14 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>test</scope>
     </dependency>
 
@@ -103,8 +109,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..70291b22 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>
@@ -45,6 +49,12 @@ under the License.
       <artifactId>maven-scm-manager-plexus</artifactId>
       <version>${mavenScmVersion}</version>
       <scope>runtime</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -84,8 +94,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-test/pom.xml 
b/wagon-providers/wagon-ssh-common-test/pom.xml
index 19558ec8..3ddb8e74 100644
--- a/wagon-providers/wagon-ssh-common-test/pom.xml
+++ b/wagon-providers/wagon-ssh-common-test/pom.xml
@@ -34,10 +34,15 @@ under the License.
   </properties>
   <dependencies>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>compile</scope>
     </dependency>
+    <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
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..47568b68 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>
@@ -82,8 +86,13 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -96,8 +105,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";
 
diff --git a/wagon-tcks/wagon-tck-http/pom.xml 
b/wagon-tcks/wagon-tck-http/pom.xml
index 3cfa8138..0f3d2e06 100644
--- a/wagon-tcks/wagon-tck-http/pom.xml
+++ b/wagon-tcks/wagon-tck-http/pom.xml
@@ -33,10 +33,15 @@ under the License.
 
   <dependencies>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>compile</scope>
     </dependency>
+    <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-classworlds</artifactId>
diff --git 
a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/HttpWagonTests.java
 
b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/HttpWagonTests.java
index 8fcbd25c..9ad1b06f 100644
--- 
a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/HttpWagonTests.java
+++ 
b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/HttpWagonTests.java
@@ -30,8 +30,11 @@
 import org.apache.maven.wagon.proxy.ProxyInfo;
 import org.apache.maven.wagon.repository.Repository;
 import org.apache.maven.wagon.tck.http.fixture.ServerFixture;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultContainerConfiguration;
 import org.codehaus.plexus.DefaultPlexusContainer;
 import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.classworlds.ClassWorld;
 import 
org.codehaus.plexus.component.configurator.ComponentConfigurationException;
 import 
org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import org.codehaus.plexus.util.FileUtils;
@@ -85,11 +88,17 @@ public static void beforeAll() throws Exception {
         System.setProperty("javax.net.ssl.trustStore", 
keystore.getAbsolutePath());
         System.setProperty("javax.net.ssl.trustStorePassword", 
ServerFixture.SERVER_SSL_KEYSTORE_PASSWORD);
 
-        container = new DefaultPlexusContainer();
-        // container.initialize();
-        // container.start();
+        ClassWorld classWorld =
+                new ClassWorld("plexus.core", 
Thread.currentThread().getContextClassLoader());
+        ContainerConfiguration configuration = new 
DefaultContainerConfiguration()
+                .setClassWorld(classWorld)
+                .setName("test")
+                .setAutoWiring(true)
+                
.setClassPathScanning(org.codehaus.plexus.PlexusConstants.SCANNING_INDEX);
 
-        configurator = (WagonTestCaseConfigurator) 
container.lookup(WagonTestCaseConfigurator.class.getName());
+        container = new DefaultPlexusContainer(configuration);
+
+        configurator = container.lookup(WagonTestCaseConfigurator.class);
     }
 
     @After
diff --git 
a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/WagonTestCaseConfigurator.java
 
b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/WagonTestCaseConfigurator.java
index 190c9ba7..5a73a71a 100644
--- 
a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/WagonTestCaseConfigurator.java
+++ 
b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/WagonTestCaseConfigurator.java
@@ -46,14 +46,14 @@ public class WagonTestCaseConfigurator implements 
Contextualizable {
 
     private String wagonHint;
 
-    private static Logger logger = 
LoggerFactory.getLogger(WagonTestCaseConfigurator.class);
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(WagonTestCaseConfigurator.class);
 
     public boolean isSupported(final String useCaseId) {
         if (useCaseConfigs != null) {
             PlexusConfiguration config = useCaseConfigs.getChild(useCaseId, 
false);
 
             if (config != null && config.getChild(UNSUPPORTED_ELEMENT, false) 
!= null) {
-                logger.info("Test case '" + useCaseId + "' is marked as 
unsupported by this wagon.");
+                LOGGER.info("Test case '" + useCaseId + "' is marked as 
unsupported by this wagon.");
                 return false;
             }
         }
@@ -68,17 +68,17 @@ public boolean configureWagonForTest(final Wagon wagon, 
final String useCaseId)
 
             if (config != null) {
                 if (config.getChild(UNSUPPORTED_ELEMENT, false) != null) {
-                    logger.error("Test case '" + useCaseId + "' is marked as 
unsupported by this wagon.");
+                    LOGGER.error("Test case '" + useCaseId + "' is marked as 
unsupported by this wagon.");
                     return false;
                 } else {
-                    logger.info("Configuring wagon for test case: " + 
useCaseId + " with:\n\n" + config);
+                    LOGGER.info("Configuring wagon for test case: " + 
useCaseId + " with:\n\n" + config);
                     configurator.configureComponent(wagon, 
useCaseConfigs.getChild(useCaseId, false), realm);
                 }
             } else {
-                logger.info("No wagon configuration found for test case: " + 
useCaseId);
+                LOGGER.info("No wagon configuration found for test case: " + 
useCaseId);
             }
         } else {
-            logger.info("No test case configurations found.");
+            LOGGER.info("No test case configurations found.");
         }
 
         return true;

Reply via email to