[Date Prev] [Date Next] [Thread Prev] [Thread Next] Indexes: Main | Date | Thread | Author

[ba-ohs-talk] Continuous Integration of Java Software Builds

An important part of any software development process is getting reliable 
builds of the software. Despite it's importance, we are often surprised 
when this isn't done. We stress a fully automated and reproducible build, 
including testing, that runs many times a day. This allows each developer 
to integrate daily thus reducing integration problems.    (01)

CruiseControl BSD
CruiseControl is a tool for setting up a continuous build process. It 
builds upon the Ant project from Apache ( 
http://jakarta.apache.org/ant/index.html) by providing a set of tasks to 
automate the checkout/build/test cycle, and provides a servlet for viewing 
the status of the current build as well as the results of previous builds.    (02)

XDoclet BSD
XDoclet is an extended Javadoc Doclet engine. It's a generic Java tool that 
lets you create custom Javadoc @tags and based on those @tags generate 
source code or other files (such as xml-ish deployment descriptors) using a 
template engine it provides. XDoclet supports a set of common standard 
tasks such as web.xml or ejb-jar.xml generation, users and contributors can 
create other templates and @tags and add support for other technologies also.
The broader goal is to let you apply "Continuous Integration" in 
component-oriented development. The point is that you program your 
component and specify its meta-data in a per component fashion, you set the 
deployment meta-data per component. You don't have to worry about outdating 
deployment meta-data whenever you touch the code. The deployment meta-data 
is continuously integrated. And the whole process is, in its nature, 
round-trip. We call it "Continuous Reconfiguration". XDoclet is meant to be 
used as part of the build process utilizing Apache-Ant.
The system is extensible. If desired, you can write a specific template for 
your specific task (supporting a new application server, defining the OR 
schema for a tool like TopLink for example, or even supporting Servlets as 
components!). Some pre-build @tags and templates are already supported by 
XDoclet, for example <ejbdoclet/> for EJB-related stuff, <webdoclet/> for 
web.xml deployment descriptor generation and so on.    (03)