An idea: EBB – Event Based Build
It’s a long time ago – last year think – I got an idea. It was the time where we had a discussion (again) how to parallelize Ant targets … My idea was that there is a build system running all time waiting for changed source files … and most of the stuff is available: from Ant and CruiseControl!
<build log4jconfig="build.log.config"> <block name="update"> <cc:modificationset ... /> <ant:sequential/> </block> </build>
The EBB framework is responsible for parsing the file and instantiating all the stuff. Output is redirected to Log4J. Its configuration file is specified in the root tag. The build contains multiple build blocks. Each block is started in a new thread. Its name is used as Log4J category. The CruiseControl-Modificationset is used for checking for changes. If a change is detected, EBB recieves its event. When recieving this event the Ant taskcontainer sequential will be executed.
<build log4jconfig="log4j.config"> <block update="update"> <cc:modificationset> <svn RepositoryLocation="http://svn.apache.org/repos/asf/ant/core/trunk/"/> </cc:modificationset> <ant:sequential xmlns:svn="antlib:org.apache.ant.svn"> <svn:svn command="update"/> </ant:sequential> </block> <block update="compile"> <cc:modificationset> <filesystem folder="core"/> </cc:modifactionset> <ant:sequential> <javac ... /> </ant:sequential> </build>