ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Murdoch" <adammurdoch...@yahoo.com>
Subject RE: IntrospectionHelper questions
Date Tue, 18 Dec 2001 02:49:12 GMT


> From: Stefan Bodewig [mailto:bodewig@apache.org]
>
> > I realise, of course, that this stuff is the core of Ant, and that
> > the whole backwards compatibility story depends heavily on it.
>
> Probably, yes.  You could try to refactor some things to see where
> problems may arise (like I want to give the whole RuntimeConfigurable
> / UnknownElement combo a second and probably third thought after

This is pretty much what I had in mind.  I'd like to split up building the
element/attribute tree, and building the target/task tree into 2 separate
stages.  Right now we do both at the same time (if we can - some of the task
tree construction has to get deferred).  By splitting it up, we can do
things like:

- Simplify building of both trees.
- Reuse the element/attribute tree in <antcall> and <ant>.
- Swap in different element/attribute tree builders.
- Swap in different task tree builders.  E.g. a 'strict' ant 1 project
builder, vs. one that includes experimental ant1.9/ant 2 features.

What I'm unsure of is how much room we have to play in.  Which of these
would be considered part of the public API (as in, can't change any
non-private stuff)?

- IntrospectionHelper
- RuntimeConfigurable
- UnknownElement
- TaskAdapter
- ProjectHelper, ignoring configureProject() and the property methods.
- Target.addDataType(), Target.addTask(), Target.execute(),
Target.performTasks(), Target.replaceChild().
- Task.getReplacement(), Task.getRuntimeConfigurableWrapper(),
Task.markInvalid(), Task.maybeConfigure(), Task.perform(),
Task.setRuntimeConfigurableWrapper(), Task.wrapper

Which of these behaviours would be considered fixed?

- Task and data type instantiation at parse time (as opposed to *validation*
at parse time).

- Visibility of references.  Objects with an 'id' are constructed and added
to the project references table at parse time.  They are configured (ie
attributes set) at runtime, just before they are executed.
Project.getReference() will happily hand out objects that have not been
configured.


> christmas) but you probably wouldn't get far.
>
> Revamping the core, really takes a major version change IMHO.

Oh I know.  That's why I'm pestering you with all these questions :)

Leaving all this until Ant2 is an alternative.  A very tempting alternative
..


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