YOUR FEEDBACK
shirley wrote: As an ISV and service provider, we specialise in .NET based collaboration soluti...
Cloud Computing Conference
March 22-24, 2009, New York
Register Today and SAVE !..

2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
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
CruiseControl: The Complete Continuous Integration

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.

  • YOUR FEEDBACK
    LeonardJ wrote: Makes the whole concept clearer
    BEA WEBLOGIC LATEST STORIES
    Okay, here's the deal. When you observe the big software guys and see how quickly they adopt emerging technologies, which will change IT the way we know it today, here is what we see. Larry Ellison invested millions in old SaaS / cloud companies, which gave him zippo in return, and he ...
    SYS-CON Events announced today that more than 40 Cloud technology providers, as well as Virtualization and SOA companies will exhibit at the upcoming 1st International Cloud Computing Conference & Expo (www.CloudComputingExpo.com), November 19-21, in San Jose, California. The conferenc...
    SYS-CON Events announced today that the leading global SOA, Virtualization, Cloud Computing and Open Source technology provider FreedomOSS named "Gold Sponsor" of SYS-CON's SOA World Conference & Expo which will take place November 19-21, 2008, at the Fairmont Hotel in the heart of Sil...
    Cassatt, the company started by BEA founder Bill Coleman, is redirecting its data center widgetry into creating internal clouds comparable to Amazon or Google out of infrastructure customers already have in-house. Coleman observed that most IT professionals aren’t comfortable outsour...
    Just as people begin to understand the difference between web ops and IT, we are entering a period where clouds promise "Ops-Free" computing. Because it’s easy, scalable, available and disposable, the cloud is well on its way to becoming “technology’s next big thing.” However, ...
    As far as the software industry goes, these tough economic days give the biggest business advantage to those companies who contribute directly to the solution of the big global problem and they will be the first to flourish as we dig ourselves from the ditch. Call that the new Y2K prob...
    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

    ADS BY GOOGLE
    BREAKING NEWS FROM THE WIRES

    In the graph before the boilerplate, the first sentence should read: The Evans Data...