OSCache - OSCache 1.7.0

### Release Notes (26th September 2001 - by Francois Beauregard, fbeauregard@pyxis-tech.com, and Alain Bergevin, abergevin@pyxis-tech.com, of Pyxis Technologies Inc.) This version include some refactoring, corrections and new features. Here are the highlights: CacheAdministrator has been split in 3. We have now AbstractCacheAdministrator, and ServletCacheAdministrator and GeneralCacheAdministrator extends it Packages have been adjusted. We now have oscache.base, oscache.general and oscache.Servlet. Adjustement must be made to the oscache.tld ServletCacheHashMap has been created in order to reflect specific needs for Servlets. It extends CacheHashMap Support for multiple cache tag in a single page, without supplying a key. Nested cache tag are not yet supported (you need to manage keys in that case). OSCache can now cache any objects (not only JSP content) using GeneralCacheAdministrator GenerateKey now support suffixes (used to deal with multiple cache tags) A complete JUnit test suite has been created for osCache, including a JSP and a Servlet Added the required libraries for the test unit. The JUnit JAR has been upgraded to version 3.7 Required libraries are now HHTPUnit, Tidy, JUnit 3.7 and JUnitPerf The cBuffer variable used for keyGeneration has been moved locally to GenerateKey since it was a threading issue The build file has been modified to include test running The flushAll method is now abstract since CacheAbstractAdministrator can't know all valid scopes Removed the retry logic for disk cache read and write (not used anymore) Fixed an issue with the needsRefresh method which returned an invalid value when invoked first by returning true and then invoked having to return false. Both case returned true. The doStartTag method in CacheTag has been modified to prevent returning null when cache content is missing (cache file deleted) The doAfterBody method in CacheTag has been modified in order to prevent hitting the cache twice in some situation The useBody method in CacheTag has been renamed to setUseBody in order to reflect its usage LoadProperties interface added to CacheProperties Added a NeedsRefreshException Retrofited the changed made by Kesav Kumar in order to retrieve the sessionId correctly Added code toughness to avoid working with invalid parameters in public methods Magic numbers and strings are now declared as constants Many methods are now declared as final or protected Imports are now more accurate, no more * Comments and some headers modified to reflect JavaDoc standard