Le 13 sept. 09 à 16:44, Nicolas Lalevée a écrit :


Le 11 sept. 09 à 18:46, Jean-Louis Boudart a écrit :

Hi,


I know Jean-Louis BOUDART has been working on plugging different
frontends into EasyAnt so maybe we could join forces - Jean- Louis, are
you reading this?


Sorry  for long responding i was on holidays :).
I was thinking a few time ago to introduce an abstraction layer in the
project helper.

As stefan highlighted <ant> and <subant> task are configured through the
ProjectHelper that's why i wanted to put the abstraction layer here.

Why adding a new abstraction layer ?
As everyone knows the only way to write an ant script is XML. It could be
really interesting to support others languages like Java or groovy.
Then if users want to write their own ant script they are able to write it in XML (with ant syntax has everyone know in the world :)) or in Java (maybe
Groovy ? or whatever).

I thought about writing a ProjectHelper that will be in charge to determine which "dialect" will be used (maybe based on conventions on extensions .ant .java .jar .groovy) and to delegate to a class that will be in charge to do
all the specific stuff.

I didn't get time to start a POC on this but i will do it in the next few
days.

It could be cool if we could join forces on this.

Here is a simple first patch:
https://issues.apache.org/bugzilla/show_bug.cgi?id=47830

As noted there I still have some issues, probably in the groovy frontend.

So I have implemented a ProjectHelperRepository which will help Ant to choose a ProjectHelper to use (svn r819284). I have added some doc about it, see:
http://svn.apache.org/repos/asf/ant/core/trunk/docs/manual/projecthelper.html

So with this implementation, we would be able to just drop an implementation of ProjectHelper in a standard Ant distribution, and Ant will be able to parse new kinds of files, while still being able to build classical build.xml files.

Just one thing is worrying me: the ProjectHelper#parse method is expecting an Object as source, which as the javadoc specifies it can be a File, an URL, an InputStream, or even a specialized type as InputSource. Does it really used with something else than a File or an URL ? Should we continue to support that ? Shouldn't we better support only URL ? something that we can get content from and have a name.
And by the way shouldn't ProjectHelper be an abstract class ?

Nicolas


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to