blob: 916980fd30f6ad5d11f6d5822ef8f3b884ebb97c [file] [log] [blame]
<?xml version="1.0"?>
<document>
<properties>
<title>JCS Package Information</title>
<author email="pete@kazmier.com">Pete Kazmier</author>
<author email="ASmuts@therealm.com">Aaron Smuts</author>
<author email="james@jamestaylor.org">James Taylor</author>
</properties>
<body>
<section name="JCS Package Information">
<p>
The following tables provide a brief description of all packages
in the Java Caching System. For brevity,
<code>org.apache.stratum.jcs</code> has been abbreviated to
<code>o.a.s.j</code>.
</p>
<subsection name="Access">
<p>
These packages house the classes that a user of JCS should
need to access the cache.
</p>
<table>
<tr><th>Package</th><th>Description</th></tr>
<tr><td>o.a.s.j</td>
<td>
Root package of JCS. Currently this package only contains the
class JCS which provides a simple interface for clients to use
JCS.
</td>
</tr>
<tr><td>o.a.s.j.access</td>
<td>
Contains classes for accessing the cache. The CacheAccess
interface, which all classes in this package implement, provides
all the methods a client should need to use a Cache.
</td>
</tr>
</table>
</subsection>
<subsection name="Configuration">
<p>
This package contains the cache configuration code.
</p>
<table>
<tr><th>Package</th><th>Description</th></tr>
<tr><td>o.a.s.j.config</td>
<td>
This package contains utility classes that are used when
configuring the cache. NOTE: It is likely that these classes
will be removed in the future in favor of the configuration code
in stratum and BeanUtils.
</td>
</tr>
</table>
</subsection>
<subsection name="Engine">
<p>
These packages contain the code for the core of the cache:
core interfaces, queues, and the cache hub.
</p>
<table>
<tr><th>Package</th><th>Description</th></tr>
<tr><td>o.a.s.j.engine</td>
<td>
Interfaces used by the core and the auxiliary caches.
</td>
</tr>
<tr><td>o.a.s.j.engine.behavior</td>
<td>
Interfaces used by the core and the auxiliary caches.
</td>
</tr>
<tr><td>o.a.s.j.engine.control</td>
<td>
The primary cache classes and the hub.
</td>
</tr>
<tr><td>o.a.s.j.engine.group</td>
<td>
The group cache code. Some classes here should be under
control.
</td>
</tr>
<tr><td>o.a.s.j.engine.memory</td>
<td>
Parent package for memory type plugins.
</td>
</tr>
<tr><td>o.a.s.j.engine.memory.lru</td>
<td>
The primary memory plugin using a 'least recently used' removal
policy.
</td>
</tr>
<tr><td>o.a.s.j.engine.memory.mru</td>
<td>
A memory plugin implemented using a 'most recently used' removal
policy. In general this is <bold>slow</bold> and should not be
used.
</td>
</tr>
</table>
</subsection>
<subsection name="Auxiliary Caches">
<p>
Auxiliary caches generally fall into 3 types: disk, lateral,
and remote. Additional auxiliaries should be put into the
appropriate parent package.
</p>
<table>
<tr><th>Package</th><th>Description</th></tr>
<tr><td>o.a.s.j.auxiliary</td>
<td>
Root package for auxiliary caches.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.behavior</td>
<td>
Auxilliary cache interfaces.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.disk</td>
<td>
The primary disk auxiliary. Objects are serialized to a file on
disk. This implementation uses memory keys and performs quite
well. Recomended for most cases.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.disk.jisp</td>
<td>
Disk cache implemented with the <a href="http://www.coyotegulch.com/jisp/">
Java Indexed Serialization Package</a>, which allows serialization
of objects to B-Tree indexed tables on disk. This is quite
<u>slow</u> currently.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.disk.hsql</td>
<td>
A disk cache using Hypersonic SQL to serialize the contained
objects.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral</td>
<td>
Root package for the lateral cache family. Lateral caches
broadcast puts and removals to other local caches. See
<a href="LateralTCPAuxCache.html">this</a> explanation for more
information.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.socket</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.socket.tcp</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.socket.tcp.behavior</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.socket.tcp.utils</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.socket.udp</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.http</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.http.server</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.http.broadcast</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.lateral.http.remove</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote</td>
<td>
Root package for the remote auxiliary cache. See
<a href="RemoteAuxCache.html">this</a> explanation
of the remote cache for more information.
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote.server</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote.server.behavior</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote.server.group</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote.group</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.auxiliary.remote.behavior</td>
<td>
</td>
</tr>
</table>
</subsection>
<subsection name="Utilities">
<p>
These packages contain utility classes used by JCS. Many can
eventually be converted to commons utilities.
</p>
<table>
<tr><th>Package</th><th>Description</th></tr>
<tr><td>o.a.s.j.utils</td>
<td>
Root package for utils.
</td>
</tr>
<tr><td>o.a.s.j.utils.config</td>
<td>
Contains a file with constants used by the utils.servlet package.
Will be removed.
</td>
</tr>
<tr><td>o.a.s.j.utils.locking</td>
<td>
Implementation of a read write lock which maintains FIFO ordering
for write lock requests, but no ordering for read lock requests.
</td>
</tr>
<tr><td>o.a.s.j.utils.servlet</td>
<td>
</td>
</tr>
<tr><td>o.a.s.j.utils.servlet.session</td>
<td>
Contains distributed http session code.
</td>
</tr>
<tr><td>o.a.s.j.utils.threads</td>
<td>
Contains a thread pool implementation, some of which is originally
from Tomcat.
</td>
</tr>
</table>
</subsection>
</section>
</body>
</document>