                        Apache Commons JCS
                        Version 2.2.1
                        Release Notes


INTRODUCTION:

This document contains the release notes for the 2.2.1 version of Apache Commons JCS.
Commons JCS is a distributed caching system written in Java. It is intend to speed up 
applications by providing a means to manage cached data of various dynamic natures.

JCS 2.0 and onwards now targets Java 6.0, making use of features that arrived with Java 5.0 
such as generics and concurrency.

For the advice on upgrading from 1.x to 2.x, see the following page: 

    http://commons.apache.org/proper/commons-jcs/UpgradingFrom13.html

Changes in this version include:


Fixed Bugs:
o           Unexpected dispose() in CompositeCacheManager.release() Thanks to athun.
o JCS-183:  JCache CDI Integration is slow



Historical list of changes: http://commons.apache.org/proper/commons-jcs/changes-report.html

For complete information on Apache Commons JCS, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons JCS website:

http://commons.apache.org/proper/commons-jcs/