maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lennart Jörelid <lennart.jore...@gmail.com>
Subject Re: Plugable/Softcoded/Customized Maven Plugins
Date Thu, 15 Jan 2015 20:29:32 GMT
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 <jason@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.rosenvold@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 <jason@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 <tibordigana@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-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: dev-help@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-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: dev-help@maven.apache.org
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@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-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


-- 

--
+==============================+
| Bästa hälsningar,
| [sw. "Best regards"]
|
| Lennart Jörelid
| EAI Architect & Integrator
|
| jGuru Europe AB
| Mölnlycke - Kista
|
| Email: lj@jguru.se
| URL:   www.jguru.se
| Phone
| (skype):    jgurueurope
| (intl):     +46 708 507 603
| (domestic): 0708 - 507 603
+==============================+

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message