You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/09/04 10:43:42 UTC

(maven-wagon) 01/01: Publish the HTTP and WebDAV wagons as JSR-330 beans

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

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

commit 2026d8684274956d3714a57e75bfede974d62b90
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Fri Sep 4 12:43:31 2026 +0200

    Publish the HTTP and WebDAV wagons as JSR-330 beans
    
    These two providers kept handwritten Plexus descriptors because each maps one
    implementation onto several role hints, which a single @Named cannot express. Give
    each hint its own empty subclass, the way wagon-ftp and wagon-http-lightweight
    already do, so all ten providers now resolve from the Sisu index alone.
    
    Do not restore the descriptors to add a hint: a component named there is invisible
    to any consumer that scans for @Named beans without the Plexus shim.
---
 .../maven/wagon/providers/http/HttpWagon.java      |  3 ++
 .../http/{HttpWagon.java => HttpsWagon.java}       |  7 +--
 .../main/resources/META-INF/plexus/components.xml  | 35 ------------
 .../wagon/providers/webdav/WebDavHttpWagon.java}   |  9 ++--
 .../wagon/providers/webdav/WebDavHttpsWagon.java}  |  9 ++--
 .../maven/wagon/providers/webdav/WebDavWagon.java  |  3 ++
 .../wagon/providers/webdav/WebDavsWagon.java}      |  9 ++--
 .../main/resources/META-INF/plexus/components.xml  | 63 ----------------------
 8 files changed, 25 insertions(+), 113 deletions(-)

diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
index ae5d720f..4b810ff4 100644
--- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
+++ b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
@@ -18,9 +18,12 @@
  */
 package org.apache.maven.wagon.providers.http;
 
+import javax.inject.Named;
+
 import org.apache.maven.wagon.shared.http.AbstractHttpClientWagon;
 
 /**
  * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
  */
+@Named("http")
 public class HttpWagon extends AbstractHttpClientWagon {}
diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpsWagon.java
similarity index 81%
copy from wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
copy to wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpsWagon.java
index ae5d720f..8cf36d97 100644
--- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
+++ b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpsWagon.java
@@ -18,9 +18,10 @@
  */
 package org.apache.maven.wagon.providers.http;
 
-import org.apache.maven.wagon.shared.http.AbstractHttpClientWagon;
+import javax.inject.Named;
 
 /**
- * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
+ * Publishes {@link HttpWagon} under the <code>https</code> protocol.
  */
-public class HttpWagon extends AbstractHttpClientWagon {}
+@Named("https")
+public class HttpsWagon extends HttpWagon {}
diff --git a/wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml b/wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml
deleted file mode 100644
index 49c61e51..00000000
--- a/wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<component-set>
-    <components>
-      <component>
-        <role>org.apache.maven.wagon.Wagon</role>
-        <role-hint>http</role-hint>
-        <implementation>org.apache.maven.wagon.providers.http.HttpWagon</implementation>
-        <instantiation-strategy>per-lookup</instantiation-strategy>
-      </component>
-      <component>
-        <role>org.apache.maven.wagon.Wagon</role>
-        <role-hint>https</role-hint>
-        <implementation>org.apache.maven.wagon.providers.http.HttpWagon</implementation>
-        <instantiation-strategy>per-lookup</instantiation-strategy>
-      </component>
-    </components>
-</component-set>
diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpWagon.java
similarity index 77%
copy from wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
copy to wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpWagon.java
index ae5d720f..3d97e893 100644
--- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
+++ b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpWagon.java
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.wagon.providers.http;
+package org.apache.maven.wagon.providers.webdav;
 
-import org.apache.maven.wagon.shared.http.AbstractHttpClientWagon;
+import javax.inject.Named;
 
 /**
- * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
+ * Publishes {@link WebDavWagon} under the <code>dav+http</code> protocol.
  */
-public class HttpWagon extends AbstractHttpClientWagon {}
+@Named("dav+http")
+public class WebDavHttpWagon extends WebDavWagon {}
diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpsWagon.java
similarity index 77%
copy from wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
copy to wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpsWagon.java
index ae5d720f..650f512d 100644
--- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
+++ b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavHttpsWagon.java
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.wagon.providers.http;
+package org.apache.maven.wagon.providers.webdav;
 
