ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jose Alberto Fernandez <>
Subject RE: Tool Integration Problems
Date Fri, 08 Dec 2000 20:29:49 GMT
> From: Peter Donald []
> Thats why I like the idea of a DOM-like structure. This 
> DOM-like structure
> can be read (and possibly writeable in special cases). This DOM-like
> structure is then interpreted into a task object that is then 
> executed.

I am really quite anti-DOM for ANT core. DOM is really a dog and a memory 
hug which I do not need from ANT in the command line.
I do not know why should I pay for something I do not need.
For GUIs and editors, I have no problem and as I said over and over
the point here is that is the GUI work to do the maping (DOM->SAX)
for example, like is the CLI tool to the the mapping (XML->SAX)
and is the Core task to map (SAX->Project).

> with sub-elements.
> >I feel if each tool is responsible for parsing a build file 
> then we are in
> >for a world of hurt regarding compatibility.
> exactly ;)
> Which is one of the reasons I made a recent proposal. If you 
> have a look at
> proposal/myrmidon it is specifically designed to be able to 
> be hosted in
> different environments. So it would be very trivial to write 
> a GUI that
> modified ant build-files and rerun them. It uses the DOM-like 
> model and
> interprests them and IMHO is relatively easy to develope 
> extentions to -
> but that is to be expected considering that was one of the 
> main aims of
> proposal. Thou I may be biased ;)

So what happen when tool 75 wants to use some other representation
that is not DOM-like? Do we need to go and change ANT to support this
other thing? How many memory representation do we want to keep in memory?

Today ANT has only one representation in memory (i.e., Project).
The XML and SAX representation as just streamed and are never fully
materialized in memory. Any DOM-like representation away from Project
would mean that now there are two of them around for the long run.
Core should not need that. If the GUI or some other tool needs it, 
it is up to that tool to pay for it.

Jose Alberto

View raw message