You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@excalibur.apache.org by rd...@apache.org on 2009/06/16 19:55:28 UTC
svn commit: r785324 [27/28] - in /excalibur/site: ./ css/ developing/ event/
fortress/ framework/ images/logos/ instrument/ lifecycle/ sourceresolve/
store/ xmlutil/
Modified: excalibur/site/sourceresolve/index.html
URL: http://svn.apache.org/viewvc/excalibur/site/sourceresolve/index.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/sourceresolve/index.html (original)
+++ excalibur/site/sourceresolve/index.html Tue Jun 16 17:55:25 2009
@@ -1,100 +1,532 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - Source Resolving - Overview</title><style type="text/css" media="all">
- @import url("../style/maven-base.css");
-
- @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-
- <a href="../index.html">Home</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../fortress/index.html">Fortress</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../component-list.html">Components</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../containerkit.html">Containerkit</a>
- </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="collapsed"><a href="../framework/index.html">Documentation</a></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none
"><a href="../component-list.html">Overview</a></li><li class="expanded"><strong><a href="../sourceresolve/index.html">Sourceresolver</a></strong><ul><li class="none"><strong><a href="../sourceresolve/index.html">Overview</a></strong></li></ul></li><li class="collapsed"><a href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation<
/a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="none"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process
</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Excalibur - Source Resolving - Overview</title>
+ <style type="text/css" media="all">
+ @import url("../css/maven-base.css");
+ @import url("../css/maven-theme.css");
+ @import url("../css/site.css");
+ </style>
+ <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <span id="bannerLeft">
+
+ Excalibur
+
+ </span>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 2009-06-16
+ </div>
+ <div class="xright"> <a href="../index.html">Home</a>
+ |
+ <a href="../fortress/index.html">Fortress</a>
+ |
+ <a href="../component-list.html">Components</a>
+ |
+ <a href="../containerkit.html">Containerkit</a>
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+
+ <h5>Essentials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="../svn.html">Subversion</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+ </li>
+
+ <li class="none">
+ <a href="../issue-tracking.html">Issue Tracking</a>
+ </li>
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../misc.html">Miscellaneous</a>
+ </li>
+ </ul>
+ <h5>Fortress</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../fortress/index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/features.html">Features Oriented</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/getting-started.html">Getting Started</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/cli.html">CLI</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/swing.html">Swing</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/servlet.html">Servlet</a>
+ </li>
+
+ <li class="none">
+ <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/design-notes.html">Design Notes</a>
+ </li>
+ </ul>
+ <h5>Framework</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../framework/index.html">Documentation</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../developing/index.html">Developing</a>
+ </li>
+ </ul>
+ <h5>Components</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../component-list.html">Overview</a>
+ </li>
+
+
+
+
+
+ <li class="expanded">
+ <strong>Sourceresolver</strong>
+ <ul>
+
+ <li class="none">
+ <strong>Overview</strong>
+ </li>
+ </ul>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../store/index.html">Store</a>
+ </li>
+
+ <li class="none">
+ <a href="../thread.html">Thread</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../xmlutil/index.html">XMLUtil</a>
+ </li>
+ </ul>
+ <h5>Containerkit</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../containerkit.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../instrument/index.html">Instrument</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../lifecycle/index.html">Lifecycle</a>
+ </li>
+
+ <li class="none">
+ <a href="../logger.html">Logger</a>
+ </li>
+ </ul>
+ <h5>Deprecated Materials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../deprecation.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="expanded">
+ <a href="../deprecation.html">Old Documentation</a>
+ <ul>
+
+ <li class="none">
+ <a href="../component.html">ECM</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../event/index.html">Event</a>
+ </li>
+
+ <li class="none">
+ <a href="../configuration.html">Configuration</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h5>Thanks</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../../foundation/thanks.html">to our sponsors!</a>
+ </li>
+
+ <li class="none">
+ <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+ </a>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ <div class="section"><h2><a name="Introduction"></a>Introduction</h2>
+<p>
A very common problem that you have to face in nearly every application
is resolving a source, which means finding a resource using a URI. Of
course after you located the resource, you want to do something with it,
like reading or writing or getting some meta information about it.
- </p><p>
+ </p>
+<p>
Of course, the JRE already provides some mechanisms and classes to deal
with resources. For example the <code>java.io.*</code> package provides
a lot of useful classes to deal with files stored on the local file
system. The <code>java.net.*</code> package provides similar functionality
if you want to deal with remote resources via http or ftp. In addition
there are various third party libraries, like the
- <a href="http://jakarta.apache.org/commons/httpclient/" class="externalLink" title="External Link">Jakarta Commons HttpClient</a>
+ <a href="http://jakarta.apache.org/commons/httpclient/" class="externalLink">Jakarta Commons HttpClient</a>
library that deal with this topic as well.
- </p><p>
+ </p>
+<p>
But all these approaches have three problems:
- </p><ul>
- <li>No unified interface - you have to distinguish between access
+ </p>
+<ul><li>No unified interface - you have to distinguish between access
of local resources and remote resources.</li>
- <li>Not suitable for web applications if it comes to extending the
+<li>Not suitable for web applications if it comes to extending the
supported protocols.</li>
- </ul><p>
+</ul>
+<p>
Out of these problems the idea of the source resolver has been born. It
provides a unique interface to any resource, being it a local file or
a distant resource on an ftp server. And it is possible to provide
your own application specific protocols in a multi application friendly
way.
- </p><p>
+ </p>
+<p>
The source resolver of Apache Excalibur is a useful component
that resolves resources from a given URI. The URI can use all
available protocols of the JRE, like HTTP, FTP, FILE etc..
In addition own protocols, like <code>myxmldatabase://root/documents/test.xml</code>
- can be plugged-in and then be used in the same way, "usual"
+ can be plugged-in and then be used in the same way, "usual"
resources (files etc.) are accessed.
- </p><p>
+ </p>
+<p>
The main advantage in comparison to the mechanisms provided
by the JRE is that the source resolver can be used without
any problems within web application servers. Each web
application can use it's own configured version of this
component avoiding any possible conflicts between these
applications.
- </p><p>
+ </p>
+<p>
The architecture of this package is simple but powerful.
The main component is the SourceResolver. It is used
to resolve any URI. If the SourceResolver can resolve the
protocol of the URI, it returns a Source object. This Source
object is an abstraction of the underlying resource. This
resource can be accessed by a provided InputStream.
- </p><p>
+ </p>
+<p>
Own protocols can be configured using the SourceFactory interface.
Whenever the SourceResolver finds a protocol that it can't handle
by itself, it gets a role selector for a SourceFactory and tries
to get a component with the role name of the protocol.
If such a factory exists, the source creation is passed on to this
factory.
- </p><p>
+ </p>
+<p>
The Source object is handled similar to Avalon components.
After it has been used it must be released using the SourceResolver.
The SourceResolver in turn passed on the release of the
object to the SourceFactory that created it.
- </p><p>
+ </p>
+<p>
The Source object is a lightwight object which can be extended with
several interface. For example the XMLizable interface from the XML
package to generate SAX events from the Source. Or the Monitorable
interface from the monitor package to monitor the resource.
- </p><p>
+ </p>
+<p>
For caching purposes the Source object offers a SourceValidity object
which can be used in addition to the system ID of the Source to verify
if a cache contains a valid version of the Source object.
- </p></div><div class="section"><a name="Projects"></a><h2>Projects</h2><p>You can see the source resolving in action in the
- <a href="http://cocoon.apache.org" class="externalLink" title="External Link">Apache Cocoon</a>
+ </p>
+</div>
+<div class="section"><h2><a name="Projects"></a>Projects</h2>
+<p>You can see the source resolving in action in the
+ <a href="http://cocoon.apache.org" class="externalLink">Apache Cocoon</a>
project and in <a href="../fortress/index.html">Fortress</a>.
- </p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+ </p>
+</div>
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2009
+
+ The Apache Software Foundation
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Modified: excalibur/site/store/index.html
URL: http://svn.apache.org/viewvc/excalibur/site/store/index.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/store/index.html (original)
+++ excalibur/site/store/index.html Tue Jun 16 17:55:25 2009
@@ -1,42 +1,463 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - Store - Overview</title><style type="text/css" media="all">
- @import url("../style/maven-base.css");
-
- @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-
- <a href="../index.html">Home</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../fortress/index.html">Fortress</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../component-list.html">Components</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../containerkit.html">Containerkit</a>
- </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="collapsed"><a href="../framework/index.html">Documentation</a></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none
"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="expanded"><strong><a href="../store/index.html">Store</a></strong><ul><li class="none"><strong><a href="../store/index.html">Overview</a></strong></li></ul></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><
li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="none"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li
></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Excalibur - Store - Overview</title>
+ <style type="text/css" media="all">
+ @import url("../css/maven-base.css");
+ @import url("../css/maven-theme.css");
+ @import url("../css/site.css");
+ </style>
+ <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <span id="bannerLeft">
+
+ Excalibur
+
+ </span>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 2009-06-16
+ </div>
+ <div class="xright"> <a href="../index.html">Home</a>
+ |
+ <a href="../fortress/index.html">Fortress</a>
+ |
+ <a href="../component-list.html">Components</a>
+ |
+ <a href="../containerkit.html">Containerkit</a>
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+
+ <h5>Essentials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="../svn.html">Subversion</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+ </li>
+
+ <li class="none">
+ <a href="../issue-tracking.html">Issue Tracking</a>
+ </li>
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../misc.html">Miscellaneous</a>
+ </li>
+ </ul>
+ <h5>Fortress</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../fortress/index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/features.html">Features Oriented</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/getting-started.html">Getting Started</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/cli.html">CLI</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/swing.html">Swing</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/servlet.html">Servlet</a>
+ </li>
+
+ <li class="none">
+ <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/design-notes.html">Design Notes</a>
+ </li>
+ </ul>
+ <h5>Framework</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../framework/index.html">Documentation</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../developing/index.html">Developing</a>
+ </li>
+ </ul>
+ <h5>Components</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../component-list.html">Overview</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../sourceresolve/index.html">Sourceresolver</a>
+ </li>
+
+
+
+
+
+ <li class="expanded">
+ <strong>Store</strong>
+ <ul>
+
+ <li class="none">
+ <strong>Overview</strong>
+ </li>
+ </ul>
+ </li>
+
+ <li class="none">
+ <a href="../thread.html">Thread</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../xmlutil/index.html">XMLUtil</a>
+ </li>
+ </ul>
+ <h5>Containerkit</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../containerkit.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../instrument/index.html">Instrument</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../lifecycle/index.html">Lifecycle</a>
+ </li>
+
+ <li class="none">
+ <a href="../logger.html">Logger</a>
+ </li>
+ </ul>
+ <h5>Deprecated Materials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../deprecation.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="expanded">
+ <a href="../deprecation.html">Old Documentation</a>
+ <ul>
+
+ <li class="none">
+ <a href="../component.html">ECM</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../event/index.html">Event</a>
+ </li>
+
+ <li class="none">
+ <a href="../configuration.html">Configuration</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h5>Thanks</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../../foundation/thanks.html">to our sponsors!</a>
+ </li>
+
+ <li class="none">
+ <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+ </a>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ <div class="section"><h2><a name="Introduction"></a>Introduction</h2>
+<p>
The Store Package provides a way to store named objects without
taking care about where and how they are stored.
You can choose between different implementations that store
the data e.g. in memory or on the file system etc.
- </p><p>
+ </p>
+<p>
This project provides some general components for dealing with stores.
It contains different store implementations, like the
<a href="mru.html">MRU Store</a> and a montoring component,
the
<a href="janitor.html">Store Janitor</a>.
- </p><p>
+ </p>
+<p>
These components have been donated by the
- <a href="http://cocoon.apache.org" class="externalLink" title="External Link">Apache Cocoon project</a>.
- </p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+ <a href="http://cocoon.apache.org" class="externalLink">Apache Cocoon project</a>.
+ </p>
+</div>
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2009
+
+ The Apache Software Foundation
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Modified: excalibur/site/store/janitor.html
URL: http://svn.apache.org/viewvc/excalibur/site/store/janitor.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/store/janitor.html (original)
+++ excalibur/site/store/janitor.html Tue Jun 16 17:55:25 2009
@@ -1,74 +1,463 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - The Store Janitor</title><style type="text/css" media="all">
- @import url("../style/maven-base.css");
-
- @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-
- <a href="../index.html">Home</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../fortress/index.html">Fortress</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../component-list.html">Components</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../containerkit.html">Containerkit</a>
- </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="collapsed"><a href="../framework/index.html">Documentation</a></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none
"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="collapsed"><a href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html
">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="none"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Goal"><
/a><h2>Goal</h2><p>This document describes the usage of the StoreJanitor.</p></div><div class="section"><a name="Description"></a><h2>Description</h2><p>The implementation is quit simple! Every implementation of a Store can register in the
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Excalibur - The Store Janitor</title>
+ <style type="text/css" media="all">
+ @import url("../css/maven-base.css");
+ @import url("../css/maven-theme.css");
+ @import url("../css/site.css");
+ </style>
+ <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <span id="bannerLeft">
+
+ Excalibur
+
+ </span>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 2009-06-16
+ </div>
+ <div class="xright"> <a href="../index.html">Home</a>
+ |
+ <a href="../fortress/index.html">Fortress</a>
+ |
+ <a href="../component-list.html">Components</a>
+ |
+ <a href="../containerkit.html">Containerkit</a>
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+
+ <h5>Essentials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="../svn.html">Subversion</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+ </li>
+
+ <li class="none">
+ <a href="../issue-tracking.html">Issue Tracking</a>
+ </li>
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../misc.html">Miscellaneous</a>
+ </li>
+ </ul>
+ <h5>Fortress</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../fortress/index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/features.html">Features Oriented</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/getting-started.html">Getting Started</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/cli.html">CLI</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/swing.html">Swing</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/servlet.html">Servlet</a>
+ </li>
+
+ <li class="none">
+ <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/design-notes.html">Design Notes</a>
+ </li>
+ </ul>
+ <h5>Framework</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../framework/index.html">Documentation</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../developing/index.html">Developing</a>
+ </li>
+ </ul>
+ <h5>Components</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../component-list.html">Overview</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../sourceresolve/index.html">Sourceresolver</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../store/index.html">Store</a>
+ </li>
+
+ <li class="none">
+ <a href="../thread.html">Thread</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../xmlutil/index.html">XMLUtil</a>
+ </li>
+ </ul>
+ <h5>Containerkit</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../containerkit.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../instrument/index.html">Instrument</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../lifecycle/index.html">Lifecycle</a>
+ </li>
+
+ <li class="none">
+ <a href="../logger.html">Logger</a>
+ </li>
+ </ul>
+ <h5>Deprecated Materials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../deprecation.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="expanded">
+ <a href="../deprecation.html">Old Documentation</a>
+ <ul>
+
+ <li class="none">
+ <a href="../component.html">ECM</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../event/index.html">Event</a>
+ </li>
+
+ <li class="none">
+ <a href="../configuration.html">Configuration</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h5>Thanks</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../../foundation/thanks.html">to our sponsors!</a>
+ </li>
+
+ <li class="none">
+ <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+ </a>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ <div class="section"><h2><a name="Goal"></a>Goal</h2>
+<p>This document describes the usage of the StoreJanitor.</p>
+</div>
+<div class="section"><h2><a name="Description"></a>Description</h2>
+<p>The implementation is quit simple! Every implementation of a Store can register in the
StoreJanitor. It checks in a configurable interval if memory is running low. If low,
it greps via Round Robin a victim (Store) and frees xx% of all emlements in this Store.
- After that the StoreJanitor sleeps and waits for the next iteration.</p><p>The StoreJanitor is very useful for web applications that use the store as
- a in-memory cache. The StoreJanitor helps in avoiding OutOfMemory exceptions.</p></div><div class="section"><a name="Configuration"></a><h2>Configuration</h2><p>The Store Janitor can be configured with a few options:
- </p><ul>
- <li>
- <em>freememory</em>: How many bytes shall be always free in the JVM (Default: 1mb)
+ After that the StoreJanitor sleeps and waits for the next iteration.</p>
+<p>The StoreJanitor is very useful for web applications that use the store as
+ a in-memory cache. The StoreJanitor helps in avoiding OutOfMemory exceptions.</p>
+</div>
+<div class="section"><h2><a name="Configuration"></a>Configuration</h2>
+<p>The Store Janitor can be configured with a few options:
+ </p>
+<ul><li><em>freememory</em>: How many bytes shall be always free in the JVM (Default: 1mb)
</li>
- <li>
- <em>heapsize</em>: Maximum possible size of the JVM memory consumption (Default: 64mb)
+<li><em>heapsize</em>: Maximum possible size of the JVM memory consumption (Default: 64mb)
</li>
- <li>
- <em>cleanupthreadinterval</em>: How often (sec) shall run the cleanup thread (Default: 10s)
+<li><em>cleanupthreadinterval</em>: How often (sec) shall run the cleanup thread (Default: 10s)
</li>
- <li>
- <em>adaptivethreadinterval</em> (experimental): Enable adaptive algorithm to determine thread interval
+<li><em>adaptivethreadinterval</em> (experimental): Enable adaptive algorithm to determine thread interval
(Default: false) When true,
<code>cleanupthreadinterval</code> defines the maximum cleanup interval.
Cleanup interval then is determined based on the memory fill rate: the faster memory is filled in,
and the less free memory is left, the shorter is the cleanup time.
</li>
- <li>
- <em>threadpriority</em>: priority of the thread (1-10). (Default: 10)
+<li><em>threadpriority</em>: priority of the thread (1-10). (Default: 10)
</li>
- <li>
- <em>percent_to_free</em>: What fraction of the store to free when memory is low (1-100). (Default: 10%)
+<li><em>percent_to_free</em>: What fraction of the store to free when memory is low (1-100). (Default: 10%)
</li>
- <li>
- <em>invokegc</em>: Invoke the gc on low memory first (true|false; default: false)
+<li><em>invokegc</em>: Invoke the gc on low memory first (true|false; default: false)
</li>
- </ul><p>The right configuration is very important, because wrong settings can
- cause a high system load. Let's have a look at a sample configuration.</p><div class="subsection"><a name="Example_configuration"></a><h3>Example configuration</h3><ul>
- <li>Tomcat settings in tomcat.sh or tomcat.bat:</li>
- </ul>
- <div class="source"><pre>
-%_RUNJAVA% %TOMCAT_OPTS% -Dtomcat.home="%TOMCAT_HOME%" \
+</ul>
+<p>The right configuration is very important, because wrong settings can
+ cause a high system load. Let's have a look at a sample configuration.</p>
+<div class="section"><h3><a name="Example_configuration"></a>Example configuration</h3>
+<ul><li>Tomcat settings in tomcat.sh or tomcat.bat:</li>
+</ul>
+<div class="source"><pre>
+%_RUNJAVA% %TOMCAT_OPTS% -Dtomcat.home="%TOMCAT_HOME%" \
-Xmx200000000 org.apache.tomcat.startup.Tomcat %2 %3 %4 %5 %6 %7 %8 %9
- </pre></div>
- <ul>
- <li>StoreJanitor settings:</li>
- </ul><p>The freememory and heapsize paramter always depends on the Xmx
+ </pre>
+</div>
+<ul><li>StoreJanitor settings:</li>
+</ul>
+<p>The freememory and heapsize paramter always depends on the Xmx
parameter.</p>
- <div class="source"><pre>
+<div class="source"><pre>
<!--+
| Store Janitor: the store garbage collector and memory usage controller.
|
@@ -77,8 +466,8 @@
| Jvm settings:
| -Xmx200000000
| store-janitor settings:
- | <parameter name="freememory" value="5000000"/>
- | <parameter name="heapsize" value="196000000"/>
+ | <parameter name="freememory" value="5000000"/>
+ | <parameter name="heapsize" value="196000000"/>
|
| It is recommended to have heapsize equal to -Xmx, especially on Sun's
| JVM which are unable to shrink its heap once it grows above minimum.
@@ -89,27 +478,28 @@
| for the store janitor to a value which is lower (2% less seems
| to be a working value).
+-->
- <store-janitor logger="core.store.janitor">
+ <store-janitor logger="core.store.janitor">
<!-- How much free memory shall be available in the jvm -->
- <parameter name="freememory" value="2048000"/>
+ <parameter name="freememory" value="2048000"/>
<!-- Indicates the limit of the jvm memory consumption. The default max
heapsize for Sun's JVM is (almost) 64Mb -->
- <parameter name="heapsize" value="66600000"/>
+ <parameter name="heapsize" value="66600000"/>
<!-- How often shall the cleanup thread check memory -->
- <parameter name="cleanupthreadinterval" value="10"/>
+ <parameter name="cleanupthreadinterval" value="10"/>
<!-- Experimental adaptive algorithm for cleanup interval
- <parameter name="adaptivethreadinterval" value="true"/>
+ <parameter name="adaptivethreadinterval" value="true"/>
-->
<!-- Indicates the thread priority of the cleanup thread -->
- <parameter name="threadpriority" value="5"/>
+ <parameter name="threadpriority" value="5"/>
<!-- How much percent of the elements of each registered Store
shall be removed when low on memory. Default 10% -->
- <parameter name="percent_to_free" value="10"/>
+ <parameter name="percent_to_free" value="10"/>
<!-- Invoke the garbage collector when low memory is reached -->
- <parameter name="invokegc" value="false"/>
+ <parameter name="invokegc" value="false"/>
</store-janitor>
- </pre></div>
- <p>It is recommended to have
+ </pre>
+</div>
+<p>It is recommended to have
<code>heapsize</code> equal to -Xmx, especially
on Sun's JVM which are unable to shrink its heap once it grows above minimum.
<code>freememory</code> should be greater than amount of memory necessary for normal
@@ -117,14 +507,44 @@
the value you specify for -Xmx, so you have to set the heapsize
for the store janitor to a value which is lower (2% less seems
to be a working value)
- </p><p> The
+ </p>
+<p> The
<code>cleanupthreadinterval</code> defines the interval of the background
thread which checks memory in seconds. Also this paramter should configured wisely.
A to short interval can cause also a high system load. The
<code>threadpriority</code> defines the priority of the background thread.
1 is lowest level and 10 the highest.
- </p><p>
+ </p>
+<p>
The
<code>percent_to_free</code> parameter describes, how much percent of the
elements of each registered Store shall be removed when low on memory.
- </p></div></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+ </p>
+</div>
+</div>
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2009
+
+ The Apache Software Foundation
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Modified: excalibur/site/store/mru.html
URL: http://svn.apache.org/viewvc/excalibur/site/store/mru.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/store/mru.html (original)
+++ excalibur/site/store/mru.html Tue Jun 16 17:55:25 2009
@@ -1,38 +1,433 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - MRUMemoryStore and Swapping</title><style type="text/css" media="all">
- @import url("../style/maven-base.css");
-
- @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-
- <a href="../index.html">Home</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../fortress/index.html">Fortress</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../component-list.html">Components</a>
-
-
-
- <span class="separator">|</span>
-
-
- <a href="../containerkit.html">Containerkit</a>
- </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="collapsed"><a href="../framework/index.html">Documentation</a></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none
"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="collapsed"><a href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html
">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="none"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Goal"><
/a><h2>Goal</h2><p>This document explains how the MRUMemoryStore and Swapping executes.</p></div><div class="section"><a name="Overview"></a><h2>Overview</h2><p>The MRUMemoryStore was developed to provide a standard algorithm to
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Excalibur - MRUMemoryStore and Swapping</title>
+ <style type="text/css" media="all">
+ @import url("../css/maven-base.css");
+ @import url("../css/maven-theme.css");
+ @import url("../css/site.css");
+ </style>
+ <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <span id="bannerLeft">
+
+ Excalibur
+
+ </span>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 2009-06-16
+ </div>
+ <div class="xright"> <a href="../index.html">Home</a>
+ |
+ <a href="../fortress/index.html">Fortress</a>
+ |
+ <a href="../component-list.html">Components</a>
+ |
+ <a href="../containerkit.html">Containerkit</a>
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+
+ <h5>Essentials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="../svn.html">Subversion</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+ </li>
+
+ <li class="none">
+ <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+ </li>
+
+ <li class="none">
+ <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+ </li>
+
+ <li class="none">
+ <a href="../issue-tracking.html">Issue Tracking</a>
+ </li>
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../misc.html">Miscellaneous</a>
+ </li>
+ </ul>
+ <h5>Fortress</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../fortress/index.html">Overview</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/features.html">Features Oriented</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/getting-started.html">Getting Started</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/cli.html">CLI</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/swing.html">Swing</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/servlet.html">Servlet</a>
+ </li>
+
+ <li class="none">
+ <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+ </li>
+
+ <li class="none">
+ <a href="../fortress/design-notes.html">Design Notes</a>
+ </li>
+ </ul>
+ <h5>Framework</h5>
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../framework/index.html">Documentation</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../developing/index.html">Developing</a>
+ </li>
+ </ul>
+ <h5>Components</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../component-list.html">Overview</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../sourceresolve/index.html">Sourceresolver</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../store/index.html">Store</a>
+ </li>
+
+ <li class="none">
+ <a href="../thread.html">Thread</a>
+ </li>
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../xmlutil/index.html">XMLUtil</a>
+ </li>
+ </ul>
+ <h5>Containerkit</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../containerkit.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../instrument/index.html">Instrument</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../lifecycle/index.html">Lifecycle</a>
+ </li>
+
+ <li class="none">
+ <a href="../logger.html">Logger</a>
+ </li>
+ </ul>
+ <h5>Deprecated Materials</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../deprecation.html">Overview</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="expanded">
+ <a href="../deprecation.html">Old Documentation</a>
+ <ul>
+
+ <li class="none">
+ <a href="../component.html">ECM</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="collapsed">
+ <a href="../event/index.html">Event</a>
+ </li>
+
+ <li class="none">
+ <a href="../configuration.html">Configuration</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h5>Thanks</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../../foundation/thanks.html">to our sponsors!</a>
+ </li>
+
+ <li class="none">
+ <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+ </a>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ <div class="section"><h2><a name="Goal"></a>Goal</h2>
+<p>This document explains how the MRUMemoryStore and Swapping executes.</p>
+</div>
+<div class="section"><h2><a name="Overview"></a>Overview</h2>
+<p>The MRUMemoryStore was developed to provide a standard algorithm to
store data in memory. For web-based applications the MRU (Most Recently Used) algorithm
- is very suitable, because the object most frequently accessed is always on "top".
- </p><p>If configured, the objects are also swapped to the filesystem if the
+ is very suitable, because the object most frequently accessed is always on "top".
+ </p>
+<p>If configured, the objects are also swapped to the filesystem if the
MRUMemoryStore reached his configured max. object limit.
- </p></div><div class="section"><a name="Implementation"></a><h2>Implementation</h2><div class="subsection"><a name="MRUMemoryStore"></a><h3>MRUMemoryStore</h3><p>
+ </p>
+</div>
+<div class="section"><h2><a name="Implementation"></a>Implementation</h2>
+<div class="section"><h3><a name="MRUMemoryStore"></a>MRUMemoryStore</h3>
+<p>
The heart of the MRUMemoryStore ist combination of a LinkedList and a HashMap:
- </p><p>
+ </p>
+<p>
The LinkedList provides the queue mechanism, and the entries in the LinkedList
contain the key to the data in the HashMap. When caching a new entry in to the list,
the entry is inserted to the front of the list.
@@ -42,35 +437,68 @@
This implementation keeps the most recent used objects in the store and provides the best
use of the machines memory.
- </p></div><div class="subsection"><a name="Swapping"></a><h3>Swapping</h3><p>
+ </p>
+</div>
+<div class="section"><h3><a name="Swapping"></a>Swapping</h3>
+<p>
When the MRUMemoryStore is full or the JVM is at the heap size limit the
objects in the MRUMemoryStore are swapped to the Filesystem. The default
- directory is "cache-dir" in the work-directory.
- </p><p>
+ directory is "cache-dir" in the work-directory.
+ </p>
+<p>
NOTE: The keys are Strings at the moment. Therefor the
filenames of the swapped objects can be very long. Especially Windows OS
flavours have problems with long filenames. Use the JispFilesystemStore to
get rid of it.
- </p></div></div><div class="section"><a name="Configuration_of_the_MRUMemoryStore_in_the_cocoon_xconf"></a><h2>Configuration of the MRUMemoryStore in the cocoon.xconf</h2>
- <div class="source"><pre>
-<store class="org.apache.excalibur.store.impl.MRUMemoryStore"
- logger="core.store">
- <parameter name="maxobjects" value="100"/>
- <parameter name="use-persistent-cache" value="true"/>
+ </p>
+</div>
+</div>
+<div class="section"><h2><a name="Configuration_of_the_MRUMemoryStore_in_the_cocoon.xconf"></a>Configuration of the MRUMemoryStore in the cocoon.xconf</h2>
+<div class="source"><pre>
+<store class="org.apache.excalibur.store.impl.MRUMemoryStore"
+ logger="core.store">
+ <parameter name="maxobjects" value="100"/>
+ <parameter name="use-persistent-cache" value="true"/>
</store>
- </pre></div>
- <p>Explanation of the paramters:</p><ol>
- <li>
- <code><parameter name="maxobjects" value="100"/></code>:
+ </pre>
+</div>
+<p>Explanation of the paramters:</p>
+<ol type="1"><li><code><parameter name="maxobjects" value="100"/></code>:
Indicates how many objects will be hold in MRUMemoryStore. When the number
of maxobjects has been reached, the last object in the MRUMemoryStore will be
thrown out.
</li>
- <li>
- <code><parameter name="use-persistent-cache" value="true"/></code>:
+<li><code><parameter name="use-persistent-cache" value="true"/></code>:
If this switch is set on true, objects are swapped out to the filesystem,
if the MRUMemoryStore has reached his maximum object limit, or the JVM
memory consumption is over the heap size limit. See StoreJanitor user
docs for more information.
</li>
- </ol></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+</ol>
+</div>
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2009
+
+ The Apache Software Foundation
+
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: scm-unsubscribe@excalibur.apache.org
For additional commands, e-mail: scm-help@excalibur.apache.org