NETEYE ACTIONCACHE

News

31.03.2004 - Version 1.1.3 released. See the ChangeLog for details
09.02.2004 - Version 1.1.2 released.
10.01.2003 - Version 1.1.1 and 1.0.2 released that fix bug 665654.
03.01.2003 - Version 1.1 released. Read more about the Struts 1.1 support.
02.01.2003 - Version 1.0.1 released.
19.12.2002 - Tutorial added to the documentation
10.12.2002 - First public release

Overview

The neteye actioncache is an extension to the jakarta struts framework. Unlike other caching frameworks, it takes advantage of the MVC design and let's the controller decide, whether the view needs to be updated (because the model has changed). All you have to do is to write a little bit of code that tells the controller when the data was last modified.

Features

Caching of binary and character data
Support for URL based session tracking
Allows to use multiple actions on a single page
LRU caching policy
Persistence
Support for Struts 1.0 and 1.1
Works with Tiles

Caching of binary and character data

Character data can be cached as well as binary data. Therefore the cache saves the ContentType header (if set by an action) and automatically sets it when returning cached content. Whether the cache operates in character or binary mode depends on the method of the ServletResponse object (getWriter() or getOutputStream()) that has been called.

Support for URL based session tracking

The neteye actioncache also works with applications that use URL rewriting for clients that don't accept cookies. Therefore an anonymized version of the output (without the actual jsessionid) is kept in the cache and the current session id is inserted before the content is send to the client. This is useful for page fragments (like the site navigation) that don't contain any session dependant data.

Allows to use multiple actions on a single page

For most websites and especially portal sites it is desirable to use multiple actions on a single page. The jsp:include element and the template tags provided by struts can be used construct a page from different actions. Using the default struts ActionServlet this will result in an error as soon as an included action tries to return an ActionForward because the servlet specs don't allow a RequestDispatcher.forward() after an include. The ActionCacheServlet solves this by performing an include rather than a forward in case the servlet itself was invoked using a RequestDispatcher.include() call. See Page Composition With Includes / Tiles in the struts user's guide.

LRU caching policy

The cache is implemented using a Last-Recently-Used (LRU) policy. That means that if the cache exceeds its maximum size the element that hasn't been accessed for the longest time is removed.

Persistence

In order to keep the amount of memory usage as low as possible the cached content is stored in the filesystem. Only the cache keys and some meta information like the content type is kept in memory. This way object deserialization is only needed during the cache initialization.

Struts 1.1

The actioncache distribution comes in two flavours: version 1.1 uses the new PlugIn feature introduced in Struts 1.1 and the 1.0.x branch works with the latest stable 1.0 Struts release (1.0.2).

Tiles

In release 1.1.1 the TilesCacheRequestProcessor has been added so that you can use actioncache together with Tiles. Set the processorClass property of the ActionCachePlugIn to specify an alternative processor.

Requirements

Servlet API 2.3
Struts 1.0.2 or Struts 1.1
Jakarta Commons Logging 1.0.2

Documentation

You can browse the javadocs online or build it using the api ant target.

Download

You can download the source and binary distributions at the SourceForge Project Page.

Contact

Please send your comments or questions to actioncache-help@lists.sourceforge.net.

SourceForge.net Logo


digital handcraft made in hamburg/berlin