On Mon, 2004-05-03 at 22:55, [EMAIL PROTECTED] wrote:
> Jason van Zyl <[EMAIL PROTECTED]> wrote on 04/05/2004 12:17:13 PM:
> 
> [snip good stuff]
> 
> > No, if you actually looked at code you'll see it's not. There are tests
> > for the 4 varieties and even the fourth variety only requires a 3k dep
> > which does not really have anything to do with Maven2. They are
> > interfaces which are the minimum needed for a POJO to interact with a
> > client system. The integrated form is essentially:
> > 
> > execute( request, response )
> 
> I must be seeing things then.

More likely you don't fully comprehend what's there or what it does
exactly, but that's why we're having this discussion.

> I had looked at the code already. 
> CleanPlugin extends AbstractPlugin, and doesn't wrap a POJO from what I 
> can tell. It does all the deleting itself.

Read what was written, it is the POJO. The Plugin, AbstractPlugin,
PluginExecutionRequest and PluginExecutionResponse are the 3k of
dependencies mentioned in the previous email. The PluginExecutionRequest
still have a reference to the core but not required except in one place.
This is why the number of plugins has remained constant while these last
bits are worked out.

> So 4 out of 7 look ok. If Maven2 is supposed to fix the issues that 
> cropped up in Maven1, we really need to do it right from the outset.

I'm not sure what issues you're referring to.

> Maybe they could be run without plexus or maven, but they're not really 
> reusable without the plugin setup code in a couple of cases. We should 
> draw the line.

They are all usable without Maven at all. You can create a Map of
parameters for any of them and use them stand-alone. All the plugin
configuration mechanism does is extract the values from the POM and make
the Map from those values. Whether the Map is generated from within
maven or from some other mechanism it doesn't matter.

Also note some of the plugins do use Plexus components, like the
compiler plugin, and it is still usable as a POJO. We are using that
strategy for Wagon and SCM to make a POJO facade essentially over a set
of components. So what the user ends up using is something like:

WagonManager wagonManager = new WagonManager();

And all the plexus goop is hidden. This doesn't really matter inside
maven2 as it is a plexus application but reuse namely in the form of
real embeddability is something I've considered for a long time.

The Mevenide folks are helping with embeddabiltity of maven2 itself by
integrating it into their tools and Trygve is doing the same with maven2
in Continuum. Wagon and Maven SCM are also serving as use cases for
Plexus components that can be used as POJOs and Ant tasks as well. So
there is excellent coverage for the testing of embeddability. But it's
an iterative process and not something you're going to "up front" but
the system has to be past a threshold in order to be able to make
iterative changes that are effective and using something like plexus
makes this possible.

> > What you are thinking of as most sensible is in fact exactly what I'm
> > doing.
> 
> In part, yes. I still think the line's been crossed in a few cases.

There's nothing that can ever be done about that. No design is ever
going to be adequate to begin with. But there are already 4 or 5 people
who understand what's there which is already better than what we have
with maven1 and those numbers will only improve in favour of the newer
code.

-- 
jvz.

Jason van Zyl
[EMAIL PROTECTED]
http://maven.apache.org

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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to