File Release Notes and Changelog

Release Name: 2.4

Notes:
New plugins:

  * New plugins for ClearCase support:
    - UCM: sourcecontrol that monitors and reports in terms of UCM activities
    - ClearCaseViewstrapper: bootstrapper for use with dynamic views
    - FormattedLabelIncrementer: label incrementer that creates labels suitable for baselining
    - ClearCaseAuditLogger: adds information from an audited build into the CC build log

  * LockfileBootstrapper/Publisher

  * Log file manipulators:
    - DeleteManipulator: for deleting old log files
    - GZipManipulator: for gzipping old log files

  * P4ChangelistLabelIncrementer

  * Sourceforge Enterprise Edition support
    - SfeeFrsPublisher
    - SfeeTrackerPublisher
    - SfeeDocumentManagerPublisher

Highlighted changes:

  * Fixed problem where an uncaught exception during a build would prevent a project from ever
    building again (or until server was restarted).

  * Exceptions reloading config file no longer kills project scheduling thread.

  * Allow preconfigured project elements, including subelements. Combined with
    the project.name property this can be used for completely templated projects.

  * Updated index page to add force build button and show current status of all projects

  * JMX inteface now defaults to enabled (port 8000)

  * JMX project page will show project position in build queue
  
  * Add support for displaying Fit tests

  * Allow multiple rows of tabs

  * Fix problem some people observed when serving xml log file

  * Added alpha quality browser based configuration editor


