Major changes include
* making convertion API context-sensitive
* the simplification of all the interfaces. The simplification is achived by applying IOC. Now AntEngine is responsible for creating and instantiating shared components via a ComponentManager.
* Moved most of startup code to AntEngine so that alternate front ends can be added in simply.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268409 13f79535-47bb-0310-9956-ffa450edef68
argued against "if" logic as part of the defined part of Ant stating
that all logic really should go into tasks. Now that the object model
is clean enough, it becomes silly obvious how to do this without requiring
the addition of any if/unless attributes in the target definitions themselves.
The build target task takes a target name and, optionally a if property. If
the property is used and is "true", then the target is executed by calling
the appropriate functionality on the Project object.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268340 13f79535-47bb-0310-9956-ffa450edef68
ends use core... In order for a front end to run a build, it first
creates a ProjectBuilder, loads a Project from it, then can run a
build on that Project. What still needs a bit of looking after is
creating a project from scratch (such as a GUI might do) and then
executing it. Later.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268339 13f79535-47bb-0310-9956-ffa450edef68
* Bootstrap now passes args all the way through
* FrontEnding implemented which allows Ant to talk back out
to whatever front end might be driving it. Events propogated
are project start/end, target start/end, task start/end.
This should allow any front end (like a GUI) to move a
progress indicator through a display of the object tree.
Also included is a generic writeMessage(String, int) method.
* cli/Main now plays ClassLoader games so that it can auto
matically place needed resources (like tools.jar) into
the classpath space of the executing Ant. Note -- this
is the first of a few steps to make complicated shell
launch scripts unnecessary. All that should be done
is a single executable per platform that essentially
calls "java -jar anteater.jar [args]". Main is also
primed for a future CJAN so that it can download whatever
jars are needed from CJAN and place them into the classpath
space of the executing Ant. Of course, it's not implemented
yet since CJAN isn't around yet -- but its ready. :)
* AntException now has fields for embedding the location
of an Error. Next up will be implementing the code
around where Tasks are run so that exceptions will contain
this information.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268333 13f79535-47bb-0310-9956-ffa450edef68
tools.jar and puts it on the classpath when needed. I did change things
around so that it's now Bootstrap --> Bootstrap2
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268324 13f79535-47bb-0310-9956-ffa450edef68
and handles things on its own. Only takes an extra 10 seconds on the bootstrap
and will tend to keep the crimson guys honest. :)
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268318 13f79535-47bb-0310-9956-ffa450edef68
* simplified logging interface to be independent of org.apache.log
* made it so that you no longer need to build a classpath and hand it to ant!!!
* added ant-call task
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268306 13f79535-47bb-0310-9956-ffa450edef68