YOUR FEEDBACK
Adobe Flex 2 - Answering Tough Questions About Enterprise Development
A Correct Person wrote: Denis Roebrt commented on the 21 Aug 2006 "Tough Que...
SOA World Conference
Virtualization Conference
$50 Savings Expire May 23, 2008... – Register Today!

2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts

SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


CruiseControl: The Complete Continuous Integration

Digg This!

A continuous integration process involves automatic building and testing with tools like Ant and JUnit. These tools need a tool that will manage and control the build process - this is where Cruise Control comes in.

CruiseControl, an open source tool from SourceForge, is a framework for a continuous build process. It provides an easy-to-use tool that integrates Ant, JUnit, and others to provide a simple utility that builds and tests your software throughout the development cycle.

For a complete build process you might want to clean the build directory, fetch sources from the source configuration tool, compile sources, package applications, start the application server, deploy the packaged applications, perform tests, generate reports, and clean up. Simpler (intermediate) build processes can pass the clean task and part of the test tasks.

All of these tasks should be part of your Ant build configuration.

For an easy transition between different dev/test/prod environments it's helpful if you use different configuration settings for your application properties and application server settings and let Ant prepare these settings for you. For example, for the build.xml:

<filter token="server.domain"
value="${server.domain}"/>
<filter token="server.listen.port"
value="${server.listen.port}"/>
<filter token="server.name" value="${server.name}"/>

And for the config.xml:

<Domain Name="@server.domain@">
...
<Server ListenPort="@server.listen.port@"
Name="@server.name@">

where all server.* properties reside in different configuration files for use with any different environment (dev.properties, test.properties, etc.)

This will put you in a position where you could run continuous build process without human hands.

Now, let's see how CruiseControl helps us with these builds.

CruiseControl, release 2.0, is more flexible and open. Its building blocks are plug-ins (that you can always extend or replace). It is shipped with several plug-ins that, in most cases, will do the work without the need for an update. The provided plug-ins are grouped into five types:

  • Bootstrappers: Designed to be run before the build, regardless of whether a build is necessary. These trappers are used for updating the configuration files from the source configuration (like build.xml, which you'll use just as you start the build...).
  • SourceControl implementations: Poll a code repository and determine if anything has changed within your project that would require another build. These plug-ins can be configured not to fetch changes until X minutes have passed since the last source update (useful for large source updates).
  • Builders: Actually perform the building and testing of your code. These plug-ins are responsible for starting an Ant task based on your configuration of Ant. These tasks will run in a different process than the CruiseControl (eliminates memory problems and provides better control over the Ant usage).
  • LabelIncrementers: Handle incrementing the label for you to use to tag your source, as part of the continuous process.
  • Publishers: Publish the results of your build. Plug-ins such as HTML-based e-mail, link-ref e-mail, and plain HTML are possible output formats.

    CruiseControl generates a log file for each build process. This log file can be used to follow the build results as well as publish them using the publishers.

    CruiseControl comes with a prepared Web application that enables you to publish your build results on an intranet site. In order to install the Web application, you should follow the installation instructions and pay special attention to the replacement of the log path element in the web.xml file and the correct jsp version usage in the buildresults.jsp file.

    After you have configured the Web application, you can install it on your target intranet Web server. Make sure this server shares a file system with the process, so the CruiseControl process can update this Web application. The generated report can include information about:
    1.   List of changed sources and the check-in notes
    2.   Building blocks of the application (.jars, .ears, etc.)
    3.   JUnit reports (to integrate JUnit reports into the standard CruiseControl reports, use the Merge plug-in to append the JUnit log files to CruiseControl log file)

    The CruiseControl Web application simply takes the log file generated by the build process and transforms its format for a clean, hyper-text format.

    Example
    Listing 1 is an example of a CruiseControl configuration file that should satisfy most projects. Table 1 defines the main terminology in CruiseControl

    Resources

  • CruiseControl: http://cruisecontrol.sourceforge.net
  • Jakarta Ant: http://jakarta.apache.org/ant
  • JUnit: www.junit.org
  • Fowler, Martin. Continuous Integration. www.martinfowler.com/articles/ continuousIntegration.html
    About Ronen Lewit
    Ronen Lewit is an IT expert specializing in enterprise software development. He has an extensive knowledge of state-of-the-art technologies in the J2EE and RDBMS worlds. Ronen is a consultant to corporations on building robust and scalable infrastructures and applications.

  • LeonardJ wrote: Makes the whole concept clearer
    read & respond »
    BEA WEBLOGIC LATEST STORIES
    3rd International Virtualization Conference & Expo: Themes & Topics
    From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
    Microsoft To Keynote 4th International Virtualization Conference & Expo
    Mike Neil is general manager for virtualization strategy in the Windows Server Division at Microsoft. Mike is focused on the delivery of the Windows virtualization technology, including Windows Server 2008 Hyper-V, Microsoft Hyper-V Server and Virtual PC 2007. Mike also directs the tec
    Virtualization Meets DaaS - Desktop-as-a-Service
    After a $1.5 million angel round, Desktone, which was started in 2006 by Eric Pulier, who also started SOA Software, US Interactive and IVT, picked up $17 million in first-round funding about a year ago from Highland Capital Partners, SoftBank Capital, Citrix Systems and the China-base
    Engelbart's Usability Dilemma: Efficiency vs Ease-of-Use
    The mouse was the original idea of Doug Engelbart who was the head of the Augmentation Research Center (ARC) at Stanford Research Institute. Engelbart's philosophy is best embodied, in my opinion, in the design of another device that he invented, the five-finger keyboard - with keys li
    Web 2.0 Is Fundamentally About Empowering People
    'Unlocking content to be remixed into new business value' is the driver of Web 2.0 in the enterprise, says Rod Smith, IBM VP of Emerging Internet Technologies, in this Exclusive Q&A with Jeremy Geelan on the occasion of IBM's release of a new technology created by IBM researchers, code
    Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
    Here is a question that I have been pondering on and off for quite a while: Why do 'cool kids' choose Ruby or PHP to build websites instead of Java? I have to admit that I do not have an answer. Why do I even care? Because I am a Java developer. Like many Java developers, I get along w
    SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
    SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON FEATURED WHITEPAPERS

    MOST READ THIS WEEK
    ADS BY GOOGLE
    BREAKING NEWS FROM THE WIRES
    AmberPoint Extends SOA Governance to Apache ServiceMix, BEA AquaLogic Service Bus 3.0, BEA WebLogic Integration, Cisco ACE XML Gateway, JBoss Enterprise Application Platform and Oracle Fusion
    AmberPoint announced today that it has extended the reach of its runtime SOA governance