Changes: CruiseControl Release Notes - 2.4 batch files: ---------------------- * Double quotes around %JAVA_HOME% arguments in classpaths, for JAVA_HOME values with spaces in the paths. (CC-371) Fix by Jeff Jensen binary release: ---------------------- * cruisecontrol.bat no longer sets ANT_HOME (CC-348). * cruisecontrol reporting application now started under root context, for example http://localhost:8080 will now show the reporting app. "cruisecontrol" context supported for backwards compatability, for example http://localhost:8080/cruisecontrol. Patch by Kent Spillner. * switched from jakarta commons-math to a sample "connectfour" project in the cruisecontrol cvs repository. * Added a work directory for Jetty to use (CC-257). Fix suggested by Paul Hammant. * Defaulting jmxport to 8000 in the startup scripts (cruisecontrol.bat and cruisecontrol.sh), but at the end of the command line so that it can be easily overridden. * Package the zip file with unix execute permission on the cruisecontrol.sh and apache-ant/bin/ant scripts * Updated the bundled apache-ant from version 1.6.3 to 1.6.5 source release: ---------------------- * don't exclude the binaryrelease files from the source release. Patch by Larry Shatzer contrib: ---------------------- * fix distributed/build.xml so that tests will pass out of the box. Patch by Dan Rollo * updated distributed/README.html to indicate that downloading the JINI jars is no longer required, but jdk1.4+ is. Patch by Dan Rollo. * Switch from downloading a separate jnlp.jar to using jre/javaws/javaws.jar. (CC-364) Patch by Dan Rollo. * clarified module attribute description in contrib/distributed (CC-390). Patch by Dan Rollo. * Allow configuration of BuildAgents to use a specific URL to find Lookup services (instead of using mulitcast discovery) (CC-392). Patch by Kirill Petrov. release build.xml: ---------------------- * New targets "deploy-server" and "kill-server" for starting/killing the binary release on a testing port. * Added "web" tests for the binary distribution. They are executed by the "webtest" target in release.xml. * Exclude pre-built binaries from source distribution and rename zip to include "src" in the name (CC-336). * Renamed from release.xml to build.xml so that it conforms to Ant standards. build loop ====================== AccurevBootstrapper: ---------------------- * No longer extends AntBuilder, but delegates to an AntBuilder instance. AccurevBootstrapper previously could have been used as a builder and a bootstrapper, but this wasn't semantically correct. It also made it more difficult to look at the class signature and understand its responsibilities. Patch by Kent Spillner. AntBootstrapper: ---------------------- * No longer extends AntBuilder, but delegates to an AntBuilder instance. AntBootstrapper previously could have been used as a builder and a bootstrapper, but this wasn't semantically correct. It also made it more difficult to look at the class signature and understand its responsibilities. AntBuilder: ---------------------- * Fails with an explicit error message if the ant log is empty instead of a XML parse Error on line -1: Premature end of file. Patch by Jerome Lacoste. * Warn that jvmargs are ignored when specifing anthome AntPublisher: ---------------------- * No longer extends AntBuilder, but delegates to an AntBuilder instance. AntPublisher previously could have been used as a builder and a publisher, but this wasn't semantically correct. It also made it more difficult to look at the class signature and understand its responsibilities. Patch by Kent Spillner. BuildQueue: ---------------------- * Catch and log and exceptions from listeners, such as when reparsing config file (CC-395). * Rename Listener method from projectQueued() to buildRequested() and change notification from after queueing to before. main/build.xml: ---------------------- * Allow build for jdk 1.3 no matter which jdk is being used. Patch by Brad Clarke. ClearCase: ---------------------- * New 'all' attribute can be used to increase performance when checking the entire view. Patch by Rick Reimer. * New plugins for ClearCase support (CC-326). Submitted by Kevin Lee - UCM: sourcecontrol that monitors and reports in terms of UCM activities - ClearCaseViewstrapper: bootstrapper for use with dynamic views - FormattedLabelIncrementer: label incrementer that creates labels suitable for baselining - ClearCaseAuditLogger: adds information from an audited build into the CC build log configxml.html: ---------------------- * Included link to timebuild in modificationset documentation. config.xml: ---------------------- * Allow preconfiguration of <log ..> element and sub-elements. Patch by Jerome Lacoste. * Allow preconfiguration of project and subelements (CC-352). Patch by Jerome Lacoste. ConcurrentVersionsSystem.java: ---------------------- * Fixed bug when module attribute is set to a true CVS module, not just a directory. Patch by Brad Clarke. CurrentBuildStatusPageListner: ---------------------- * Added new listener that will take an input template and do variable substitution to create an output page. Submitted by John Lussmyer CVS.java: ---------------------- * Deprecated CVS.java in favor of ConcurrentVersionsSystem.java to overcome issues with directory/filename conflicts, specifically with Eclipse IDE (CC-164). Note: CVS.java and other deprecated methods/classes are scheduled for deletion in the 3.0 release. general: ---------------------- * Minor changes to make code jdk 1.3 compliant. * Added fast-md5.jar to manifest for cruisecontrol.jar * Deprecated the command-line argument named "port" in favor of "jmxport" to be more explicit. * Javadoc, code, and test deprecation cleanup. Patch by Brad Clarke. * New system property named "cruisecontrol.rmiport" set when -rmiport specified on the command line. * Delete temp files created by tests (CC-344). Patch by Mark Doliner. * Missing x10.jar origin in lib/readme.txt. Reported by Adrian Cho. * Fixed project reloading so that changes to an existing project will be included when Cruise builds the next time. Paul Julius & Kent Spillner, pairing. * When reparsing the config file, the new MD5 hash was not being updated, so once changed, the config file always looked new. Paul Julius & Kent Spillner, pairing. JabberPublisher: ---------------------- * Support setting different "service". (CC-346) Patch by Ahti Kitsik. JMX interface: ---------------------- * When setting the configuration contents via JMX, the contents are validated (CC-333). Patch by Allan Wick. * Show build queue position for a Project on its JMX screen (CC-375). Patch by Tim Shadel. LockFileBootstrapper/Listener: ---------------------- * Added a pair of plug-ins that coordinate such that multiple projects with the same lock file will not build simultaneously. (Log)Manipulator: ---------------------- * Added a new class of plug-ins that can be nested within the log element to handle tasks in the log directory. Initial implementations are the DeleteManipulator (delete old logs) and the GZIPManipulator (gzip old logs). Contributed by Michael Kloss. MergeLogger: ---------------------- * cleanly skip non existing log files and directories MKS: ---------------------- * Support archive filenames with spaces (CC-376). Patch by Martin Aberle. NavigationTag: ---------------------- * Remove support for log files timestamped without a second part P4ChangelistLabelIncrementer: ---------------------- * New label incrementer for use with a Perforce changelist (CC-379). Patch by Matt Albrecht P4: ---------------------- * Get the email address of users from Perforce (CC-381). Patch by John Lussmyer. Project: ---------------------- * Remove methods to get/set config file from Project and corresponding jmx interface classes * ModificationSet is no longer a required element; when missing builds must be forced. * Fix a testcase failure on MacOS X. Reported by Michael Kloss. * Build after failed was not getting set properly. Patch by Brad Clarke. * Fix a bug where projects would hang if a build failed with unchecked exceptions or errors. ProjectConfig: ---------------------- * Validates subelements by calling their "validate()" methods. Schedule: ---------------------- * Fix getTimeToNextBuild to adjust for daylight savings time (CC-104). * Fix getTimeToNextBuild to prevent StackOverflowError * Validate now checks if all builders occur in pauses. Patch by Michael Kloss. SfeeFrsPublisher: ---------------------- * A new publisher for uploading files to a SourceForge Enterprise Edition's File Release System. SfeeTrackerPublisher: ---------------------- * A new publisher for creating a tracker artifact in a SourceForge Enterprise Edition project. * Extracted XPathAwareChild and NamedXPathAwareChild to make usable by other plugins. SfeeDocumentManagerPublisher: ---------------------- * A new publisher for creating a Document Manager entry in a SourceForge Enterprise Edition project. * If a Document Manager entry already exists in the specified folder with the same name, then the document being published will be added as a new version. StarTeam ---------------------- * Logging is unclear in a multi-threaded environment, so prepend 'url' string to all log messages. (CC-368) Patch by Benjamin Burgess * Modifications reported with extra '/' character between file name and parent folder name (i.e. "AdviceAgent\implementation\build_config\/build.xml"), so if the folder name returned form the server ends with either '/' or '\' then remove it before setting in modification. (CC-368) Patch by Benjamin Burgess * Modifications done by any user with name = "BuildMaster" are no longer ignored. (CC-368) Patch by Benjamin Burgess * Deletions are reported as the deleter instead of the last editor. (CC-368) Patch by Benjamin Burgess ThreadQueue ---------------------- * Fixes for incorrect methods (CC-389). Provided by Tarik Idris, reviewed by Kent Spillner. * Fix a ConcurrentModificationException when retrieving busy and idle tasks. Reported by Larry Shatzer VSSJournal: ---------------------- * handle dirs with same prefix (CC-307). Patch by Dan Rollo. * propertyOnDelete now set in VSSJournal. (CC-366) Patch by Simon Brandhof * configurable date/time format support for VSSJournal & fix ssDir if it ends with a '/'. (CC-365) Patch by Simon Brandhof reporting jsp app ====================== build.xml: ---------------------- * Specify jdk 1.3 source and target. Patch by Brad Clarke Configuration Editor: ---------------------- * Created a browser based configuration editor, included in the reporting application. * Added comment that the configuration editor is ready for alpha-level testing. Kent Spillner and Paul Julius, pairing. CruiseControlLogFileFilter: ---------------------- * Only accept files with at least 16 characters ('log' + date pattern + extension) CruiseControlTagSupport: ---------------------- * Use commons logging instead of sysout (CC-337). Patch by ajbanck@informatica.com. FileServlet: ---------------------- * Fix a bug with Last-Modified date format. Patch by Torsten Buerger * Set response code of 404 when file/dir not found. Patch by Ralf Wiebicke * Sort the artifact listing. Patch by Ralf Wiebicke fittests.xsl: ---------------------- * show fitnesse tests on the build results page. Submitted by John Woodward index.jsp: ---------------------- * Show status of projects (idle, publishing, etc.) on index page (CC-275). Patch by Jeff Jensen. LogFile: ---------------------- * Extract code for accessing the XML log files into a new Logfile class. Donations from ArtifactsLinkTag, BuildInfo, FileServlet, NavigationTag and XSLTag. Patch by Hack Kampbjørn * Serializable so that the Metrics tab in the reporting application will work. Patch by Dan Rollo. LogFileServlet: ---------------------- * Extract the log file serving specific code from FileServlet into a new subclass modifications.xsl: ---------------------- * Added a date/time field to the data displayed in the reporting application. (CC-338) Patch by ajbanck * Insert <br/> in place of newline characters in checkin comments so that they display properly. (CC-218) Patch by Kent Spillner * Add links to ClearQuest when used with new ClearCase plug-ins (part of CC-326). Patch by Kevin Lee Reporting: ---------------------- * Added a "Run Build" button to the project status page. * Added script to detect if we are framed/iframed in, as is the case with SFEE integration, to add the cruise stylesheet into those loaded by the parent page. * Improved styling for test results. Patch by Jim Garacci * Show the status text (build status file not found) in the navigation if there is no status file, fixes a regression introduced with CC-275. Reported by Al Wick RSS: ---------------------- * Updated rss.jsp to fix issue introduced by changes to BuildInfo. (CC-372) Patch by Ludovic Maître * Added a webtest that ensures functional rss.jsp, based on CC-372. * Set publication date to US locale so that applications can parse the data. (CC-357) Patch by Martin Nyholm Jelle * udpated main.jsp to fix RSS links in Safari (CC-385). Based on patch from Michael Kloss TabSheet: ---------------------- * Extend the tabsheet to have more than one row of tabs (CC-247). Patch by Hack Kampbjørn XSLTag: ---------------------- * Handle absolute path for logdir attribute (CC-341). Patch by Jerome Lacoste. * Empty cache files left over from a failed transformation are not considered current and are regenerated. Patch by Hack Kampbjørn * Use XSLT parameters to customize the XSL templates. * Changed pmd.xsl to by default report all violations on the build results page. Old behaviour is available by setting xslt.pmd.warning.threshold=3 in web.xml * New XSL template for linking ant's cvstagdiff task's output to ViewCVS. (CC-356) Based on patch from Tony Cook via the Wiki * Fix a stream leak when looking up resources used in the XSL stylesheet. * Added a XSLT parameter to hide CheckStyle warnings on the build results page. The default is to show errors and warnings.