ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Murdoch <adammurd...@apache.org>
Subject Re: [myrmidon] moving to new module
Date Tue, 09 Apr 2002 00:57:10 GMT
On Tue, 9 Apr 2002 09:09, Peter Donald wrote:
> On Mon, 8 Apr 2002 23:10, Adam Murdoch wrote:
> > On Mon, 8 Apr 2002 22:24, Peter Donald wrote:
> > > > Particularly when there's a bunch of implementations that are all
> > > > kinda the same.  What we need is somewhere to add abstract and
> > > > reusable implementations,
> > >
> > > Chuck the abstract implementations in the component hierarchy. So say
> > > we have something like
> > >
> > > cmyrmidon.components.foo.AbstractFoo
> > > cmyrmidon.components.foo.DefaultFoo
> > > cmyrmidon.components.foo.SpecialFoo
> > >
> > > Does that work for you?
> >
> > Not quite - we sometimes need to use the abstract impl in more than one
> > component package.
>
> Can you give me an example - I am coming up empty when I try to think of
> one.
>

One example would be specialised implementations of things that aren't 
components (or are tiny components), things like PropertyStore, 
PropertyResolver, TaskContext, ExecutionFrame and so on.  For these things we 
probably want a bunch of abstract and/or reusable impls which can be used in 
more than one component package.

Another example would be things which we might have a couple of standard impls 
for a component, but which we want to keep in separate packages.  
ProjectBuilder is a good example - we have a couple of ProjectBuilder impls, 
which all extend DefaultProjectBuilder.  They're all in components.builder 
right now, but shouldn't be (ConvertingProjectBuilder and 
TransformingProjectBuilder might be better off with the ant1compat stuff, for 
example).

This is eventually going to be true of other components too - we're going to 
have a bunch of Configurers, Executors, ExtensionManagers etc, which will 
need to be scattered over the hierarchy (e.g. experimental, or homespun 
impls).

The solution for the time being might just be to move shareable stuff to the 
interfaces hierarchy.

> > And if the util class is being used by more than one component, but
> > doesn't involve any interaction between them?  Say, for example, a util
> > method that adds the contents of a Map to a PropertyStore?
>
> duplicate it if it is small (this keeps the system clean, decoupled and
> "agile") or push it into a myrmidon.utils.* if not. Though to be honest I
> can't think of anything that could justify a "tils" package just yet? Have
> you got something in mind.

Nah, not yet.  Just wondering.

-- 
Adam

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message