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><p>WebDavWagon</p>
-<p/>
-<p>Allows using a WebDAV remote repository for downloads and deployments</p></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><p>WebDavWagon</p>
-<p/>
-<p>Allows using a WebDAV remote repository for downloads and deployments</p></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><p>WebDavWagon</p>
-<p/>
-<p>Allows using a WebDAV remote repository for downloads and deployments</p></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><p>WebDavWagon</p>
-<p/>
-<p>Allows using a webdav remote repository for downloads and deployments</p></description>
- <isolated-realm>false</isolated-realm>
- </component>
- </components>
-</component-set>