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.