wagon-http and wagon-webdav-jackrabbit are the two providers that 20d688a left on handwritten Plexus descriptors, because each maps one implementation class onto several role hints and a single @Named cannot express that: HttpWagon is published as http and https, and WebDavWagon as dav, davs, dav+http, and dav+https.
Nothing is broken today. Maven ships org.eclipse.sisu.plexus, which reads META-INF/plexus/components.xml whether or not scanning finds anything. But every other provider now resolves from the Sisu index, so these two are the only ones that still need the shim — and they are the ones Maven itself bundles (http) and that maven-build-cache-extension ships for dav: URLs. A consumer that scans for @Named beans without the shim finds no HTTP or WebDAV wagon at all.
The project already has an idiom for one implementation under several hints: a subclass per hint. wagon-ftp publishes FtpWagon, FtpsWagon, and FtpHttpWagon; wagon-http-lightweight publishes LightweightHttpWagon and LightweightHttpsWagon. HttpWagon is itself an empty subclass that exists only to carry a component name.
#987 applies that idiom. The trade-off is five new public classes, empty but API once released. The alternative is to keep both descriptors and accept the split.
master carries the same two descriptors and the same deferral.
This issue was created with AI assistance.
wagon-httpandwagon-webdav-jackrabbitare the two providers that 20d688a left on handwritten Plexus descriptors, because each maps one implementation class onto several role hints and a single@Namedcannot express that:HttpWagonis published ashttpandhttps, andWebDavWagonasdav,davs,dav+http, anddav+https.Nothing is broken today. Maven ships
org.eclipse.sisu.plexus, which readsMETA-INF/plexus/components.xmlwhether or not scanning finds anything. But every other provider now resolves from the Sisu index, so these two are the only ones that still need the shim — and they are the ones Maven itself bundles (http) and thatmaven-build-cache-extensionships fordav:URLs. A consumer that scans for@Namedbeans without the shim finds no HTTP or WebDAV wagon at all.The project already has an idiom for one implementation under several hints: a subclass per hint.
wagon-ftppublishesFtpWagon,FtpsWagon, andFtpHttpWagon;wagon-http-lightweightpublishesLightweightHttpWagonandLightweightHttpsWagon.HttpWagonis itself an empty subclass that exists only to carry a component name.#987 applies that idiom. The trade-off is five new public classes, empty but API once released. The alternative is to keep both descriptors and accept the split.
mastercarries the same two descriptors and the same deferral.This issue was created with AI assistance.