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

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


Theory
http://www.martinfowler.com/articles/continuousIntegration.html
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)

Software
CruiseControl BSD
http://cruisecontrol.sourceforge.net/
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
http://xdoclet.sourceforge.net/
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)