-import org.apache.maven.wagon.shared.http.AbstractHttpClientWagon;
+import javax.inject.Named;
 
 /**
- * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
+ * Publishes {@link WebDavWagon} under the <code>dav+https</code> protocol.
  */
-public class HttpWagon extends AbstractHttpClientWagon {}
+@Named("dav+https")
+public class WebDavHttpsWagon extends WebDavWagon {}
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 7c3eb3da..49ef3625 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;
@@ -54,6 +56,7 @@
  * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
  * @author <a href="mailto:james@atlassian.com">James William Dumay</a>
  */
+@Named("dav")
 public class WebDavWagon extends AbstractHttpClientWagon {
     protected static final String CONTINUE_ON_FAILURE_PROPERTY = "wagon.webdav.continueOnFailure";
 
diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavsWagon.java
similarity index 77%
copy from wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
copy to wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavsWagon.java
index ae5d720f..f3bf12cd 100644
--- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
+++ b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavsWagon.java
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.wagon.providers.http;
+package org.apache.maven.wagon.providers.webdav;
 
-import org.apache.maven.wagon.shared.http.AbstractHttpClientWagon;
+import javax.inject.Named;
 
 /**
- * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
+ * Publishes {@link WebDavWagon} under the <code>davs</code> protocol.
  */
-public class HttpWagon extends AbstractHttpClientWagon {}
+@Named("davs")
+public class WebDavsWagon extends WebDavWagon {}
diff --git a/wagon-providers/wagon-webdav-jackrabbit/src/main/resources/META-INF/plexus/components.xml b/wagon-providers/wagon-webdav-jackrabbit/src/main/resources/META-INF/plexus/components.xml
deleted file mode 100644
index c2a53db4..00000000
--- a/wagon-providers/wagon-webdav-jackrabbit/src/main/resources/META-INF/plexus/components.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<component-set>
-  <components>
-    <component>
-      <role>org.apache.maven.wagon.Wagon</role>
-      <role-hint>dav</role-hint>
-      <implementation>org.apache.maven.wagon.providers.webdav.WebDavWagon</implementation>
-      <instantiation-strategy>per-lookup</instantiation-strategy>
-      <description>&lt;p&gt;WebDavWagon&lt;/p&gt;
-&lt;p/&gt;
-&lt;p&gt;Allows using a WebDAV remote repository for downloads and deployments&lt;/p&gt;</description>
-      <isolated-realm>false</isolated-realm>
-    </component>
-    <component>
-      <role>org.apache.maven.wagon.Wagon</role>
-      <role-hint>davs</role-hint>
-      <implementation>org.apache.maven.wagon.providers.webdav.WebDavWagon</implementation>
-      <instantiation-strategy>per-lookup</instantiation-strategy>
-      <description>&lt;p&gt;WebDavWagon&lt;/p&gt;
-&lt;p/&gt;
-&lt;p&gt;Allows using a WebDAV remote repository for downloads and deployments&lt;/p&gt;</description>
-      <isolated-realm>false</isolated-realm>
-    </component>
-    <component>
-      <role>org.apache.maven.wagon.Wagon</role>
-      <role-hint>dav+http</role-hint>
-      <implementation>org.apache.maven.wagon.providers.webdav.WebDavWagon</implementation>
-      <instantiation-strategy>per-lookup</instantiation-strategy>
-      <description>&lt;p&gt;WebDavWagon&lt;/p&gt;
-&lt;p/&gt;
-&lt;p&gt;Allows using a WebDAV remote repository for downloads and deployments&lt;/p&gt;</description>
-      <isolated-realm>false</isolated-realm>
-    </component>
-    <component>
-      <role>org.apache.maven.wagon.Wagon</role>
-      <role-hint>dav+https</role-hint>
-      <implementation>org.apache.maven.wagon.providers.webdav.WebDavWagon</implementation>
-      <instantiation-strategy>per-lookup</instantiation-strategy>
-      <description>&lt;p&gt;WebDavWagon&lt;/p&gt;
-&lt;p/&gt;
-&lt;p&gt;Allows using a webdav remote repository for downloads and deployments&lt;/p&gt;</description>
-      <isolated-realm>false</isolated-realm>
-    </component>
-  </components>
-</component-set>