cziegeler 01/06/26 00:24:23
Modified: xdocs caching.xml
Log:
Updated doc
Revision Changes Path
1.6 +56 -7 xml-cocoon2/xdocs/caching.xml
Index: caching.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/xdocs/caching.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- caching.xml 2001/06/22 09:13:23 1.5
+++ caching.xml 2001/06/26 07:24:18 1.6
@@ -58,7 +58,7 @@
<p>When a response is cached all validity objects are stored
together with
the cached response in the cache. Actually the
<code>CachedEventObject</code>
is stored which encapsulates all this information.</p>
- <p>When a new response is generated and the key is generated, the
caching
+ <p>When a new response is generated and the key is build, the
caching
algorithm also collects all uptodate cache validity objects.
So if the
cached response is found in the cache these validity objects
are compared.
If they are valid (or equal) the cached response is used and
feed into
@@ -66,14 +66,49 @@
from the cache, the new response is generated and then stored
together with
the new validity objects in the cache.</p>
<s3 title="Examples">
- <p>Guess what! Yes, forthcoming.</p>
+ <p>If you have the following pipeline:</p>
+
<p>Generator[type=file|src=a.xml]->Transformer[type="xslt"|src=a.xsl]->Serializer</p>
+ <p>The file generator is cacheable and generates a key
which hashesthe src
+ (or the filename) to build the key. The cache
+ validity object uses the last modification date of the
xml file.</p>
+ <p>The xslt transformer is cacheable and generates a
key which hashes
+ the filename to build the unique key. The cache validity
object
+ uses the last modification date of the xml file.</p>
+ <p>Both keys are used to build a unique key for this
pipeline,
+ the first time it is invoked its response is cached. The
second time
+ this pipeline is called, the cached content is get from
the cache.
+ If it is still valid, the cached content is directly
feed into
+ the serializer.</p>
+ <p>Only part of the following pipeline is cached:</p>
+
<p>Generator[type=file|src=a.xml]->Transformer[type="xslt"|src=a.xsl]->Transformer[type=sql]->Transformer[type="xslt"|src=b.xsl]->Serializer</p>
+ <p>The file generator is cacheable and generates a key
which hashesthe src
+ (or the filename) to build the key. The cache
+ validity object uses the last modification date of the
xml file.</p>
+ <p>The xslt transformer is cacheable and generates a
key which hashes
+ the filename to build the unique key. The cache validity
object
+ uses the last modification date of the xml file.</p>
+ <p>The sql transformer is not cacheable, so the
caching algorithm stops
+ at this point although the last transformer is
cacheable.</p>
+ <p>So the cached response is absolutely the same as in
the first example
+ and therefore the unique key build from the two keys
(from the
+ generator and the first transformer) is the same as in
the first example.
+ The only difference is when the cached response is
used. It is not
+ feed into the serializer but into the sql
transformer.</p>
</s3>
</s2>
<s2 title="The XMLSerializer/XMLDeserializer">
- <p>Forthcoming. Believe me!</p>
-<p>The storing of the sax events is implemented by two more
-Avalon components the XMLSerializer and the XMLDeserializer.
-</p>
+ <p>The caching if the sax events is implemented by two Avalon
components:
+ The XMLSerializer and the XMLDeserializer. The XMLSerializer
gets
+ sax events and creates an object which is used by the
XMLDeserializer
+ to recreate these sax events.</p>
+ <s3
title="org.apache.cocoon.components.sax.XMLByteStreamCompiler">
+ <p>The <code>XMLByteStreamCompiler</code>compiles sax
events into a byte stream.</p>
+ </s3>
+ <s3
title="org.apache.cocoon.components.sax.XMLByteStreamInterpreter">
+ <p>The <code>XMLByteStreamInterpreter</code> is the
counterpart of the
+ <code>XMLByteStreamCompiler</code>. It interprets
the byte
+ stream and creates sax events.</p>
+ </s3>
</s2>
</s1>
<s1 title="Caching of stream pipelines">
@@ -81,7 +116,21 @@
</s1>
<s1 title="Configuration">
<p>Configuration is forthcoming</p>
- </s1>
+ <s2 title="The XMLSerializer/XMLDeserializer">
+ <p>The XMLSerializer and XMLDeserialzer are two Avalon
components which
+ can be configured in the cocoon.xconf:</p>
+ <source>
+ <![CDATA[
+ <xml-serializer class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"/>
+
+ <xml-deserializer
class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"/>
+
+ ]]>
+ </source>
+ <p>You must assure that the correct (or matching) deserializer
is
+ configured for the serializer.</p>
+ </s2>
+ </s1>
<s1 title="Java APIs">
<p>Description of the interfaces is forthcoming</p>
</s1>
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]