Le lun. 6 mai 2024 à 16:00, Tamás Cservenák <ta...@cservenak.net> a écrit :

> Romain,
>
> for start, you are referring to a solution to "mangle the model after it
> was read up". This is what nexus-staging-m-p does and I consider it wrong
> and possibly illegal (despite the fact that I wrote that plugin).
>

I disagree, this was our choice and this is a great and powerful option.
Moreover I think it is way more wrong to redo a solution which is already
done cause of the mess in the code but also the comm it creates.


> This is not a future proof way to do it. To be precise, nx-staging-m-p
> injects m-deploy-p config (to become skipped), and also injects itself
> (deploy) goal to become "Caliph instead of Caliph" (to deploy instead of
> m-deploy-p) (ref  https://en.wikipedia.org/wiki/Iznogoud)
>

Right....which is great.
We do the same in junit-platform plugin for goods.


>
> Other than that, I see no way how you could "alter" m-deploy-p behaviour
> using this technique, as:
> - here you can rewrite the POM
> - rewrite plugin config
> - but you cannot add/replace components from the plugin itself
> - you CAN do what nx-staging does (remote/disable it, and inject yourself,
> but again, I find this bad practice)
>
> Last bullet is a hack, I hope we both agree on this.
>

Right but you spoke about creating spi so explicitly enabling the N-1 point
(injecting a component in configuration)....so we are covered for all cases
already.
If you want an auto-discovered case you don't cover the case you describe,
ie enable/disable deployAtEnd so I still don't see any issue for now.


>
> T
>
> T
>
> On Mon, May 6, 2024 at 3:52 PM Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
>
> >
> >
> https://github.com/apache/maven/blob/master/maven-core/src/main/java/org/apache/maven/AbstractMavenLifecycleParticipant.java#L44
> > afterProjectsRead sorry
> >
> > So long story short you have a clean way to handle SPI from plugins with
> > explicit configuration from the pom or transversally from an extension.
> > I don't see a case in between since user is not able to consume it.
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >
> >
> >
> > Le lun. 6 mai 2024 à 15:48, Tamás Cservenák <ta...@cservenak.net> a
> écrit
> > :
> >
> > > Romain,
> > >
> > > could you elaborate what you mean by this:
> > > "At startup it does not need to be there, so there is no issue there
> > while
> > > you resolve the plugin dependency you inject from the extension in
> > > afterModelRead normally."
> > >
> > > What is "afterModelRead"?
> > >
> > > T
> > >
> > >
> > > On Mon, May 6, 2024 at 3:40 PM Romain Manni-Bucau <
> rmannibu...@gmail.com
> > >
> > > wrote:
> > >
> > > > Tamas, the extension can inject the configuration which is
> instantiated
> > > > when the mojo will be executed.
> > > > At startup it does not need to be there, so there is no issue there
> > while
> > > > you resolve the plugin dependency you inject from the extension in
> > > > afterModelRead normally.
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > <http://rmannibucau.wordpress.com> | Github <
> > > > https://github.com/rmannibucau> |
> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > <
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >
> > > >
> > > >
> > > > Le lun. 6 mai 2024 à 15:36, Tamás Cservenák <ta...@cservenak.net> a
> > > écrit
> > > > :
> > > >
> > > > > Laeubi,
> > > > >
> > > > > How does tycho use plugin-spi? Can you show me some Tycho
> plugin-spi
> > > > > examples?
> > > > >
> > > > > As in case of Maven (proper, so "vanilla"), core extension is
> loaded
> > > > first
> > > > > (early), that would like to define SPI implementations, but the
> > plugin
> > > > that
> > > > > would carry SPI interfaces, if SPI would be within plugin as
> > proposed,
> > > is
> > > > > "yet to be seen", will be loaded by mvn core on first encounter in
> > > > > lifecycle. Or, if both load SPI interfaces, they will end up in two
> > > > > classloaders, again defunct.
> > > > >
> > > > > And yes, this solution would enable -- depending on SPI -- to
> extend
> > > > > existing SPI enabled-plugin in various ways, without touching the
> > > > > build/POMs itself.
> > > > >
> > > > >
> > > > > T
> > > > >
> > > > >
> > > > > On Mon, May 6, 2024 at 2:46 PM Christoph Läubrich <
> > m...@laeubi-soft.de
> > > >
> > > > > wrote:
> > > > >
> > > > > > Hi Tamas,
> > > > > >
> > > > > > I'm specifically asking because Tycho has already a plugin-spi
> > > support
> > > > > > we use to a great extent, so if there would be a general usable
> > > > solution
> > > > > > that would be great I even asked many times for it but always got
> > > "use
> > > > > > an extension" so I wonder what changed the mind of maven-devs or
> if
> > > it
> > > > > > will be just another thing exclusive to "maven-core-plugins" or
> can
> > > > > > other reuse that (how?). And if others can reuse it, why have a
> > > > > > dedicated repository and not use the repository of the plugin
> that
> > > > > > offers the spi?
> > > > > >
> > > > > > Am 06.05.24 um 14:08 schrieb Tamás Cservenák:
> > > > > > > Howdy,
> > > > > > >
> > > > > > > I'd like to create a new ASF Maven git repo "maven-plugin-spi".
> > > > > > >
> > > > > > > This repository would hold SPIs as explained here
> > > > > > >
> > https://cwiki.apache.org/confluence/display/MAVEN/Maven+Plugin+SPI
> > > > > > >
> > > > > > > Designated G: "org.apache.maven.maven-plugin-spi"
> > > > > > >
> > > > > > > For now, we have two candidates to apply SPI pattern:
> > > > > > > * maven-deploy-plugin (yet to be added)
> > > > > > > * maven-gpg-plugin (already have it, but in unusable form, as
> it
> > > does
> > > > > not
> > > > > > > follow pattern from wiki)
> > > > > > >
> > > > > > > Example GAs:
> > > > > > > org.apache.maven.maven-plugin-spi:maven-deploy-spi
> > > > > > > org.apache.maven.maven-plugin-spi:maven-gpg-spi
> > > > > > >
> > > > > > > Thanks
> > > > > > > T
> > > > > > >
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > > > > For additional commands, e-mail: dev-h...@maven.apache.org
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to