The constructs package builds on top of the core ehcache classes to create implementations for common caching patterns.
All implementations use ehcache as the backing cache. They also share a common purpose - to create very high performance Java applications.

## Pattern Implementations

#### General Purpose Caching

- BlockingCache - a cache which blocks subsequent threads until the first read thread populates a cache entry
- SelfPopulatingCache
- a read-through cache. A cache that populates elements as they are requested without requiring the caller to know how the entries are populated. It also enables refreshes of cache entries without blocking reads on the same entries.
- UpdatingSelfPopulatingCache - a read-through cache. A cache that populates elements as they are requested without requiring the caller to know how the entries are populated. The cache entry is automatically updated on subsequent reads.

#### Web Caching

Servlet 2.3 caching filters that cache HTTP/S responses:

- CachingFilter - an abstract, extensible caching filter.
- SimplePageCachingFilter - a concrete implementation which caches pages based on the request URI and Query String.
- SimplePageFragmentCachingFilter - a concrete implementation which caches page fragments based on the request URI and Query String.