slachiewicz opened a new pull request, #926:
URL: https://github.com/apache/maven-wagon/pull/926

   Backport of #912, which I closed out saying "not for `wagon-3.x`", and #913 
repeated that it "belongs to 4.0.0". This PR asks to change that call. The 
reason it was held back has not gone away — it is set out precisely below — but 
the cost of keeping 3.x structurally different from master has become the 
larger of the two.
   
   ### Why revisit it
   
   `plexus-component-metadata` and the javadoc-tag dialect it reads are now 
used nowhere else in the estate; this branch is the last consumer, and the 
generator is a build-time dependency on a toolchain nobody maintains. Meanwhile 
every fix that lands on master and needs to come back here now conflicts in the 
component declarations — this backport itself is the cheap case, at three 
conflicts, because it *is* the divergence. Later ones pay for it repeatedly.
   
   ### The break, precisely
   
   Seven provider jars stop shipping a generated `components.xml` and ship 
`META-INF/sisu/javax.inject.Named` instead. Between them that is the `file`, 
`ftp`/`ftps`/`ftph`, lightweight `http`/`https`, `scm`, `scp`/`sftp` and 
`scpexe` wagons, plus the known-hosts providers, the interactive user info and 
the two command executors. `wagon-http` (`http`, `https`) and 
`wagon-webdav-jackrabbit` (`dav`, `davs`, `dav+http`, `dav+https`) map one 
implementation onto several hints, so they keep their handwritten descriptors 
and are unaffected.
   
   `new DefaultPlexusContainer()` leaves `classPathScanning` at `off`. An 
embedder doing that reads descriptors only, and silently stops finding 
everything in the first list. Maven is not affected: `PlexusWagonProvider` does 
`lookup(Wagon.class, hint)` and Maven configures its container with index 
scanning.
   
   Two ways to price that in. Release the result as **3.6.0** rather than 3.5.4 
with a release note — nothing has shipped off this line since 3.5.3, so the 
bump costs nothing and puts the change behind a minor. Or, if a maintenance 
line should not break embedders at all, hand-write descriptors for all nine 
providers: the annotations still replace the javadoc tags and the published 
metadata stays as it is today. I would take the first; the second is there if 
the vote goes the other way.
   
   ### The port itself
   
   Cherry-pick of 4af0905a. Twenty-six of the twenty-eight Java files came 
across identical to master; the two that differ (`WagonTestCase`, 
`HttpWagonTests`) differ only where 3.x already differed, and their container 
setup matches master exactly. The one structural difference: this line declared 
`plexus-component-metadata` in each provider POM rather than in the root, so it 
is removed from all ten of them and `sisu-maven-plugin` takes its place in the 
root build.
   
   The reasoning behind the non-mechanical parts — `@Singleton` on the two 
components Plexus scoped as singletons, `@Typed` on the five that Sisu would 
otherwise publish under extra roles, and the dropped `@plexus.configuration` 
defaults — is unchanged from #912 and repeated in the commit message.
   
   Verified: the (role, hint, implementation, instantiation-strategy) tuples 
generated by this branch before the change → identical to the new sisu index, 
module by module.
   
   Full reactor green, all 17 modules. Note that `verify` does not cover the 
ssh providers — the `no-ssh-tests` profile skips them — so the container-lookup 
evidence for the jsch and external wagons is the embedded-sshd tests under 
`-Dssh-tests`, which pass.
   
   *This change was created with AI assistance.*
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to