version 1.9.4.1:
	* Fix a problem that occurs in Tomcat.   When TouchCollector 
	  initializes, it calls ProjectData.initialize() which (with 
	  Tomcat only) eventually calls TouchCollector.   However, 
	  TouchCollector's static members have not been initialized.   
	  Added a test that highlights this problem.   (Thanks to Jack Cobb
	  for suggesting the fix).
	* Runs on Java 5.  (Fix for Bug 2962599).
	

version 1.9.4:
	* Cobertura is now up to 10x faster. Aggregates changes in
	  temporary TouchCollector class (thread-safe, but lock-free) and after that
	  applies it on real model (ProjectData) as a batch operation. (Piotr Tabor)
	* Fixed "Some packages are included more then once" bug (#2875576) that
	  caused some counts on the HTML report to be incorrect.  (Charlie Squires)
	* Fixed "Inner classes not counted in coverage report total" bug (#2943320)
	  (Charlie Squires)

version 1.9.3:
	* Update to the latest Javancss (32.53) to fix some complexity calculation
	  problems.  Bug #2824425. (John Lewis)
	* Non-Java source files (like Groovy) no longer show the JavaNCSS warnings
	  during cobertura-report.  Fix of bug #2819844.
	* Support the case where multiple classloaders each load the Cobertura 
	  classes.  (Ed Randall)
	* Fixed bug added with 1.9.2 where a NullPointerException is thrown
	  if ProjectData.saveGlobalProjectData() is called before any instrumented
	  code is executed.

version 1.9.2:
	* Cobertura is now thread safe.
	* Fix for FileLocker exception when writing coverage data 
	  (java.lang.IllegalStateException: Shutdown in progress) that started
	  to appear with Java 6 update 14. (Chris van Es)
	* Fix for bug "Unix scripts behave oddly due to DOS format - ID: 2788621"

version 1.9.1.1:
	* Just a copy of 1.9.1 with a corrected Maven POM file (cobertura-runtime.pom).
	  A new version has to be created to get it uploaded to the central Maven repo.

version 1.9.1:
	* Complexity calculation now works with Java 5 language
	  features such as Annotations. (Tri Bao Ho)
	* Removed the bold font from the source-view for uncovered lines to
	  improve the alignment.  (Jiri Mares)
	* Support Ant <dirset>s. (Matt Cordes, John Lewis)
	* Support the antlib mechanism for defining and importing 
	  ant tasks. (Richard Atkins)
	* Reports now support source encoded in something than UTF-8. (Jiri Mares)
	* Report generation performance improvement. (Ignat Zapolsky)
	* Report generation will look in zip and jar files if the 
	  source java file is not found. (Charlie Squires, John Lewis)
	* cobertura-check with linerate=0, branchrate=0, 
	  packagebranchrate=0, packagelinerate=0, totalbranchrate=0,
	  totallinerate=0 will no longer default all the values to
	  50 as before.   Therefore, cobertura-check will always pass.
	  Note that this still means that <cobertura-check /> (with
	  no attributes) will still default to 50 for all rates. (Charlie
	  Squires) (Bug 2152919)
	* New coberturaFlush.war is created.   Deploy it to a 
	  web server and invoke http://<HOST>:<PORT>/coberturaFlush/flushCobertura
	  for a convenient way of flushing the cobertura data to the
	  datafile without stopping the web server.  (Amit Nithianandan)
	* XML report now shows total lines-covered, lines-valid, 
	  branches-covered, branches-valid, and complexity.  (Julian Gamble)
	* New report option called "summaryXml" will create
	  a small summary XML report that does not have all the
	  details on the classes - just the overall totals.  This
	  is for large projects where the full XML report gets so
	  big it impairs continuous build processes.  (Julian Gamble and Dan Godfrey)
	* Migrated from asm-2.2.1 to asm-3.0. (Jiri Mares)
	* The percentage coverage of 199 out of 200 lines has been 100%. 
	  No more! Now it is 99%.  (Jiri Mares)
	* Spelling error corrected in main.css file - changed magin to
	  margin. (Dennis Lundberg)

version 1.9:
	* Much improved branch coverage.  Information on whether
	  the true as well as the false of an if statement is
	  collected.  Also, information on the branches of a
	  switch statement (including the default) is collected.
	  (Jiri Mares)
	* Assume Java source files are saved as UTF-8 instead of
	  the computer's default encoding.
	* Write all HTML and XML reports in UTF-8 instead of the
	  computer's default encoding (Naoki Iwami).
	* Fix a bug where the Cobertura ant tasks would not work
	  correctly in Microsoft Windows when Cobertura was
	  installed on a different drive than the drive from which
	  you're running ant (Srivathsan Varadarajan).
	* Added a "maxmemory" attribute to the instrument, merge
	  and report ant tasks (Matt Cordes).
	* Improve support for Maven and similar environments where
	  control over system properties is difficult such as
	  app servers, IoC containers, IDEs, etc.  Setting the
	  datafile location is difficult in these environments.
	  To correct this, a cobertura.properties file 
	  located in the classpath is used to properly set the 
	  net.sourceforge.cobertura.datafile property.  
	  (Joakim Erdfelt)

version 1.8 (2006-04-10)
	* Ability to have multiple <ignore/> regular expressions
	  in the instrument task (Alexei Yudichev).
	* Ability to specify a minimum branch coverage rate and
	  line coverage rate for each package when using
	  cobertura-check.
	* Show the number of lines and branches covered and the
	  total number of lines and branches in the HTML report.
	* Support for instrumenting classes written in Groovy.
	* Lock the data file before trying to write to it.  This
	  allows multiple JVMs (or multiple class loaders within
	  a single JVM) to write to the same coverage data file
	  with no problems (John Lewis).
	* Ability to instrument classes on a given classpath
	  instead of specifying filesets (John Lewis).
	* Ability to specify which classes will be instrumented
	  using regular expressions (John Lewis).
	* Archives within archives will be instrumented if you
	  specify an includeClassname regular expression (John
	  Lewis).
	* If instrumenting an archive, remove any signatures
	  and checksums, since they will no longer be valid (John
	  Lewis).
	* Removed the Class-Path line from cobertura.jar.  You may
	  need to modify your Cobertura taskdef to include the jars
	  in Cobertura's 'lib' directory.  See our Ant task web
	  page for an example.
	* Reorganized libs into a flatter directory structure--you
	  may need to update your ant scripts.
	* Upgraded from asm 2.1 to asm 2.2.1.  No code changes were
	  needed.
	* Copied portions of classes from JavaNCSS into Cobertura
	  so that we don't need to include the entire JavaNCSS and
	  CCL jars.

version 1.7 (2005-12-06)
	* log4j is no longer used by the Cobertura classes that are
	  accessed by instrumented Java code.  This means you will
	  not need to add log4j to your project's classpath in order
	  to use Cobertura (but log4j is still required when
	  instrumenting and reporting).
	* Upgraded from asm 2.0 to asm 2.1.  No code changes were
	  needed.
	* Improved the merge task.  It should work correctly now
	  (with help from  Björn Beskow).
	* Fixed the ability to specify a data file in the merge task.
	* Changed the command-line interface to the merge task and
	  added a helper batch/shell script.
	* Added better error checking to the merge task.
	* Fixed a bug where an empty or incomplete coverage data
	  file would be written when you test classes inside Tomcat,
	  and you stop Tomcat using the shutdown.bat or shutdown.sh
	  scripts.  This would result in an EOFException when running
	  cobertura-report.
	* Added support for classes compiled with AspectJ.
	* Cobertura now produces valid XHTML 1.0 reports.

version 1.6 (2005-08-22)
	* Can now use multiple filesets in the cobertura-instrument
	  task (Thanks to Grzegorz Lukasik).
	* Can now use multiple filesets in the cobertura-report task
	  (Thanks to Jeremy Thomerson, Grzegorz Lukasik and James Seigel).
	* No longer using the Java version of GNU GetOpt
	* Fixed a bug where the total number of classes displayed in
	  the HTML report included anonymous classes when it should
	  not have.

version 1.5 (2005-08-05)
	* Shortened the header shown when running Cobertura (Thanks
	  to Jarkko Viinamäki).
	* Don't save the data file twice after instrumenting.
	* Print a warning when running cobertura-report with a
	  data file that does not contain information from the
	  instrument step.
	* When instrumenting, you can now specify a zip, jar, war,
	  ear or sar file and Cobertura will instrument any classes
	  inside of the archive.  You must explicity give the name
	  of the archive when instrumenting--giving the name of the
	  directory containing the archive will not work (Thanks to
	  Grzegorz Lukasik).
	* Fixed a bug where the class list in the HTML reports did
	  not show multiple classes with the same name, but in
	  different packages.
	* Add a timestamp and version number to all HTML reports.
	* Add a timestamp and version number to all XML reports.
	* Add the combined line-rate and branch-rate for all
	  packages to all XML reports.
	* Fixed the merge task (Thanks to Mark Sinke).
	* The check task now supports checking against a project's
	  total branch and line coverage rates (Thanks to Nathan
	  Wilson).
	* The check ant task now allows you to fail the ant build,
	  if desired (Thanks to Nathan Wilson).
	* The check task can set an ant property to "true" on
	  failure (Thanks to Alex Ruiz).
	* Changed some of the parameters for the check task.  See
	  the online documentation for usage information.
	* The command line Windows batch scripts work better.

version 1.4 (2005-05-30)
	* Fixed a bug that sometimes resulted in a
	  StringIndexOutOfBoundsException when running cobertura-report
	  (Thanks to Grzegorz Lukasik).
	* Fixed a bug where classes without coverage data ("N/A") were
	  not always sorted correctly in the HTML report (Thanks to
	  Olivier Parent).
	* Fixed a bug where the code complexity column would not always
	  sort correctly in locales that use a comma to split the decimal
	  part of the number (Thanks to Olivier Parent).
	* Show "N/A" in the branch column of the HTML report for classes
	  and packages that do not have any branches.

version 1.3 (2005-05-20)
	* Increased speed of HTML reports by filtering the files read
	  in to determine cyclomatic complexity numbers on.
	* In the lower left pane of the HTML reports, classes are now
	  sorted only by their class name (instead of by their package
	  name plus class name).
	* Changed the format of the XML reports to something that
	  is hopefully easier to use and more natural.  This
	  unfortunately breaks backward compatability.
	* We're using a DTD for the XML reports now.  See
	  http://cobertura.sourceforge.net/xml/coverage-01.dtd
	* Added the ability to specify the location of the coverage
	  data files from the ant tasks and the command line.
	* More user-friendly error checking and reporting.

version 1.2 (2005-03-16)
	* Fix a bug that caused the XML reports to be invalid XML
	  (they were missing the </package> tag).
	* Use Java 1.4 pattern matching and remove Jakarta ORO.

version 1.1 (2005-03-08)
	* Fix a bug in the syntax highlighting code of the HTML report
	  generation.  Previously, the highlighting for single quotes
	  containing "\\" would not end correctly.
	* Check the third party jars into CVS using the correct CVS
	  substition flag (binary, not ASCII).
	* Temporary files created by the instrument ant task and merge
	  ant task are now deleted after the ant task finishes.
	* Switch the instrumentation classes to use ASM instead of
	  Apache BCEL.  There are three benefits to this:
	  1. BCEL was throwing exceptions with some source code compiled
	     with JDK 1.5--ASM works fine.
	  2. ASM is licensed under the revised BSD license, which
	     is compatable with the GPL, which allows us to remove
	     the questionable exception for BCEL.
	  3. Instrumentation is about 5 times faster with ASM than BCEL.
	* Modify the HTML reports so that classes without line number
	  information will appear as "Not Applicable."  This includes
	  skeleton classes, stub classes, interfaces, or anything not
	  compiled with debug=true.
	* Fix bug #1151777 with a patch from Jeremy Thomerson.
	  Previously we were not escaping some characters correctly in the
	  generated XML coverage report (specificially < and >).
	* Set the class-path in the cobertura.jar manifest file correctly.
	* Fill feature request #1151779 with a patch from Jeremy Thomerson.
	  This changes the structure of the XML report so that <classes> are
	  enclosed inside <packages>.

version 1.0 (2005-02-12)
	* Forked jcoverage 1.0.5 (although the version in the source says 1.0.4).
	  All original code is copyright 2003 jcoverage ltd.  Kurt Guenther
	  highlighted a bug in the branch coverage, was was fixed.
	* Applied a patch from Joakim Erdfelt to fix a bug where jcoverage
	  would fail to instrument classes if you attempted to instrument a
	  very large number of classes (in the hundreds).
	* Rewrote the HTML reporting and included code complexity in the output.
