AFAIK m-gpg-p requires native gpg executable to work and is quite slow.
I think it would be better to have a java based default (e.g. bouncy-castle based).
Beside this as I recently came across this, will Signature SPI be accessible by other mojos so the can sign other artifacts as well without need of resolver? And will it be possible to konfirue this still in pom.xml?
I think your message indicates this but I'm not sure if I understand all this "knobs" things...
Am 07.12.22 um 12:59 schrieb Tamás Cservenák:
Howdy, To remove current impediments for the most anticipated Maven 4 feature, the "consumer POM", there was some discussion between Guillaume and me, and I'd like to share what we came up with. Current problem with (already working) feature is that it relies on FileTransformer API in resolver, but that API has several issues: - is OOM prone, hence is deprecated without replacement since Resolver 1.8.0, see https://issues.apache.org/jira/browse/MRESOLVER-244 - another issue is artifact signing, as that API above renders maven-pgp-plugin unusable (as what should be signed does not exists yet) Hence, to overcome these limitations, we agreed to: 1) Provide a replacement for FileTransformer API that does the same but is not OOM prone. This solves the OOM/deprecation side of things, but signing is not solved with it. As we know the signing issue is that transformation (with old but also with new API) happens "just in time" (just before install or deploy) in Resolver, outside of Maven realm, so is even further out of reach for any plugin. There were solutions like Slawek's sign plugin (https://github.com/s4u/sign-maven-plugin) that works with FileTransformer API, but from technical aspect (redoes what resolver already does) is fragile and mixes concerns IMHO. 2) As signing is somewhat very similar to checksumming (calculated and deployed by resolver on its own), we decided to take a stab on extending resolver with "Signature API" that is extensible with similar design as Checksum SPI (since 1.8.0 checksums have extensible SPI, one can easily introduce algorithm like xxhash to resolver). The OOTB signing "provider" will be based on existing maven-gpg-plugin code, essentially providing 100% the same feature that today's Maven 3.x + maven-gpg-plugin provides. Right now, the immediate goal is to achieve Maven 3 + m-gpg-p functionality (sign goal). Regarding "Signature SPI" (and provided GPG implementation) and it's use cases: - as signing would be from now provided by resolver, one could use "knobs" ( https://maven.apache.org/resolver/configuration.html) directly (ie `-Daether...`) to enable and configure it. Its effect would be that WHATEVER is uploaded thru Resolver Connector during the session, will be signed as well. - as next, the idea came up: we could modify m-gpg-p to provide "configuration" (knobs) via session into resolver, so "Signature API" would become active based on presence of these in session, hence, we would end up with literally same functionality and behaviour as today maven3 + m-gpg-p has (except that signing happens elsewhere), signing could be controlled by plugin per module basis. Related PRs for review (does not implement all this above, going "baby steps"): https://github.com/apache/maven-resolver/pull/227 https://github.com/apache/maven-resolver/pull/226 Example WIP PR to change Maven 4 to use new ArtifactTransform API: https://github.com/apache/maven/pull/904 (Remains in Robert's spirit while it does SAVE transformed POM, but into randomized temp file, and immediately is deleted once install/deploy is done). Any review, opinion and comment is welcome! Thanks T
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org