Lennart; Is there a good solution for having the user-provided implementation *replace* the built-in one ?
Kristian 2015-01-15 21:29 GMT+01:00 Lennart Jörelid <lennart.jore...@gmail.com>: > I believe that it is important to let the POM serve as a configuration (for > a set of Plugin-clad operations). > If we permit the POM to be the host of scripts, I suggest that overall > build stability would be compromised. > > If one wants to implement a chain-of-command or extension pattern within a > Plugin, it is simple enough. > > > - Define an interface (say Transformer) holding methods defining a > behaviour > - Define an array or list of these Transformers within your plugin, as > shown below. > - In your execute() method, simply call them in order. > - You have now defined a behaviour; Maven's standard mechanics permit > you to inject several different implementations > > > > @Parameter > private Transformer[] transformer; > > with the configuration > > <configuration> > <coffeCooker implementation="your.coffee.ExtensionCooker"/> > <breadBaker implementation="your.bread.Processor"/> > .... > </configuration> > > This may not be a very obvious way to implement an extension, but it > certainly works. The enforcer plugin, which was mentioned above uses this > type of mechanics to permit injecting custom rules (of type EnforcerRule). > > Would this type of extension cover the needs? Or am I missing your point, > Tibor? > > > 2015-01-15 21:09 GMT+01:00 Jason van Zyl <ja...@takari.io>: > >> Ok, stay within what's here. >> >> I posit that the default lifecycle and binding to it with mojos provides >> sufficient means of extension. So we have a lifecycle and at the other >> extreme in Ant and Gradle we have an arbitrary DAG. Along that spectrum I'm >> not sure I understand what you think the problem is. >> >> I also posit that you can make Java-based extension mechanisms today. >> Maybe not scriptable ones but you can provide extension points. >> >> I gather that the "whole issue" you're talking about is it extensibility? >> If so I was only trying to draw attention to facilities that are present >> you may not be familiar with. >> >> On Jan 15, 2015, at 2:54 PM, Kristian Rosenvold < >> kristian.rosenv...@gmail.com> wrote: >> >> > Jason; >> > >> > We have been talking at length about what we think is wrong with the >> > plugin model in this thread. I'm happy to hear that you have solved >> > things within the existing model in Takari. From what I've picked up >> > It sounds like you have made an even greater monotlith than what we >> > already have, so it appears you may not consider this whole issue a >> > problem. >> > >> > The solutions you describe are things we know about. I still consider >> > this to be an important problem; maybe the most important problem we >> > are facing. >> > >> > Kristian >> > >> > 2015-01-15 20:36 GMT+01:00 Jason van Zyl <ja...@takari.io>: >> >> What do you think is unclear about the default lifecycle that you >> augment by adding new executions to a particular phase in the lifecycle? >> You can also make your own lifecycle if you wish but for the most part the >> default lifecycle is sufficient. Or even cahnge all the bindings for the >> default lifecycle. For the Takari Lifecycle which has completely different >> implementations we didn't need any changes to the default lifecycle we just >> bound new implementations. >> >> >> >> There is also nothing stopping you from adding extensions points to >> plugins. You can do that today, the enforcer plugin being a case in point. >> This mechanism already exists where you can create an extension point as a >> collection that gets injected into a plugin, and new implementations of the >> extension will be loaded dynamically when added as dependencies to that >> plugin in the POM. We can add this to any plugin today. If you wanted to >> provide an extension point to the maven-jar-plugin to filter the manifest >> before writing it into the JAR you can do that now. >> >> >> >> On Jan 15, 2015, at 5:57 AM, Tibor Digana <tibordig...@apache.org> >> wrote: >> >> >> >>> Maybe Jason can bring some light into this discussion. >> >>> Jason? >> >>> >> >>> >> >>> >> >>> -- >> >>> View this message in context: >> http://maven.40175.n5.nabble.com/Plugable-Softcoded-Customized-Maven-Plugins-tp5823365p5823611.html >> >>> Sent from the Maven Developers mailing list archive at Nabble.com. >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>> >> >> >> >> Thanks, >> >> >> >> Jason >> >> >> >> ---------------------------------------------------------- >> >> Jason van Zyl >> >> Founder, Apache Maven >> >> http://twitter.com/jvanzyl >> >> http://twitter.com/takari_io >> >> --------------------------------------------------------- >> >> >> >> happiness is like a butterfly: the more you chase it, the more it will >> >> elude you, but if you turn your attention to other things, it will come >> >> and sit softly on your shoulder ... >> >> >> >> -- Thoreau >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >> For additional commands, e-mail: dev-h...@maven.apache.org >> >> >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> > For additional commands, e-mail: dev-h...@maven.apache.org >> > >> >> Thanks, >> >> Jason >> >> ---------------------------------------------------------- >> Jason van Zyl >> Founder, Apache Maven >> http://twitter.com/jvanzyl >> http://twitter.com/takari_io >> --------------------------------------------------------- >> >> First, the taking in of scattered particulars under one Idea, >> so that everyone understands what is being talked about ... Second, >> the separation of the Idea into parts, by dividing it at the joints, >> as nature directs, not breaking any limb in half as a bad carver might. >> >> -- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander) >> >> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> For additional commands, e-mail: dev-h...@maven.apache.org >> >> > > > -- > > -- > +==============================+ > | Bästa hälsningar, > | [sw. "Best regards"] > | > | Lennart Jörelid > | EAI Architect & Integrator > | > | jGuru Europe AB > | Mölnlycke - Kista > | > | Email: l...@jguru.se > | URL: www.jguru.se > | Phone > | (skype): jgurueurope > | (intl): +46 708 507 603 > | (domestic): 0708 - 507 603 > +==============================+ --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org