cziegeler 01/11/07 07:44:19
Added: targets/cocoon2/ctwig ctwig-basic01.html ctwig-basic02.html
ctwig-basic03.html ctwig-contributing.html
ctwig-gettingstarted.html ctwig-installing.html
ctwig-resources.html ctwig-transformations.html
ctwig-why.html index.html
targets/cocoon2/ctwig/ctwig/graphics
ctwig-basic02-header.jpg_label=cTwIG - Cocoon Two
Idiots Guide - Basic XSP Processing.jpg
ctwig-contributing-header.jpg_label=cTwIG - Cocoon
Two Idiots Guide - Contributing.jpg
ctwig-gettingstarted-header.jpg_label=cTwIG -
Cocoon Two Idiots Guide - Getting Started.jpg
ctwig-installing-header.jpg_label=cTwIG - Cocoon
Two Idiots Guide - Installing.jpg
ctwig-resources-header.jpg_label=cTwIG - Cocoon Two
Idiots Guide - Resources.jpg
ctwig-transformations-header.jpg_label=cTwIG -
Cocoon Two Idiots Guide - Transformations.jpg
ctwig-why-header.jpg_label=cTwIG - Cocoon Two
Idiots Guide - Why.jpg index-header.jpg_label=cTwIG
- Cocoon Two Idiots Guide.jpg
targets/cocoon2/ctwig/graphics Contributing-label.jpg
Contributing-label_over.jpg Getting
Started-label.jpg Getting Started-label_over.jpg
Home-label.jpg Home-label_over.jpg
Installing-label.jpg Installing-label_over.jpg
Main-label.jpg Main-label_over.jpg
Resources-label.jpg Resources-label_over.jpg
Transformations-label.jpg
Transformations-label_over.jpg Why-label.jpg
Why-label_over.jpg cTwIG-separator.jpg
targets/cocoon2/ctwig/images bar-border-bottom.gif
bar-border-left.gif bar-border-right.gif
bar-border-top.gif bar-bottom-left.gif
bar-bottom-right.gif bar-top-left.gif
bar-top-right.gif bottom.gif button-asf-hi.gif
button-asf-lo.gif button-w3c-hi.gif
button-w3c-lo.gif button-xml-hi.gif
button-xml-lo.gif close.gif dot.gif join.gif
line.gif logo.gif note.gif right.gif void.gif
targets/cocoon2/ctwig/resources script.js
targets/cocoon2/ctwig/sample/transformations/basic01
basic01-01.xml.txt basic01-01.xsl.txt
targets/cocoon2/ctwig/sample/transformations/basic02
basic02-01.xml.txt
targets/cocoon2/ctwig/sample/transformations/basic03
basic03-01.xml.txt
targets/cocoon2/ctwig/sample/transformations/logicsheet
ctwig.xsl.txt
targets/cocoon2/developing avalon.html datasources.html
extending.html httprequest.html index.html
parent-component-manager.html
targets/cocoon2/developing/developing/graphics
avalon-header.jpg_label=Avalon for Apache
Cocoon.jpg datasources-header.jpg_label=Using
Databases in Apache Cocoon.jpg
extending-header.jpg_label=Extending Apache
Cocoon.jpg httprequest-header.jpg_label=Request
Processing.jpg index-header.jpg_label=Developer
Documentation.jpg
parent-component-manager-header.jpg_label=Parent
Component Manager.jpg
targets/cocoon2/developing/graphics API (Javadoc)-label.jpg
API (Javadoc)-label_over.jpg Avalon-label.jpg
Avalon-label_over.jpg Concepts-separator.jpg
Extending C2-label.jpg Extending C2-label_over.jpg
Flow-label.jpg Flow-label_over.jpg
Java-separator.jpg Main-label.jpg
Main-label_over.jpg Parent CM-label.jpg Parent
CM-label_over.jpg Using Databases-label.jpg Using
Databases-label_over.jpg
targets/cocoon2/developing/images bar-border-bottom.gif
bar-border-left.gif bar-border-right.gif
bar-border-top.gif bar-bottom-left.gif
bar-bottom-right.gif bar-top-left.gif
bar-top-right.gif bottom.gif button-asf-hi.gif
button-asf-lo.gif button-w3c-hi.gif
button-w3c-lo.gif button-xml-hi.gif
button-xml-lo.gif close.gif dot.gif
get_hello_html.png initialize_Cocoon.png join.gif
line.gif logo.gif note.gif right.gif void.gif
targets/cocoon2/developing/resources script.js
Log:
Added new books
Revision Changes Path
1.1 xml-site/targets/cocoon2/ctwig/ctwig-basic01.html
Index: ctwig-basic01.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Basic XML/XSL Transformation</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic
XML/XSL Transformation" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-basic01-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XML/XSL%20Transformation.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>Transformations</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Basic XML/XSL
Transformation</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">IMHO the most basic thing you will want to do is perform
an XSL transformation on an XML file. A typical example of this is to render
some XML as an HTML page using an XSL stylesheet.</p>
<p align="justify">Take the following XML file (<a target="_blank"
href="sample/transformations/basic01/basic01-01.xml.txt">basic01-01.xml</a>):</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0">
<page>
<title>Basic XML/XSL Transformation Example -
BASIC01-01.XML</title>
<greeting>Hello World</greeting>
</page>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">And use the following XSL to transform it to some HTML (<a
target="_blank"
href="sample/transformations/basic01/basic01-01.xsl.txt">basic01-01.xsl</a>):</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="page">
<html>
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<h1><xsl:value-of select="title"/></h1>
<p><xsl:value-of select="greeting"/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Hopefully the basic XSL makes sense however the key to
getting this served is to change setting in the sitemap.xmap file. It is this
file that determines what and how gets served. The sitemap is very powerful
and can be configured to do some very efficient things, however we will start
with slightly longwinded but simple examples so the concepts are there to be
built on.</p>
<p align="justify">You can add sections into sitemap.xmap file that comes
with C2. This has things called "pipelines" already set up. To be able to see
the result of transforming the above files together you just need to add the
following code into the last "pipeline" section:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<map:match pattern="ctwig/basic01-01.xml">
<map:generate type="file" src="ctwig/basic01-01.xml"/>
<map:transform type="xslt" src="ctwig/basic01-01.xsl"/>
<map:serialize/>
</map:match>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">What this construct does is to tell C2 to do something
when it recieves a request for <b><code><font face="courier,
monospaced">ctwig/basic01-01.xml</font></code></b>. The "something" that C2
will do is pass the <b><code><font face="courier,
monospaced">ctwig/basic01-01.xml</font></code></b> file through a "file"
generator. This basically parses the XML. The result parsed stream then gets
transformed using <b><code><font face="courier,
monospaced">ctwig/basic01-01.xsl</font></code></b> and rendered.</p>
<p align="justify">Calling <a target="_blank"
href="http://localhost:8080/cocoon/ctwig/basic01-01.xml">http://localhost:8080/cocoon/ctwig/basic01-01.xml</a>
will result in a simple HTML page being rendered.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Simple Wildcards in the Sitemap
File</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The above sitemap map construct works but you can imagine
the overhead if we had to add this code for every single XML/XSL transformation
we wanted to do. C2 makes things easier by allowing wildcards in the pattern
matching argument. If the above section is replaced with the following:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<map:match pattern="ctwig/*.xml">
<map:generate type="file" src="ctwig/{1}.xml"/>
<map:transform type="xslt" src="ctwig/{1}.xsl"/>
<map:serialize/>
</map:match>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">then C2 will substitutue the <b><code><font face="courier,
monospaced">{1}</font></code></b> meta-tag with the whatever is in the wildcard
section of the request. This means that is every XML file has a corresponding
XSL file with the same filename (before the extension) then requesting the XML
file will result in it being served.</p>
<p align="justify">This also allows us to do a kind of request re-writing
function. Take the following sitemap construct:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<map:match pattern="ctwig/*.html">
<map:generate type="file" src="ctwig/{1}.xml"/>
<map:transform type="xslt" src="ctwig/{1}.xsl"/>
<map:serialize/>
</map:match>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">This allows us to request an HTML file from the ctwig
folder. What will actually happen though is that C2 willtake the wildcard
portion and use that to look for XML and XSL files with the same filename and
use them to generate the response stream contents. For example; <a
target="_blank"
href="http://localhost:8080/cocoon/ctwig/basic01-01.html">http://localhost:8080/cocoon/ctwig/basic01-01.html</a>
will cause C2 to look for <b><code><font face="courier,
monospaced">ctwig/basic01-01.xml</font></code></b> and transform it with
<b><code><font face="courier,
monospaced">ctwig/basic01-01.xsl</font></code></b> to produce the final
page.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Using a Single XSL
File</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Consider a scenario where you have multiple XML files
which are you wish to transform in a common fashion (for example into HTML).
If your XML has been designed well and follows a common DTD there is no reason
why one XSL file can transform all the XML files. Many of the C2 examples do
this, using one, single, common XSL file for rendering all the examples to HTML
and another for transforming them into a source code view. This again is
achieved using the sitemap file with a construct similar to the following:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<map:match pattern="ctwig/*.html">
<map:generate type="file" src="ctwig/{1}.xml"/>
<map:transform type="xslt" src="ctwig/file2html.xsl"/>
<map:serialize/>
</map:match>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Here, a request for an HTML page will look for a
corresponding XML file and transform it using <b><code><font face="courier,
monospaced">ctwig/file2html.xsl</font></code></b>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<p>
<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td valign="top" width="28"><img alt="Note" border="0" hspace="0" vspace="0"
height="29" width="28" src="images/note.gif"></td><td valign="top"><font
color="#000000" face="arial,helvetica,sanserif" size="-1"><i>TODO: PROVIDE AN
EXAMPLE.</i></font></td>
</tr>
</table>
</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-basic02.html
Index: ctwig-basic02.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Basic XSP Processing</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic
XSP Processing" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-basic02-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XSP%20Processing.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>Transformations</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Basic XSP
Processing</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">XSP allows you to incorporate logic into the XML file thus
providing capabilities analogous to ASP, JSP, CFM, PHP etc. The advantage is
that the logic is not tied to the rendering since a stylesheet is separately
applied. The results of the code are wrapped up in a tag which is what can be
referenced in the stylesheet.</p>
<p align="justify">Take the following XML file (<a target="_blank"
href="sample/transformations/basic02/basic02-01.xml.txt">basic02-01.xml</a>):</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<xsp:page
xmlns:xsp="http://apache.org/xsp"
>
<page>
<xsp:logic>
String msg = "Hello world!";
</xsp:logic>
<title>
Basic XSP Processing Example - BASIC02-01.XML
</title>
<greeting>
<xsp:expr>msg</xsp:expr>
</greeting>
</page>
</xsp:page></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">We have now wrapped the previous file up with an xsp:page
tag and added some logic that assigns "Hello World" to a string and uses the
xsp:expr tag to insert that in place of the previous text in the greeting tag.
<i>Please note that this example uses "http://apache.org/xsp" as the
namespace. This is different to older C1 based examples and should be used
instead. If you do not then this examples may not work and any logicsheet
example definitely will not work.</i>
</p>
<p align="justify">To render this we need to tell Cocoon that this file is an
XSP file. This is easier if we either name the file as .xsp and/or put it in
an XSP folder. For now just put it in {TOMCAT_HOME}\webapps\cocoon\ctwig\xsp,
keeping the .xml extension. You can now add the following to the sitemap.xmap
file:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<map:match pattern="ctwig/xsp/*">
<map:generate type="serverpages" src="ctwig/xsp/{1}"/>
<map:transform type="xslt" src="ctwig/basic01-01.xsl"/>
<map:serialize/>
</map:match></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">What this does is to force any file in the ctwig/xsp
folder to be processed using the "serverpages" (XSP) generator, then rendered
with the same XSL stylesheet as in the Basic01 example. Note that we are
telling C2 that the stylesheet is in the ctwig folder.</p>
<p align="justify">You can test this code by calling <a target="_blank"
href="http://localhost:8080/cocoon/ctwig/xsp/basic02-01.xml">http://localhost:8080/cocoon/ctwig/xsp/basic02-01.xml</a>
</p>
<p align="justify">The one downside with this approach is that you can end up
with XML files that contain lots of logic along with the rest of the data.
This becomes as confusing to read as when the logic is mixed with the
presentation so does not really solve all the issues that are inherent to the
ASP/JSP type approach. The solution is to use <a
href="ctwig-basic03.html">logicsheets</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-basic03.html
Index: ctwig-basic03.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Basic XSP/Logicsheet
Processing</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic
XSP/Logicsheet Processing" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-basic03-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XSP/Logicsheet%20Processing.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>Transformations</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Basic XSP/Logicsheet
Processing</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">By allowing you to wrap logic up in the XML page, C2 has
given us a route to remove the logic from the presentation yet get the
advantages of having a dynamic pages serving technology. The only issue is
that it effectively just shifts the maintenance headache into yet another part
of the architecture. The C2 developers have been dead bright however and
incorporated the idea of a logicsheet to solve this problem.</p>
<p align="justify">A logicsheet allows you to take the logic out of the XSP
page and put it into a seperate stylesheet. You then identify the logic and
reference the identifier from your XML file. C2, using basic XML/XSL
transforming logic, then takes care of replacing the reference to the logic in
the XML with the actual logic from the logicsheet when the XSP file is
processed. The resultant XML stream can then be rendered using an XSL
stylesheet as normal. The main benefits are that:</p>
<blockquote>
<ul>
<li>XML data files are not made confused with the addition of complex
logic</li>
<li>Libraries of logic can be built up and reused</li>
<li>Maintenance of logic is made easier</li>
<li>It is really cool to do!</li>
</ul>
</blockquote>
<p align="justify">Take the following example XSP page (<a target="_blank"
href="sample/transformations/basic03/basic03-01.xml.txt">basic03-01.xml</a>)
that refers to a logicsheet:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<xsp:page
xmlns:xsp="http://apache.org/xsp"
xmlns:ctwig="http://www.pigbite.com/xsl"
>
<page>
<title>
Basic XSP/Logicsheet Processing Example - BASIC03-01.XML
</title>
<greeting>
<ctwig:greeting/>
</greeting>
</page>
</xsp:page></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">The only difference between this and the previous example
is that we have added a new namespace reference to the logicsheet
(xmlns:ctwig="http://www.pigbite.com/xsl") and replace the logic with a
reference to the an id, effectively analogous to a command or function call, in
the the logicsheet (<ctwig:greeting/>). Whatever ctwig:greeting does
will replace the reference, which is sitting inside the <greeting>
tag.</p>
<p align="justify">The logicsheet looks like this (<a target="_blank"
href="sample/transformations/logicsheet/ctwig.xsl.txt">ctwig.xsl</a>):</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsp="http://apache.org/xsp"
xmlns:ctwig="http://www.pigbite.com/xsl"
version="1.0">
<xsl:template match="ctwig:greeting">
<xsp:logic>
String msg = "Hello World";
</xsp:logic>
<xsp:expr>msg</xsp:expr>
</xsl:template>
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">You will note that the logicsheet has a reference to the
ctwig namespace. This <b>must</b> match the namespace used in the XSP page.
The logicsheet uses a standard XSL template match to find the reference to
"ctwig:greeting" and replace it with the logic.</p>
<p align="justify">
<i>Again, please note that this example uses "http://apache.org/xsp" as the
XSP namespace. This is different to older C1 based examples and should be used
instead. If you do not then any logicsheet example definitely will not
work.</i>
</p>
<p align="justify">To make this work firstly make sure that basic3-01.xml in
the {TOMCAT_HOME}\webapps\cocoon\ctwig\xsp folder. This will allow it to be
captured by the same sitemap command that is used in the previous examples.
Secondly, make sure that the ctwig logicsheet (ctwig.xsl) is in
{TOMCAT_HOME}/webapps/cocoon/WEB-INF/classes/com/pigbite/logicsheets folder.
The final thing to do is to add a reference to the logicsheet source in to C2
so it knows where to go and find it. This is done by adding the following
construct to {TOMCAT_HOME}\webapps\cocoon\cocoon.xconf:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<builtin-logicsheet>
<parameter name="prefix" value="ctwig"/>
<parameter name="uri" value="http://www.pigbite.com/xsl"/>
<parameter name="href"
value="resource://com/pigbite/logicsheets/ctwig.xsl"/>
</builtin-logicsheet></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Here we are using the "resource:" protocol to access the
logicsheet. This logicsheet could sit inside a JAR file that is referenced on
the classpath, however it can also sit under the classes folder in the WEB-INF
folder, as is the case in this example.</p>
<p align="justify">You can also use a "file:" protocol in the form:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<parameter
name="href"
value="file:///{TOMCAT_HOME}/webapps/cocoon/ctwig/logicsheet/ctwig.xsl"></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Obviously replace {TOMCAT_HOME} with whatever the actual
path is on your machine (e.g. d:\java\tomcat). Note the use of three forward
slashes after the "file:". This is so that it properly refers to the root, you
still have to include the drive letter however.</p>
<p align="justify">Again, the URI parameter <b>must</b> be the same as the
namespace declarations for everything to get properly resolved.</p>
<p align="justify">To test this code call <a target="_blank"
href="http://localhost:8080/cocoon/ctwig/xsp/basic03-01.xml">http://localhost:8080/cocoon/ctwig/xsp/basic03-01.xml</a>
</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-contributing.html
Index: ctwig-contributing.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Contributing</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide -
Contributing" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-contributing-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Contributing.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Contributing</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">I am more than happy to recieve amendments, improvements
and so on to these pages. I want the information to be as up to date and as
accurate as possible so please do not hesitate to let me know if you find
anything wrong. I would also be really pleased to receive submissions of more
tutorial documentation for C2. I hope that sections will develop for areas
such as the sitemap, configuration tutorials, development techniques and so on
which will require reasonable effort to develop however I think it would also
be good to take up the suggestion of a FAQ based on some of the common
questions that come up on the list. I will start this off soon and try and add
to it as quickly as possible.</p>
<p align="justify">I have written these pages in the xdocs format, thus it
would be really useful if any contributions are in that format (see <a
href="http://xml.apache.org/cocoon2/contrib.html">Contributing</a> for
explanation of the diff format and CVS). If you want to see examples of the
markup required please check the files in the C2 xdocs folder that comes as
part of the distribution. The DTD is in xdocs/dtd/document-v10.dtd. I am more
than happy to take contributions in email, MS Word, PDF, TXT etc however any
conversion may delay the publishing process.</p>
<p align="justify">Please email <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a> with your comments, ideas and submissions.</p>
<p align="justify">Many thanks - Jez</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-gettingstarted.html
Index: ctwig-gettingstarted.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Getting Started</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Getting
Started" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-gettingstarted-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Getting%20Started.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Getting
Started</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>What is
Cocoon?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Cocoon is a framework for delivering web sites and
applications that are based around XML technologies. In addition to being able
to do XML and XSL transformations, it provides it's own page logic templating
system called XSP which is basically analogous to ASP, JSP, PHP, CFM etc. Of
course this is XML based as well.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Why use
Cocoon?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">For me it's because it really can help you develop
applications that have content, layout and logic truly separated. ASP, JSP etc
are all OK but for any one (like me) who has had to develop and support
multi-lingual, branded, customisable and highly dynamic sites, they just do not
cut the mustard. On top of that it is free, supported by proven open source
development principles and augments other frameworks and platforms such as
EJB.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>What do I need to make it
work?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Primarily you need a servlet engine. This would be
something like (but not exclusively) <a target="_blank"
href="http://jakarta.apache.org/tomcat/index.html">Tomcat</a>, <a
target="_blank" href="http://www.jrun.com">JRun</a> or <a target="_blank"
href="http://www.weblogic.com">Weblogic</a>. This is because Cocoon is a
servlet and needs the servlet engine. Most servlet engines provide a web
(HTTP) server which is fine for development purposes but in most production
environments you would want to sit the servlet engine on a web server such as
<a href="http://www.apache.org#">Apache</a> or IIS. The only other usual
requirement is the <a href="http://java.sun.com#">Java SDK</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Where do I get it
from?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Go to <a target="_blank"
href="http://xml.apache.org/cocoon2/">http://www.apache.org/cocoon2/</a> and
download it from there. The latest distribution for any operating system
<a target="_blank"
href="http://xml.apache.org/cocoon2/dist/Cocoon-2.0rc2.zip">Cocoon 2 Release
Candidate 2</a>. This file contains the Cocoon code, samples, documentation
and the Java libraries that enable the Cocoon to work such as Xerces and
Xalan.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>What assumptions have you
made?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">I assume no knowledege of Cocoon but:</p>
<blockquote>
<ul>
<li>
I do assume that the reader has
a basic understanding of XML and what XSL is. For more information and
tutorials about XML/XSL please go to somewhere like <a target="_blank"
href="http://www.xml.org">www.xml.org</a> or <a target="_blank"
href="http://www.xml.com">www.xml.com</a>
</li>
<li>
I assume that Cocoon is to be
configured on a Windows NT or 2000 machine, the machine has Apache 1.3.19,
Tomcat 3.2.3 and Java 1.3 running
</li>
<li>
I assume a basic familiarity
with the above environment
</li>
<li>
I hope that if you are working
on a different environment you will find the time to <a
href="ctwig-contributing.html">advise</a> me of any differences in process so I
can augment the documentation. I also hope that if you find a mistake in the
documentation here or you know of a better way of doing something then again
you will <a href="ctwig-contributing.html">relay</a> your thoughts so I can
make this resource as useful as possible.
</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-installing.html
Index: ctwig-installing.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Installing</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide -
Installing" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-installing-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Installing.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Installing Cocoon
2</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Installing C2 is not a complete nightmare. I found that
following the instructions in the documentation worked just fine. The only
issue here is that by following the instructions you end up with a WAR file and
this is no good for development because you cannot add your own code or make
changes to existing files without repackaging it all up.</p>
<p align="justify">To get around these problems you need to install it as an
unpacked application and get your servlet engine to recognise it as such.</p>
<p align="justify">Please note the assumptions about platform, user knowledge
and existing applications in the <a href="ctwig-why.html">Why?</a> section and
also note thatw herever {TOMCAT_HOME}, {COCOON_HOME} or {APACHE_HOME} appears
it should be replaced with the path it is installed into on your machine (e.g.
d:\java\cocoon\2.02rc2 for {COCOON_HOME}).</p>
<p align="justify">
<b>I'm really sorry, but at the moment these examples relate to C2rc2, Tomcat
3.2.3 and Apache 1.3.19 on Windows 2000.</b> It is probably all the same for
any operating system (remember, that is the promise of Java and XML). I would
like to do TC4/Unix notes but do not have the time at the momement. If you can
help then please <a href="ctwig-contributing.html">contribute</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Download Cocoon
2</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The latest distribution for any operating system is <a
target="_blank"
href="http://xml.apache.org/cocoon2/dist/Cocoon-2.0rc2.zip">Cocoon 2 release
candidate 2</a>. This file contains the Cocoon code, samples, documentation
and the Java libraries that enable the Cocoon to work such as Xerces and Xalan.
The file is in ZIP format. When you have downloaded it then extract it to
somewhere. This path becomes your {COCOON_HOME}.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Basic
Configuration</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Follow the instructions on building C2 as per the
installation guide that comes with C2. It can also be found <a target="_blank"
href="http://xml.apache.org/cocoon2/install.html">here</a> as well. Obviously
since you have got the ZIP distribution you do not have to do the CVS bit thus
you can start at the Building Apache Cocoon 2 section. Do each of the
following steps:</p>
<blockquote>
<ul>
<li>Set JAVA_HOME</li>
<li>Create the WAR using
<code><font face="courier,
monospaced">.\build.bat -Dinclude.webapp.libs=yes webapp</font></code>
What this does is to create the
web application and packaged cocoon.war under the {COCOON_HOME}/build/cocoon
folder.
</li>
<li>Optionally make the SQL examples work out of the box. If you perform
this step using
<code><font face="courier,
monospaced">.\build.bat -Dinclude.webapp.libs=yes
-Dinstall.war={{TOMCAT_HOME}\webapps} install</font></code>
then it will basically copy the
cocoon.war file across to the Tomcat webapps folder ready for immediate use.
</li>
<li>Add any additional components (I like FOP for example)</li>
</ul>
</blockquote>
<p align="justify">Next, copy the xerces_xxx.jar to {TOMCAT_HOME}\lib, delete
the tomcat jaxp jar and rename the parser.jar as instructuted.</p>
<p align="justify">An important point is that if you are running Tomcat as an
NT service then you will need to change {TOMCAT_HOME}\conf\wrapper.properties
to reflect the classpath changes. Make sure xerces is first in line, remove
(or comment out) the jaxp and rename the parser.jar reference. This is all
done with the wrapper.class_path bit.</p>
<p align="justify">If you did run the second build.bat command above or if
you copy cocoon.war into {TOMCAT_HOME}\webapps then you can check that C2 is
working. Restart Tomcat and http://localhost:8080/cocoon should work. Note at
this point Apache is doing nowt - Tomcat is doing the http serving. If there
are any problems then check that the tomcat classpath in wrapper.properties is
correct and you have done the work in {TOMCAT_HOME}\lib as descibed above.</p>
<p align="justify">One other situation that came to light in C2 RC1 (as
opposed to RC1a and RC2) was that the build file was including a reference to
the LDAP transformer classes and since the JAR is not included then you would
see an error when starting C2 along the lines of:</p>
<p align="justify">org.apache.cocoon.ProcessingException: Exception in
Handler: org.apache.avalon.framework.component.ComponentException: Could not
set up Component for hint: org\apache\cocoon\www\sitemap_xmap</p>
<p align="justify">This has been resolved in C2 RC1a and RC2 by making
changing the offending include line in build.xml. Have a look and see. You
will need to change this line if you want to use the LDAP transformer as per
the instructions in the RC1a build.xml file.</p>
<p align="justify">One other good point about testing, especially if you are
upgrading, is to delete the Cocoon working files in {TOMCAT_HOME}\work. If
left in between upgrades, you can easily get precompiled code sent instead of
the new pages being compiled and served.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Configure C2 to run in Unpackaged
Mode</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">To enable you to easily develop your own C2 applications
and configure C2 it must sit as an unpackaged application rather than as a
packaged WAR file. To make this happen...</p>
<p align="justify">Stop Tomcat</p>
<p align="justify">Delete {TOMCAT_HOME}\webapps\cocoon.war.</p>
<p align="justify">Create {TOMCAT_HOME}\webapps\cocoon folder. If you
performed the test above using the war then this folder will already exist and
you can skip the next instruction.</p>
<p align="justify">Copy {COCOON_HOME}\build\cocoon\webapp\* to
{TOMCAT_HOME}\webapps\cocoon</p>
<p align="justify">Restart tomcat and try http://localhost:8080/cocoon. The
welcome page should come up!</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Telling Apache about
Cocoon</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Note this assumes that mod_jk has been installed and
configured.</p>
<p align="justify">Stop Apache and Tomcat</p>
<p align="justify">Make sure that {APACHE_HOME}\conf\httpd.conf has the
following lines (assuming you are using the ajp12 adaptor) at the end:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
include "{TOMCAT_HOME}\conf\mod_jk.conf-auto"
JkMount /cocoon/* ajp12
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">The first line includes the an Apache config file that
Tomcat automatically generates. This has all the alias directives for each of
the contexts in {TOMCAT_HOME}\conf\server.xml. The second line tells anything
requested to /cocoon to be sent to Tomcat (and then onwards to Cocoon).</p>
<p align="justify">Restart tomcat THEN apache. The reason for this way round
is apache relies on the {TOMCAT_HOME}\conf\mod_jk.conf-auto which is built by
Tomcat everytime it starts.</p>
<p align="justify">You can then try http://localhost/cocoon. It should
work!</p>
<p align="justify">You are now ready to look at the examples and start doing
some <a href="ctwig-transformations.html">basic transformations</a>
</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Other
Configurations</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">I am hoping to include more details on other
configurations over time. If you can help then please <a
href="ctwig-contributing.html">contribute</a>. You can also check out other
information in the <a href="ctwig-resources.html">resources</a> section.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-resources.html
Index: ctwig-resources.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Resources</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide -
Resources" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-resources-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Resources.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Resources</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Apache Cocoon 2 Web
Site</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The main place is <a
href="http://xml.apache.org/cocoon2/"><code><font face="courier,
monospaced">http://xml.apache.org/cocoon2/</font></code></a>
</p>
<p align="justify">The C2 documentation is still (and always will be) under
development. There is a lot of useful information there and it goes into a lot
more detail than here. Read it and digest it. I am certainly doing that as I
go along and quite quickly understanding more of the architecture and concepts.
I will seek to distill the main points into this site, but the main place is
still the supplied documentation.</p>
<p align="justify">You will also find the documentation in your C2
installation under {COCCON_HOME}/docs/</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Apache Cocoon Users Mail
List</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<a href="mailto:[EMAIL PROTECTED]">Subscribe</a> to the Cocoon users mail
list! This is a great resource for asking and answwering questions. For more
details, and pointers to other related lists, see the <a target="_blank"
href="http://xml.apache.org/cocoon2/mail-lists.html">documentation</a>.</p>
<p align="justify">You can also access an excellent, searchable, archive of
the users mail list at <a target="_blank"
href="http://marc.theaimsgroup.com/?l=xml-cocoon-users">The Aims Group</a>.
Use this 'cos lots of things are there! Other list archive information is
available in the <a target="_blank"
href="http://xml.apache.org/cocoon2/mail-archives.html">documentation</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Other Pages</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<blockquote>
<ul>
<li>David Parry has put together a really good <a target="_blank"
href="http://www.suranyami.com/XSPtutorial/">XSP Tutorial</a> which is C1.8
based but has all the basic principles you need for C2.</li>
<li>Michael Bierenfeld directed me to a cocoon-users <a target="_blank"
href="http://mailman.real-time.com/pipermail/cocoon-users/2001-June/016150.html">posting</a>
that has an example taglib (logicsheet) download. Thanks to Gary Clark for
the posting and example.</li>
<li>
<a href="mailto:[EMAIL PROTECTED]">Cyril Cambien</a> has developed more
examples at his <a target="_blank"
href="http://chello.sourceforge.net/">CHello!</a> (Cocoon Hello!) site.</li>
<li>
<a href="mailto:[EMAIL PROTECTED]">Lajos Moczar</a> has developed some more
advanced hints and tips at his <a target="_blank"
href="http://www.galatea.com/flashguides/cocoon-tips-2.xml">flashguides</a>
site.</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Credits</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Although I have constructed these pages, the basic
information I have presented is thanks to users of the above mailing list,
particuarly Giacomo Pati, Thomas Hofer and Michael Bierenfeld. If you have
anything to add then please do <a
href="ctwig-contributing.html">contribute</a>!</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-transformations.html
Index: ctwig-transformations.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Transformations</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide -
Transformations" border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-transformations-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Transformations.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>Transformations</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Serving it up</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Once C2 is installed you want to be able to serve pages.
It's all too easy to jump into doing complex XML/XSL/Logicsheet stuff without
understanding the basics of how it works. When I failed in this I changed my
approach to trying to do the simplest things then build up. This way has
enforced some concepts and most importantly started me on the way to becoming
familiar with the sitemap.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The Sitemap</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The bighgest change I have seen in C2 over C1.8 is the
Sitemap. This file ({TOMCAT_HOME}\webapps\cocoon\sitemap.xmap) contains a load
of XML that tells Cocoon what code handles what type of requests and what
actions should take place when a file is requested. It looks to be really
powerful and as I understand it more I will seek to open it up to more
understanding. For the time being it is sufficent to know that you have to do
stuff with this file before anything will work!</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The Building
Blocks</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The links below will take you to examples of using C2 to
serve XML that increase in complexity and demonstrate some of the techniques
that I am using. If you know better ways of doing these things or can add
something new please <a href="ctwig-contributing.html">contribute</a> and I
will make the examples better. One final point - these pages are being served
from simple free web space. C2 is not running behind this so I cannot provide
working results of my examples on this site. You will have to create the files
and get them to work yourself for the time being.</p>
<p align="justify">
<i>Please note that, unless otherwise indicated, all my examples assume that
the files are in a folder called</i> <b><code><font face="courier,
monospaced">ctwig</font></code></b> <i>underneath</i> <code><font
face="courier, monospaced">{TOMCAT_HOME}/webapps/cocoon/</font></code>
</p>
<blockquote>
<ul>
<li>
<a href="ctwig-basic01.html">Basic XML/XSL Transformation (Ref: BASIC01)</a>
</li>
<li>
<a href="ctwig-basic02.html">Basic XSP Processing (Ref: BASIC02)</a>
</li>
<li>
<a href="ctwig-basic03.html">Basic XSP/Logicsheet Processing (Ref:
BASIC03)</a>
</li>
</ul>
</blockquote>
<p align="justify">You can find links to more information in the <a
href="ctwig-resources.html">resources</a> section.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/ctwig-why.html
Index: ctwig-why.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide - Why?</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Why?"
border="0" vspace="0" hspace="0"
src="ctwig/graphics/ctwig-why-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Why.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Why?</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">If nothing else these pages form my own personal
documentation of how to use C2 from the ground up. I run a team of developers
and as much as I encourage them to jump into technology and problem solve
themselves, I also want them to know when to ask for help and to do it before
they have wasted hours of time banging their heads against brick walls. With a
technology that is new to them, which C2 is, these pages can help them get more
productive more quickly. I am learning C2 too so I don't want to fall into the
same trap.</p>
<p align="justify">I installed C2 for the first time on Thursday 20th
September 2001 and I wanted to write down what I did so my team could benefit.
In the course of asking questions on the xml-cocoon-users mail list I realised
that others were having the same problems and, more importantly, the answers
were all there via the generous nature of more experienced list users. To
support my team, the wider development community and pay back in kind the
support of others I wanted to make my notes available.</p>
<p align="justify">Given that I am still getting some basic stuff running
these pages are going to be like a diary of my work for the first few weeks but
I hope that something good comes out of it. If you find ways of doing things
better, have your own notes, want to put me right on something or just want to
stop it being a one man ego trip then please <a
href="ctwig-contributing.html">contribute</a>.</p>
<p align="justify">As a bit of technical background... I have been working
for almost the past five years developing web based e-learning solutions,
firstly a learning mangement system (Solstra - <a target="_blank"
href="http://www.solstra.com">www.solstra.com</a>), then an e-learning portal
(easycando.com - <a target="_blank"
href="http://www.easycando.com">easycando.com</a>) and more recently content
for <a target="_blank" href="http://www.knowledgepool.com">KnowledgePool</a>.
Right from day one, after trying and discarding ASP and Cold Fusion, we saw the
need to use templates that could seperate logic from layout. We built our own
Java based architecture then moved it from templates to servlets as that
technology progressed. By using a property file based system along with
classes that abstracted the HTML coding side, we built configurable,
multi-lingual solutions. The basic method still contains weaknesses and I was
keen to see how XML/XSL could help.</p>
<p align="justify">About a year ago we developed some prototype code that
used JSP, beans, XML and XSL. It worked quite well but then things changed, I
moved jobs and did not do anything more other than mull things over in my head.
More recently I have had to start architecting tools to help my company
develop learning content and I revisited my earlier thoughts. I was reading a
"Java and XML" by Brett McLaughlin (published by O'Reilly) and it talked about
Cocoon. When I saw the taglib (logicsheet) idea I realised here was a platform
I could work with. I tried 1.8 as it was production code and then moved to 2
because I saw the internationalisation capabilities and thought it is probably
close to becoming a fully released product.</p>
<p align="justify">I am now trying to build some prototype code and realising
that sharing my experiences might help others. At worst it'll be how not to do
it!</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/ctwig/index.html
Index: index.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>cTwIG - Cocoon Two Idiots Guide</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide"
border="0" vspace="0" hspace="0"
src="ctwig/graphics/index-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0"
src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Home')"
onMouseOut="rolloverOff('Home')" href="index.html"><img
onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg',
'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120"
height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Why')"
onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img
onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg',
'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120"
height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')"
onMouseOut="rolloverOff('Getting Started')"
href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started',
'graphics/Getting Started-label_over.jpg', 'graphics/Getting
Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120"
height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting
Started"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')"
onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img
onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg',
'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing"
width="120" height="12" border="0" src="graphics/Installing-label.jpg"
alt="Installing"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')"
onMouseOut="rolloverOff('Transformations')"
href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations',
'graphics/Transformations-label_over.jpg',
'graphics/Transformations-label.jpg');" vspace="0" hspace="0"
name="Transformations" width="120" height="12" border="0"
src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')"
onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img
onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg',
'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources"
width="120" height="12" border="0" src="graphics/Resources-label.jpg"
alt="Resources"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')"
onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img
onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg',
'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing"
width="120" height="12" border="0" src="graphics/Contributing-label.jpg"
alt="Contributing"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Welcome!</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Welcome to cTwIG - the Cocoon Two Idiots Guide. These
pages are the result of organically pulling together my experiences of
installing, using and developing for Apache Cocoon 2 (C2). It is intended to
provide a quick guide for other new users of C2 so that they can get up and
running without needing to trouble the more experienced users out there. More
than that, I want to support and repay in a practical way the spirit of the
user community that indulges my sometimes very dim questions. For any further
background please see the <a href="ctwig-why.html">why?</a> page</p>
<p align="justify">Hopefully you will note that these pages are highly
dynamic in the sense that I am still learning much of the basics myself, thus
new and better ways of doing the things I have done are bound to appear in
addition to explanations of the new features that I make use of.</p>
<p align="justify">Please look around and feel free to <a
href="ctwig-contributing.html">contribute</a> in any way you like. I am not
precious about this resource - I just want to make our collective C2 lives more
easy, so all comments are welcome!</p>
<p align="justify">One final point... All the work I am doing is on Windows
2000 boxes thus I cannot vouch for validity of my rantings on any Unix or other
Windows (95, 98, NT4, ME etc) box. Hopefully this will change over time but
for the time being this will have to do.</p>
<p align="justify">I hope these pages can be of use!</p>
<p align="justify">
<a href="mailto:[EMAIL PROTECTED]">Jeremy Aston</a>
</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Disclaimer</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Disclaimer type thang... I will always sincerely aim that
all the information here is as accurate. If I make an errors I promise to put
them right as soon as I know about them, please help by <a
href="ctwig-contributing.html">contributing</a> if and when you see anything
that is wrong or misleading. Please always check the official documentation
and take that as the most accurate. Please always ensure you have backups of
critical files. I cannot guarantee that none of the instructions on my pages
could harm your system but all the information is there in good faith and will
be changed if it is found to be wrong. Please take your share of the
responsibility and act professionally and with care. Ta ever so! Jez.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Contributing-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Contributing-label_over.jpg
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/graphics/Home-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Home-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Installing-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Installing-label_over.jpg
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/graphics/Main-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Main-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Resources-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Resources-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Transformations-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Transformations-label_over.jpg
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/graphics/Why-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/Why-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/graphics/cTwIG-separator.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/images/bar-border-bottom.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bar-border-left.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/images/bar-border-right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bar-border-top.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bar-bottom-left.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/ctwig/images/bar-bottom-right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bar-top-left.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bar-top-right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/bottom.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-asf-hi.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-asf-lo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-w3c-hi.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-w3c-lo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-xml-hi.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/button-xml-lo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/close.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/dot.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/join.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/line.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/logo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/note.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/images/void.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/ctwig/resources/script.js
Index: script.js
===================================================================
rolloverImagesOn=new Array();
rolloverImagesOff=new Array();
function rolloverOn(name) {
if(document.images[name] && rolloverImagesOn[name])
document.images[name].src=rolloverImagesOn[name].src;
}
function rolloverOff(name) {
if(document.images[name] && rolloverImagesOff[name])
document.images[name].src=rolloverImagesOff[name].src;
}
function rolloverLoad(name,on,off) {
rolloverImagesOn[name]=new Image();
rolloverImagesOn[name].src=mangle(on);
rolloverImagesOff[name]=new Image();
rolloverImagesOff[name].src=mangle(off);
}
function mangle(name) {
name = name.replace(/:/g, "_");
name = name.replace(/\?/g, "_");
name = name.replace(/\"/g, "\'");
return name;
}
1.1
xml-site/targets/cocoon2/ctwig/sample/transformations/basic01/basic01-01.xml.txt
Index: basic01-01.xml.txt
===================================================================
<?xml version="1.0"?>
<page>
<title>Basic XML/XSL Transformation Example - BASIC01-01.XML</title>
<greeting>Hello World</greeting>
</page>
1.1
xml-site/targets/cocoon2/ctwig/sample/transformations/basic01/basic01-01.xsl.txt
Index: basic01-01.xsl.txt
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="page">
<html>
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<h1><xsl:value-of select="title"/></h1>
<p><xsl:value-of select="greeting"/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
1.1
xml-site/targets/cocoon2/ctwig/sample/transformations/basic02/basic02-01.xml.txt
Index: basic02-01.xml.txt
===================================================================
<?xml version="1.0"?>
<xsp:page
xmlns:xsp="http://apache.org/xsp"
>
<page>
<xsp:logic>
String msg = "Hello World";
</xsp:logic>
<title>
Basic XSP Processing Example - BASIC02-01.XML
</title>
<greeting>
<xsp:expr>msg</xsp:expr>
</greeting>
</page>
</xsp:page>
1.1
xml-site/targets/cocoon2/ctwig/sample/transformations/basic03/basic03-01.xml.txt
Index: basic03-01.xml.txt
===================================================================
<?xml version="1.0"?>
<xsp:page
xmlns:xsp="http://apache.org/xsp"
xmlns:ctwig="http://www.pigbite.com/xsl"
>
<page>
<title>
Basic XSP/Logicsheet Processing Example - BASIC03-01.XML
</title>
<greeting>
<ctwig:greeting/>
</greeting>
</page>
</xsp:page>
1.1
xml-site/targets/cocoon2/ctwig/sample/transformations/logicsheet/ctwig.xsl.txt
Index: ctwig.xsl.txt
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsp="http://apache.org/xsp"
xmlns:ctwig="http://www.pigbite.com/xsl"
version="1.0">
<xsl:template match="ctwig:greeting">
<xsp:logic>
String msg = "Hello World";
</xsp:logic>
<xsp:expr>msg</xsp:expr>
</xsl:template>
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
1.1 xml-site/targets/cocoon2/developing/avalon.html
Index: avalon.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Avalon for Apache Cocoon</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Avalon for Apache Cocoon" border="0"
vspace="0" hspace="0"
src="developing/graphics/avalon-header.jpg_label=Avalon%20for%20Apache%20Cocoon.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Goal</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">This document tries to give the basic knowledge of Avalon
that is
necessary to understand Cocoon.</p>
<p align="justify">People that are trying to understand Avalon in depth, will
probably
not be much helped by this document. But if you want to
understand Cocoon,
you have to have a basic grasp of Avalon. </p>
<p align="justify">The document also contains the basic configuration steps
for
configuring Avalon components within Cocoon.</p>
<p align="justify">Much of this document is copied and pasted from original
Avalon
documentation. However, I hope that the fact that all things
relevant for
Cocoon are put together in one place, will help you to
understand Cocoon
faster.</p>
<p align="justify">For people wishing to learn Avalon in-depth,
<a
href="http://jakarta.apache.org/avalon/developing/index.html">this is your
starting
point</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">For a mission statement of Apache Avalon, please read
<a href="http://jakarta.apache.org/avalon/index.html">the
Avalon
homepage</a>.</p>
<p align="justify">In short, Avalon tries to take design efforts away from
server-side
programmers by providing a framework that </p>
<blockquote>
<ul>
<li>provides basic working classes;</li>
<li>provides interfaces to allow different efforts to be integrated
more easily.</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The classes and
interfaces</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">These classes and interfaces are extensively used by
Cocoon:</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>ComponentManager</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.framework.component.ComponentManager</font></code>
</p>
<p align="justify">A <code><font face="courier,
monospaced">ComponentManager</font></code> selects <code><font face="courier,
monospaced">Component</font></code>s
based on a role. The contract is that all the
<code><font face="courier, monospaced">Component</font></code>s implement
the differing roles and there is one <code><font
face="courier, monospaced">Component</font></code> per role. If you
need to select on of many <code><font face="courier,
monospaced">Component</font></code>s that implement the same role,
then you need to use a <code><font face="courier,
monospaced">ComponentSelector</font></code>. Roles are the full
interface name.</p>
<p align="justify">A role is better understood by the analogy of a play.
There are many
different roles in a script. Any actor or actress can
play any given part and
you get the same results (phrases said, movements
made, etc.), but the exact
nuances of the performance is different.</p>
<p align="justify">The <code><font face="courier,
monospaced">Cocoon</font></code> class implements e.g. the
<code><font face="courier,
monospaced">ComponentManager</font></code> interface.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Composable</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.framework.component.Composable</font></code>
</p>
<p align="justify">A <code><font face="courier,
monospaced">Composer</font></code> is a class that need to connect to software
components using a "role" abstraction, thus not
depending on particular
implementations but on behavioral interfaces. </p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Component</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.framework.component.Component</font></code>
</p>
<p align="justify">This interface identifies classes that can be used as
<code><font face="courier,
monospaced">Components</font></code> by a <code><font face="courier,
monospaced">Composer</font></code>. </p>
<p align="justify">A <code><font face="courier,
monospaced">Component</font></code> is the basic building block of Avalon. When
a class implements this interface, it allows itself to
be managed by a
<code><font face="courier,
monospaced">ComponentManager</font></code> and used by an outside element
called a
<code><font face="courier,
monospaced">Composer</font></code>. The <code><font face="courier,
monospaced">Composer</font></code> must know what type of
<code><font face="courier,
monospaced">Component</font></code> it is accessing, so it will re-cast the
<code><font face="courier,
monospaced">Component</font></code> into the type it needs. </p>
<p align="justify">
<code><font face="courier, monospaced">Component</font></code>s in Cocoon are
e.g. those defined in
<code><font face="courier,
monospaced">cocoon.xconf</font></code>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.framework.configuration.Configuration</font></code>
</p>
<p align="justify">
<code><font face="courier, monospaced">Configuration</font></code> is a
interface encapsulating a
configuration node used to retrieve configuration
values. This is a "read only"
interface preventing applications from modifying their
own configurations. The
contract surrounding the <code><font face="courier,
monospaced">Configuration</font></code> is that once it is created,
information never changes. The <code><font
face="courier, monospaced">Configuration</font></code> is built by the
<code><font face="courier,
monospaced">ConfigurationBuilder</font></code>.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Configurable</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.framework.configuration.Configurable</font></code>
</p>
<p align="justify">
<code><font face="courier, monospaced">Configurable</font></code> is a
interface describing a component which
can be configured. This component gets a <code><font
face="courier, monospaced">Configuration</font></code>
object as input.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>ConfigurationBuilder</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.ConfigurationBuilder</font></code>
</p>
<p align="justify">A <code><font face="courier,
monospaced">ConfigurationBuilder</font></code> builds
<code><font face="courier,
monospaced">Configuration</font></code>s.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Most available Avalon components are configured in the
cocoon.xconf.</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Pooling
configuration</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Avalon now incorporates a couple of modifiers for a
Component
definition that allows you to control the number of
Components
in a pool, and how quickly it grows. This is
especially helpful
in Cocoon where the defaults don't always work well.</p>
<p align="justify">The magic attributes are "pool-min", "pool-max", and
"pool-grow".
The defaults are:</p>
<blockquote>
<ol>
<li>pool-max: 8</li>
<li>pool-min: 2</li>
<li>pool-grow: pool-min (2)</li>
</ol>
</blockquote>
<p align="justify">What this means is that the pool for the default component
initially
contains 2 instances, and if demand exceeds that the
pool will increase
by two components at a time up to 8 instances. Beyond
that the pool
turns into a factory in that new Component instances
are created, but
destroyed when they are returned. This is a
performance issue--but
it does manage the number of instances available at one
time.</p>
<p align="justify">Please note that if
not specified, "pool-grow" always matches "pool-min".
If not specified
"pool-min" always equals "2". If you specify the
minimum being higher
than the maximum, then the maximum will match the
minimum, and the pool
will be fully filled on initialization.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/developing/datasources.html
Index: datasources.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Using Databases in Apache Cocoon</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Using Databases in Apache Cocoon"
border="0" vspace="0" hspace="0"
src="developing/graphics/datasources-header.jpg_label=Using%20Databases%20in%20Apache%20Cocoon.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>How do I choose my
database?</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
Apache Cocoon is flexible in the way it allows you to make connections to
a database. There are basically two ways: by redefining all the
connection
parameters in each page you use a database, or using a pooled connection.
The first method is slow and doesn't scale well. The second method is
more
scalable, and depending on your database will realize true improvements.
</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Installing the
Driver</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
Independent of how you choose to get and maintain your JDBC
connections,
you have to load the driver so Cocoon can use it (unless you are using
a J2EE container--more on that later). This is an init parameter in
your web.xml file. The following snippet will show you how:
</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<init-param>
<param-name>load-class</param-name>
<param-value>
<!-- For PostgeSQL Database: -->
postgresql.Driver
<!-- For Oracle Database: -->
oracle.jdbc.driver.OracleDriver
</param-value>
</init-param>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">
You can place as many Driver classes in this parameter you want. They
are separated by white space or commas.
</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Defining a Data
Source</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
Cocoon allows you to specify a pooled data source that you can use
for throughout the Cocoon system. There are two different types of
data sources: JDBC and J2EE. The difference is in who controls the
connection. The JDBC data source lets Cocoon handle all the pooling
logic. The J2EE data source tells Cocoon how to pull the DataSource
object from a J2EE container (thats Java 2 Enterprise Edition)--the
major caveat is that Cocoon must be installed as part of a Enterprise
Application.
</p>
<p align="justify">
The following snippet of cocoon.xconf shows the section where the
DataSourceComponent is specified. You can have more than one in
this location. The code will have one connection for the JDBC data
source, and one connection for the J2EE data source.
</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<datasources>
<jdbc name="MyConnectionName">
<pool-controller min="5" max="10"/>
<dburl>jdbc:oracle:thin:@localhost:1521:mydatabase</dburl>
<user>mylogin</user>
<password>myPassword</password>
</jdbc>
<j2ee name="MyJ2eeConnection">
<dbname>cocoonDB</dbname>
</j2ee>
</datasources>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The JDBC Connection
Properties</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
The JDBC connection has up to five different properties--but only one
is absolutely required.
</p>
<blockquote>
<ul>
<li>
dburl: This is absolutely required. Without it JDBC can't connect
to the database.
</li>
<li>
user: This is only required if the database admin requires you to
log in to the database.
</li>
<li>
password: This is only required if the database admin requires a
password to connect to the database.
</li>
<li>
pool-controller: This has two parameters with defaults. If it is
not specified, the defaults are used.
<blockquote>
<ul>
<li>
min: The minimum number of connections the pool will keep
available at one time. Defaults to zero (0).
</li>
<li>
max: The maximum number of connections the pool will have
created at the same time. Defaults to three (3).
</li>
<li>
oradb: If you have an Oracle database, you should add the attribute
"oradb" and set it to true.
</li>
</ul>
</blockquote>
</li>
<li>
auto-commit: If you need to ensure an autocommit is set to true or
false, then create the "auto-commit" element.
</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The J2EE Connection
Property</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
The J2EE connection has only one property and it is absolutely
required. Cocoon uses JNDI to look up the DataSource with the
name you specified in "dbname".
</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Using the Data Source
Component</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
No matter how you defined your DataSourceComponent, you access
it the same way. Because The DataSourceComponent is a Component,
your class needs to implement the Avalon Composer interface. The
Avalon Framework will give your class a ComponentManager. At that
point, it is up to you how and when you pull the DataSourceComponent
out of the ComponentManager.
</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentSelector;
import org.apache.cocoon.Roles;
import org.apache.avalon.excalibur.datasource.DataSourceComponent;
import java.sql.Connection;
// .... Skip a lot of lines until we are in the method you use
// to initialize the DataSourceComponent ....
private DataSourceComponent datasource;
public void compose(ComponentManager manager) {
ComponentSelector selector =
(ComponentSelector) manager.lookup(Roles.DB_CONNECTION);
this.datasource = (DataSourceComponent)
selector.select("MyConnectionName");
}
// .... Skip more lines until we actually need to use the datasource
private void meMethod() {
Connection myConnection = this.datasource.getConnection();
// .... perform SQL code here
myConnection.close();
}
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">
Notice that once you obtained your connection, you did nothing out of
the
ordinary to return the connection to the pool? This is by design, and
a
result of the JDBC specification. Basically the JDBC specification
states
that if a driver implements pooled connections, then it should not
alter
the way those connections are used. This maintains the portability of
your code.
</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/developing/extending.html
Index: extending.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Extending Apache Cocoon</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Extending Apache Cocoon" border="0"
vspace="0" hspace="0"
src="developing/graphics/extending-header.jpg_label=Extending%20Apache%20Cocoon.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">If you want to extend the functionality of Apache Cocoon,
it may be unclear
how to achieve your goal. This page tries to indicate when to
write what, and
to give an overview of what already exists (so you don't
duplicate other's
efforts).</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>When to write a
Generator</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">From the sitemap documentation: "A <code><font
face="courier, monospaced">Generator</font></code> generates
XML content as SAX events and initializes the pipeline
processing. "</p>
<p align="justify">Thus a <code><font face="courier,
monospaced">Generator</font></code> is the starting point of a pipeline: it
produces the first SAX events on which all other components
of the pipeline are
triggered.</p>
<p align="justify">You may want to write a <code><font face="courier,
monospaced">Generator</font></code> if you want some other
basis for your SAX events (maybe you want a SAX event every
time the
temperature of your CPU changes?) However, before writing a
<code><font face="courier,
monospaced">Generator</font></code> from scratch, it may be worthwhile to have
a look at
<a href="#xsp">XSP</a>, which can create a <code><font
face="courier, monospaced">Generator</font></code> for
you.</p>
<p align="justify">Existing <code><font face="courier,
monospaced">Generator</font></code>s are: </p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">DirectoryGenerator</font></code> -
Generates an XML directory
listing.</li>
<li>
<code><font face="courier, monospaced">FileGenerator</font></code> - Does the
job of an XML parser: read an
XML file and outputs SAX events.</li>
<li>
<code><font face="courier, monospaced">HTMLGenerator</font></code> - Takes an
HTML URL, makes an XHTML of
it, and outputs the SAX events caused by this
XHTML.</li>
<li>
<code><font face="courier, monospaced">ImageDirectoryGenerator</font></code>
- An extension of
DirectoryGenerators that adds extra attributes for
image files. </li>
<li>
<code><font face="courier, monospaced">PhpGenerator</font></code> - Allows
PHP to be used as a generator.
Builds upon the PHP servlet functionality. Overrides
the output method in
order to pipe the results into SAX events.</li>
<li>
<code><font face="courier, monospaced">RequestGenerator</font></code> -
[FIXME: This looks like just
outputing the request headers, the request parameters
and the configuration
parameters. But I don't see any use of it (besides
debugging and
demonstration). Are there other situations in which
you might want to use
this?]</li>
<li>
<code><font face="courier, monospaced">ServerPagesGenerator</font></code> -
Makes a <code><font face="courier, monospaced">Generator</font></code>
at compile time, based on the <code><font
face="courier, monospaced">src</font></code> file you define in the sitemap.
This one is responsible for making your XSP pages
work.</li>
<li>
<code><font face="courier, monospaced">StatusGenerator</font></code> -
Generates an XML representation of
the current status of Cocoon. This can be considered
"for administration use",
i.e. your application probably won't deal with this
one.</li>
</ul>
</blockquote>
<p align="justify">All these classes are in the <code><font face="courier,
monospaced">org.apache.cocoon.generation</font></code>
package. In the same package, you find following helper
classes and
interfaces:</p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">Generator</font></code> - The
interface you have to implement if you
want to write a <code><font face="courier,
monospaced">Generator</font></code>.</li>
<li>
<code><font face="courier, monospaced">AbstractGenerator</font></code> -
Extend this one for easier
building of your own <code><font face="courier,
monospaced">Generator</font></code>.</li>
<li>
<code><font face="courier, monospaced">AbstractServerPage</font></code> -
[FIXME: This seems to be intended
as basis for the <code><font face="courier,
monospaced">ServerPagesGenerator</font></code>, but it seems to be obsolete
now?]</li>
<li>
<code><font face="courier, monospaced">ComposerGenerator</font></code> - Can
be used as base class if you
want your <code><font face="courier,
monospaced">Generator</font></code> to be an <a href="avalon.html">Avalon
Composer</a>.</li>
<li>
<code><font face="courier, monospaced">ServletGenerator</font></code> - If
you want to generate servlets.
This is the base class for the <code><font face="courier,
monospaced">ServerPagesGenerator</font></code>.</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>When to write a
Transformer</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Let's start again from the sitemap documentation: "A
<code><font face="courier,
monospaced">Transformer</font></code> transforms SAX events in SAX events." In
other words,
a <code><font face="courier,
monospaced">Transformer</font></code> outputs SAX events based on SAX events it
receives.</p>
<p align="justify">You can imagine a <code><font face="courier,
monospaced">Transformer</font></code> doing many things, from
XSLT processing over database querying to sending mail (and
much further, of
course).</p>
<p align="justify">These <code><font face="courier,
monospaced">Transformer</font></code>s are standard available:</p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">LogTransformer</font></code> - This is
a class that can be plugged
into a pipeline to print the SAX events which passes
through this
<code><font face="courier,
monospaced">Transformer</font></code> in a readable form to a file. This
<code><font face="courier,
monospaced">Transformer</font></code>'s main purpose is debugging.</li>
<li>
<code><font face="courier, monospaced">SQLTransformer</font></code> - Can be
used for querying a SQL
database.</li>
<li>
<code><font face="courier, monospaced">XalanTransformer</font></code> -
Probably the most intuitive
<code><font face="courier,
monospaced">Transformer</font></code>: it applies an XSL sheet to the SAX
events it
receives. It uses Xalan in the process.</li>
<li>
<code><font face="courier, monospaced">XIncludeTransformer</font></code> - To
include other XML documents
in your "XML document" (which at transformation time
exists in SAX
events).</li>
<li>
<code><font face="courier, monospaced">XTTransformer</font></code> - The same
as
<code><font face="courier,
monospaced">XalanTransformer</font></code>, but this one uses XT.</li>
</ul>
</blockquote>
<p align="justify">All these classes can be found in
<code><font face="courier,
monospaced">org.apache.cocoon.transformation</font></code>, along with these
helper classes
and interfaces:</p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">Transformer</font></code> - The
interface each Transformer has to
implement.</li>
<li>
<code><font face="courier, monospaced">AbstractTransformer</font></code> - A
helper base class for
implementing a <code><font face="courier,
monospaced">Transformer</font></code>.</li>
<li>
<code><font face="courier, monospaced">AbstractDOMTransformer</font></code> -
An Abstract DOM Transformer
(helper base class), for use when a transformer needs
a DOM-based view of the
document.</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>When to write a
Serializer</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">No need for re-inventing the wheel, so let's start again
with the
sitemap documentation: "A <code><font face="courier,
monospaced">Serializer</font></code> transforms SAX events in
binary or char streams for final client consumption." A
<code><font face="courier, monospaced">Serializer</font></code>
is always the last step in a pipeline, and gives the client
its final result:
an HTML page, a nice PNG picture, a sound stream, or maybe
just an XML
document.</p>
<p align="justify">You should write a <code><font face="courier,
monospaced">Serializer</font></code> if you want to serve a client with some
format that hasn't been provided yet.</p>
<p align="justify">Existing <code><font face="courier,
monospaced">Serializer</font></code>s:</p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">FOPSerializer</font></code>- Make PDF
files.</li>
<li>
<code><font face="courier, monospaced">HTMLSerializer</font></code> -
Generate an HTML document.</li>
<li>
<code><font face="courier, monospaced">LinkSerializer</font></code>- Show the
targets of the links in the document.</li>
<li>
<code><font face="courier, monospaced">SVGSerializer</font></code>- To
construct an SVG.</li>
<li>
<code><font face="courier, monospaced">TextSerializer</font></code> -
Generate a text document.</li>
<li>
<code><font face="courier, monospaced">XMLSerializer</font></code> - Generate
an XML document.</li>
</ul>
</blockquote>
<p align="justify">Again, these can be found in the package <code><font
face="courier, monospaced">org.apache.cocoon.serialization</font></code>. And
this package also includes following interfaces and helper classes:</p>
<blockquote>
<ul>
<li>
<code><font face="courier, monospaced">Serializer</font></code> - The
interface every <code><font face="courier, monospaced">Serializer</font></code>
has to implement.</li>
<li>
<code><font face="courier, monospaced">AbstractTextSerializer</font></code> -
Use this as base for your <code><font face="courier,
monospaced">Serializer</font></code> if you want to output a character
stream.</li>
<li>
<code><font face="courier, monospaced">AbstractSerializer</font></code> - A
more general base class.</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>About Action</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">[FIXME: We have to wait until we can see what is going to
happen here. Also, I wonder if this belongs here or should deserve a separate
page.]</p>
<p align="justify">The Action part will be used for making Cocoon able to
react on form input. This will make Cocoon no longer a simple basis for web
publishing, but will make it apt for web interaction as well.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>About XSP</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<a name="xsp">
<!--anchor--></a>
<p align="justify">XSP stands for "eXtensible Server Pages". It is the idea
to program <code><font face="courier, monospaced">Generator</font></code>s by
means of XML. The basic idea is to put XML tags like <code><font face="courier,
monospaced"><xsp:logic></font></code> in your XML file, with in those
tags Java code.</p>
<p>
<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td valign="top" width="28"><img alt="Note" border="0" hspace="0" vspace="0"
height="29" width="28" src="images/note.gif"></td><td valign="top"><font
color="#000000" face="arial,helvetica,sanserif" size="-1"><i>This is not the
proper way to use XSP's. I just mentioned them here so you wouldn't forget
their existence. Look to the <a href="../userdocs/xsp/xsp.html">XSP page</a>
for more information.</i></font></td>
</tr>
</table>
</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/developing/httprequest.html
Index: httprequest.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Request Processing</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Request Processing" border="0" vspace="0"
hspace="0"
src="developing/graphics/httprequest-header.jpg_label=Request%20Processing.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Goal</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">This document tries to explain Apache Cocoon (based on the
version 2.0rc2-dev)
technically. We do this by describing what happens if
somebody types in the URL
of a simple Cocoon page.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Intended
public</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The reader should have a knowledge of:</p>
<blockquote>
<ul>
<li>the Java 2 platform</li>
<li>the javax.servlet extensions</li>
<li>XML</li>
<li>HTTP</li>
</ul>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The configuration
assumptions</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The sequence of events described in this document, depends
on some
assumptions with regard to the configuration of Cocoon.
That's what's described
here.</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>sitemap.xmap</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The task of the sitemap is to define the pipelines that
Cocoon will
apply to URI's called in one's browser.</p>
<p align="justify">This is the minimal sitemap that is necessary. The lines
here are
included in the standard sitemap.xmap that comes with
the distribution of
Cocoon 2.0rc2-dev.</p>
<p align="justify">The sitemap is defined in <code><font face="courier,
monospaced">${cocoon}/sitemap.xmap</font></code>.</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!--===========================Components================================-->
<map:components>
<map:generators default="file">
<map:generator name="file" label="content"
src="org.apache.cocoon.generation.FileGenerator"/>
</map:generators>
<map:transformers default="xslt">
<map:transformer name="xslt"
src="org.apache.cocoon.transformation.XalanTransformer">
<compile-stylesheets map:value="true"/>
</map:transformer>
</map:transformers>
<map:serializers default="html">
<map:serializer name="html" mime-type="text/html"
src="org.apache.cocoon.serialization.HTMLSerializer"/>
</map:serializers>
<map:selectors default="browser">
<map:selector name="browser"
factory="org.apache.cocoon.selection.BrowserSelectorFactory">
<browser name="explorer" useragent="MSIE"/>
<browser name="netscape" useragent="Mozilla"/>
</map:selector>
</map:selectors>
<map:matchers default="uri">
<map:matcher name="uri"
factory="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
</map:matchers>
</map:components>
<!--===========================Pipelines=================================-->
<map:pipelines>
<map:pipeline>
<map:match pattern="hello.html">
<map:generate src="docs/samples/hello-page.xml"/>
<map:transform src="stylesheets/page/simple-page2html.xsl"/>
<map:serialize type="html"/>
</map:match>
</map:pipeline>
</map:pipelines>
</map:sitemap>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>cocoon.xconf</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier, monospaced">cocoon.xconf</font></code> is the file
that defines the
<a href="avalon.html">Avalon</a> Components.</p>
<p align="justify">For our study, we need the standard <code><font
face="courier, monospaced">cocoon.xconf</font></code> file
of Cocoon 2.0rc2-dev.</p>
<p align="justify">It can be found in <code><font face="courier,
monospaced">${cocoon}/cocoon.xconf</font></code>.</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<?xml version="1.0"?>
<cocoon version="2.0">
<!-- ===================== General Components ===========================
-->
<component role="org.apache.cocoon.components.parser.Parser"
class="org.apache.cocoon.components.parser.JaxpParser"/>
<component role="org.apache.cocoon.components.store.Store"
class="org.apache.cocoon.components.store.MemoryStore"/>
<component
role="org.apache.cocoon.components.language.programming.ProgrammingLanguageSelector"
class="org.apache.cocoon.CocoonComponentSelector">
<component-instance name="java"
class="org.apache.cocoon.components.language.programming.java.JavaLanguage">
<parameter name="compiler"
value="org.apache.cocoon.components.language.programming.java.Javac"/>
<parameter name="code-formatter"
value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/>
<parameter name="class-loader"
value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
</component-instance>
</component>
<component
role="org.apache.cocoon.components.classloader.ClassLoaderManager"
class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
<component
role="org.apache.cocoon.components.language.markup.MarkupLanguageSelector"
class="org.apache.cocoon.CocoonComponentSelector">
<component-instance name="xsp"
class="org.apache.cocoon.components.language.markup.xsp.XSPMarkupLanguage">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
<target-language name="java">
<parameter name="core-logicsheet"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
<builtin-logicsheet>
<parameter name="prefix" value="xsp-request"/>
<parameter name="uri"
value="http://apache.org/xsp/request/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="xsp-response"/>
<parameter name="uri"
value="http://apache.org/xsp/response/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
</builtin-logicsheet>
</target-language>
</component-instance>
<component-instance name="sitemap"
class="org.apache.cocoon.components.language.markup.sitemap.SitemapMarkupLanguage">
<parameter name="prefix" value="map"/>
<parameter name="uri"
value="http://apache.org/cocoon/sitemap/1.0"/>
<target-language name="java">
<parameter name="core-logicsheet"
value="resource://org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl"/>
</target-language>
</component-instance>
</component>
<component
role="org.apache.cocoon.components.language.generator.ProgramGenerator"
class="org.apache.cocoon.components.language.generator.ProgramGeneratorImpl">
<parameter name="auto-reload" value="true"/>
</component>
<!-- these components is used as a PoolController for the sitemap
component pools -->
<component role="org.apache.avalon.util.pool.PoolController"
class="org.apache.cocoon.util.ComponentPoolController"/>
<sitemap file="sitemap.xmap"/>
</cocoon>
</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>The sequence of
things</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Role of Tomcat</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The role of Tomcat is to initialize the CocoonServlet, and
to
receive the HttpRequest and pass it on to the
CocoonServlet.</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Initialize
CocoonServlet</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">This is done by calling
<code><font face="courier,
monospaced">CocoonServlet.init(ServletConfig)</font></code>. This is the
standard servlet
way to initialize a servlet.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Pass
HttpRequest</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">On reception of a HttpRequest, Tomcat calls
<code><font face="courier,
monospaced">CocoonServlet.service(HttpRequest, HttpResponse)</font></code>.
This is also
standard.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Initialization</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The steps that happen on initialization, are:</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Find the
classpath</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Cocoon needs to know the classpath for compilation of the
files
it generates itself. This is where the
classpath is stored.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Find the init
file</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The init file (normally <code><font face="courier,
monospaced">cocoon.xconf</font></code>, as defined in
<code><font face="courier,
monospaced">${cocoon}/WEB-INF/web.xml</font></code>) contains the necessary
information for
Cocoon to decide which classes to use for
which roles (refer to
<a href="avalon.html">Avalon</a>).</p>
<p align="justify">This is a feature that is added for increased
configurability.
If you were developing a one time solution,
the information in this file would
normally be hard coded, but the use of this
file increases potential
reusability.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Read the init
file</b></font></td><td background="images/bar-border-right.gif" width="9"><img
border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="85%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">The init file is an xml file (normally
<code><font face="courier,
monospaced">cocoon.xconf</font></code>) which describes the classes to use for
which
roles.</p>
<p align="justify">"Roles" are a concept of <a
href="avalon.html">Avalon</a>.</p>
<p align="justify">The handling of <code><font face="courier,
monospaced">cocoon.xconf</font></code> goes as follows:</p>
<blockquote>
<ol>
<li>Get the parser: This is something necessary for
bootstrapping: cocoon.xconf contains
the parser to be used by Cocoon, but
cocoon.xconf is an xml file that has
to be parsed itself. That's why Cocoon
gets a default parser out of the
System properties (this refers to the
environment variable <code><font
face="courier,
monospaced">$org.apache.cocoon.components.parser.Parser</font></code>
of the OS). If no parser is defined in
the environment, Cocoon will use
<code><font face="courier,
monospaced">org.apache.cocoon.components.parser.JaxpParser</font></code> (a
hard-coded
default).</li>
<li>Get the components: Cocoon uses roles (refer to
<a href="avalon.html">Avalon</a>) as
its working classes. Each role is
implemented by one or more real classes
(components, again an
<a href="avalon.html">Avalon</a> concept). This
is where they are
retrieved.</li>
<li>Get the sitemap: Here the location of the sitemap is retrieved.
The actual compilation of the sitemap occurs
in the HttpRequest handling.</li>
</ol>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>UML sequence
diagram</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">You can find it <a
href="images/initialize_Cocoon.png">here</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>HttpRequest
handling</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">When the <code><font face="courier,
monospaced">CocoonServlet</font></code> gets a HttpRequest from the
servlet engine, it sets up an <code><font
face="courier, monospaced">Environment</font></code> (a
<code><font face="courier,
monospaced">HttpEnvironment</font></code> in this case) and passes that to
<code><font face="courier,
monospaced">Cocoon</font></code>. The <code><font face="courier,
monospaced">Environment</font></code> exists of Request, Response,
and some servlet info (such as requested URI
and the servlet's path).</p>
<p align="justify">This <code><font face="courier,
monospaced">Cocoon</font></code> object lets the <code><font face="courier,
monospaced">Environment</font></code>
decide which sitemap to use, and passes the
sitemap filename along with the
<code><font face="courier,
monospaced">Environment</font></code> to a <code><font face="courier,
monospaced">Manager</font></code>. </p>
<p align="justify">This one puts a <code><font face="courier,
monospaced">Handler</font></code> to work: it checks whether
there already exists a <code><font
face="courier, monospaced">Handler</font></code> with a compiled version of the
sitemap. If not, it creates one. This is what
happens then:</p>
<blockquote>
<ol>
<li>The <code><font face="courier, monospaced">Handler</font></code> creates
a <code><font face="courier, monospaced">File</font></code> object
with the asked URL.</li>
<li>The <code><font face="courier, monospaced">Manager</font></code> sets the
<code><font face="courier, monospaced">Composer</font></code> and the
<code><font face="courier,
monospaced">Configuration</font></code> of the <code><font face="courier,
monospaced">Handler</font></code>. (These are
<a href="avalon.html">Avalon</a>
things).</li>
<li>If necessary, the <code><font face="courier,
monospaced">Manager</font></code> asks the
<code><font face="courier,
monospaced">Handler</font></code> to regenerate its sitemap class. (FIXME: As
of today,
2000-11-08, I'm not sure if the "if necessary"
check is working). Regeneration
exists in:
<blockquote>
<ol>
<li>The <code><font face="courier, monospaced">Handler</font></code> gets the
<code><font face="courier,
monospaced">"program-generator"</font></code> <code><font face="courier,
monospaced">Component</font></code> from its
<code><font face="courier,
monospaced">Composer</font></code>.</li>
<li>The <code><font face="courier, monospaced">load()</font></code> method of
this
<code><font face="courier,
monospaced">ProgramGeneratorImpl</font></code> is called. </li>
<li>The <code><font face="courier,
monospaced">ProgramGeneratorImpl</font></code> gets the
<code><font face="courier,
monospaced">"markup-language"</font></code> (in this case it will get a
<code><font face="courier,
monospaced">SitemapMarkupLanguage</font></code>) and <code><font face="courier,
monospaced">"programming-language"</font></code>
(being <code><font face="courier,
monospaced">JavaLanguage</font></code>) <code><font face="courier,
monospaced">Component</font></code>s. </li>
<li>The <code><font face="courier,
monospaced">ProgramGeneratorImpl</font></code> asks the
<code><font face="courier,
monospaced">SitemapMarkupLanguage</font></code> to generate code.</li>
<li>Then it asks the <code><font face="courier,
monospaced">JavaLanguage</font></code> to load the code.
The <code><font face="courier,
monospaced">JavaLanguage</font></code> does this by creating a <code><font
face="courier, monospaced">Javac</font></code>
object, setting its variables, and
asking it to compile. Then it loads the
class.</li>
<li>Then its back to the <code><font face="courier,
monospaced">ProgramGeneratorImpl</font></code> who
tells the <code><font face="courier,
monospaced">JavaLanguage</font></code> to instantiate the just loaded
class.</li>
</ol>
</blockquote>
</li>
<li>At last, the sitemapManager asks the <code><font face="courier,
monospaced">Handler</font></code> to
process the <code><font face="courier,
monospaced">Environment</font></code>, and the <code><font face="courier,
monospaced">Handler</font></code> just
forwards this request to the generated sitemap
class.</li>
</ol>
</blockquote>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>UML sequence
diagram</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="90%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">You can find it <a
href="images/get_hello_html.png">here</a>.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Description of
classes</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>CocoonServlet</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.servlet.CocoonServlet</font></code>
</p>
<p align="justify">This is the contact point for the servlet engine. It sets
up the
environment and passes all the work to a Cocoon
object.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Cocoon</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier, monospaced">org.apache.cocoon.Cocoon</font></code>
</p>
<p align="justify">While this sounds to be the most important part of the
Cocoon
application, it is not. It is merely a Composer,
meaning that it does some
administrative work and gets other classes to
work.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>ConfigurationBuilder</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.ConfigurationBuilder</font></code>
</p>
<p align="justify">This one generates a Configuration out of a xml file.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Parser</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.components.parser.Parser</font></code>
</p>
<p align="justify">An interface that takes an xml file and throws SAX events
to the
outside.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.Configuration</font></code>
</p>
<p align="justify">This is an <a href="avalon.html">Avalon</a> interface. It
assigns classes to roles. If an object needs a class for a
specific role, it
can ask a Configuration which class it has to use.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>DefaultComponentManager</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.avalon.DefaultComponentManager</font></code>
</p>
<p align="justify">Something that manages <a href="avalon.html">Avalon</a>
Components.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Manager</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.sitemap.Manager</font></code>
</p>
<p align="justify">This one manages the sitemap: it finds out if there exists
a Handler
for a sitemap, and if not, makes sure that one gets
created.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Handler</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.sitemap.Handler</font></code>
</p>
<p align="justify">A class that is responsible for dealing with sitemaps. It
holds the
sourcefile of the sitemap, and the compiled code for
it. It checks whether the
sitemap class that it contains is still valid, and if
not, regenerates it.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>ProgramGenerator</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.components.language.programming.ProgrammingLanguage</font></code>
</p>
<p align="justify">Generates programs.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>SitemapMarkupLanguage</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.components.language.markup.sitemap.SitemapMarkupLanguage</font></code>
</p>
<p align="justify">This one knows the markup of the sitemap, and helps
writing the
source file of the sitemap class.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>JavaLanguage</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.components.language.programming.java.JavaLanguage</font></code>
</p>
<p align="justify">This takes care for outputing Java code as source of the
sitemap
class.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5"
src="images/void.gif"><b>ResourcePipeline</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
<code><font face="courier,
monospaced">org.apache.cocoon.sitemap.ResourcePipeline</font></code>
</p>
<p align="justify">Holds the various steps that have to be taken when
executing a
pipeline.</p>
</font></td>
</tr>
</table>
</div>
<br>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1 xml-site/targets/cocoon2/developing/index.html
Index: index.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Developer Documentation</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Developer Documentation" border="0"
vspace="0" hspace="0"
src="developing/graphics/index-header.jpg_label=Developer%20Documentation.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td
background="images/bar-border-right.gif" width="9"><img border="0" hspace="0"
vspace="0" height="1" width="9" src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">
Here will soon appear all the developer documentation.
</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
1.1
xml-site/targets/cocoon2/developing/parent-component-manager.html
Index: parent-component-manager.html
===================================================================
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Parent Component Manager</title>
<script type="text/javascript" src="resources/script.js"
language="JavaScript"></script>
</head>
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4"
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" rowspan="3" height="60" width="135"><img
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60"
width="135"></td><td background="images/line.gif" colspan="2" align="left"
valign="top" height="5" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left"
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0"
hspace="0" src="images/right.gif" height="60" width="29"></td>
</tr>
<tr>
<td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35"
width="100%"><img align="right" alt="Parent Component Manager" border="0"
vspace="0" hspace="0"
src="developing/graphics/parent-component-manager-header.jpg_label=Parent%20Component%20Manager.jpg"></td>
</tr>
<tr>
<td background="images/bottom.gif" bgcolor="#0086b2" align="left"
valign="top" height="20" width="100%"><img align="left" border="0" vspace="0"
hspace="0" src="images/bottom.gif" height="20" width="3"></td><td
background="images/bottom.gif" width="288" valign="top" height="20"
bgcolor="#0086b2" align="right">
<table width="288" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="left" valign="top" height="20" width="96"><a
onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new"
href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml',
'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0"
hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96"
alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');"
target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf',
'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0"
hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96"
alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20"
width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');"
target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c',
'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0"
hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96"
alt="http://www.w3.org/"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr width="100%">
<td valign="top" width="120">
<table width="120" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" align="left"><img width="120" vspace="0"
src="images/join.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Main')"
onMouseOut="rolloverOff('Main')" href="../index.html"><img
onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg',
'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120"
height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Concepts" width="120" vspace="0"
src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')"
onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img
onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg',
'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120"
height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')"
onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img
onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg',
'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2"
width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg"
alt="Extending C2"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')"
onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img
onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg',
'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120"
height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')"
onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img
onLoad="rolloverLoad('Using Databases', 'graphics/Using
Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0"
hspace="0" name="Using Databases" width="120" height="12" border="0"
src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')"
onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img
onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg',
'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM"
width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg"
alt="Parent CM"></a></td>
</tr>
<tr>
<td valign="top" align="left"><img alt="Java" width="120" vspace="0"
src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
</td>
</tr>
<tr>
<td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')"
onMouseOut="rolloverOff('API (Javadoc)')" target="new"
href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)',
'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');"
width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0"
src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
</tr>
<tr>
<td align="left" valign="top"><img width="120" vspace="0"
src="images/close.gif" hspace="0" height="14" border="0"><br>
</td>
</tr>
</table>
</td><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="10" width="100%"></td>
</tr>
<tr>
<td>
<div align="right">
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Parent Component
Manager</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="98%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">When using Apache Cocoon it is sometimes neccessary to
obtain
components from other sources than the <code><font
face="courier, monospaced">user.roles</font></code> file,
or preferable to have a common component manager for
several web applications.</p>
<p align="justify">The pattern chosen for Cocoon is the dynamic loading of a
component manager class.
The initialization parameter parent-component-manager in
web.xml specifies a class
that will be loaded, instantiated and used as a parent
component manager for
Cocoon's component manager.</p>
<p align="justify">The recommended procedure is for the class, when it is
initialized, to create a
delegate in the form of an <code><font face="courier,
monospaced">ExcaliburComponentManager</font></code>, configure it
by looking up a <code><font face="courier,
monospaced">Configuration</font></code> object via JNDI, and delegate any
requests to it.</p>
<p align="justify">In order to provide a way to pass parameters to the parent
component manager class
(the class specified in parent-component-manager), Cocoon
will instantiate the class
via the constructor that takes a single <code><font
face="courier, monospaced">String</font></code> argument, passing
anything to the right of the first <code><font
face="courier, monospaced">'/'</font></code> in the parameter value to the
constructor. Subsequently Cocoon examines whether the
class implements
<code><font face="courier,
monospaced">org.apache.avalon.framework.logger.Loggable</font></code> and/or
<code><font face="courier,
monospaced">org.apache.avalon.framework.activity.Initializable</font></code>
and calls
<code><font face="courier,
monospaced">setLogger</font></code> and/or <code><font face="courier,
monospaced">initialize</font></code>, as appropriate.
The instance is then used as a parent component manager.
</p>
<p align="justify">Since that didn't make much sense in itself, let's look at
the sample.</p>
<p align="justify">The goal is to define a component that can give us the
time of day and
let it be managed by a parent component manager.</p>
<p align="justify">So, first we need to put a Configuration object into JNDI,
and then
grab that object, use it to configure an
ExcaliburComponentManager,
and pass on any requests to that manager.</p>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Step 1: Creating a configuration
object</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">We'll do this the quick and dirty way. The static
initializer of a class
will create a Configuration instance with a single
role and bind it
to <code><font face="courier,
monospaced">org/apache/cocoon/samples/parentcm/ParentCMConfigration</font></code>.
</p>
<p align="justify">The following code was taken from
org/apache/cocoon/samples/parentcm/Configurator.java</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
public class Configurator {
static {
try {
//
// Create a new role.
//
DefaultConfiguration config = new DefaultConfiguration("roles",
"");
DefaultConfiguration timeComponent = new
DefaultConfiguration("role", "roles");
timeComponent.addAttribute("name", Time.ROLE);
timeComponent.addAttribute("default-class",
TimeComponent.class.getName());
timeComponent.addAttribute("shorthand", "samples-parentcm-time");
config.addChild(timeComponent);
//
// Bind it - get an initial context.
//
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
MemoryInitialContextFactory.class.getName());
initialContext = new InitialContext(environment);
//
// Create subcontexts and bind the configuration.
//
Context ctx = initialContext.createSubcontext("org");
ctx = ctx.createSubcontext("apache");
ctx = ctx.createSubcontext("cocoon");
ctx = ctx.createSubcontext("samples");
ctx = ctx.createSubcontext("parentcm");
ctx.rebind("ParentCMConfiguration", config);
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">To make sure the static initializer runs we make Cocoon
force-load the class
by making a change to the web.xml file:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<init-param>
<param-name>load-class</param-name>
<param-value>
<!-- For IBM WebSphere:
com.ibm.servlet.classloader.Handler -->
<!-- For Database Driver: -->
org.hsqldb.jdbcDriver
<!-- For parent ComponentManager sample:
This will cause the static initializer to run,
and thus the Configuration object to be created
and bound. -->
org.apache.cocoon.samples.parentcm.Configurator
</param-value>
</init-param></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Step 2: Write the component
manager</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Now that the configuration object is sitting there waiting
for us, let's craft
the component manager. Please see the file
org/apache/cocoon/samples/parentcm/ParentComponentManager.java
for an example. It is too much to paste in here.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Step 3: Tell Cocoon to use the
component manager</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Change the web.xml file to:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
<init-param>
<param-name>parent-component-manager</param-name>
<param-value>org.apache.cocoon.samples.parentcm.ParentComponentManager/(remove
this line break)
org/apache/cocoon/samples/parentcm/ParentCMConfiguration</param-value>
</init-param></pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Cocoon will now do the following: First, it will split the
parameter value at the first slash,
in this case ending up with the strings <code><font
face="courier,
monospaced">"org.apache.cocoon.samples.parentcm.ParentComponentManager"</font></code>
and <code><font face="courier,
monospaced">"org/apache/cocoon/samples/parentcm/ParentCMConfiguration"</font></code>.
The first string is the
class to instantiate. The second is the parameter
that will be passed to the constructor.</p>
<p align="justify">Next, Cocoon loads the component manager class and uses
reflection to find a constructor that
will accept a single <code><font face="courier,
monospaced">String</font></code> argument. Upon finding one, it instantiates the
class in a manner similar to:</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
ComponentManager cm = new
org.apache.cocoon.samples.parentcm.ParentComponentManager(
"org/apache/cocoon/samples/parentcm/ParentCMConfiguration");</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">
After this Cocoon checks whether the parent component
manager class implements <code><font face="courier,
monospaced">Initializable</font></code> and/or
<code><font face="courier,
monospaced">Loggable</font></code>. Since the <code><font face="courier,
monospaced">ParentComponentManager</font></code> class implements both, Cocoon
does the following (with simplification):
</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
((Loggable) cm).setLogger(logger);
((Initializable) cm).initialize();</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
<p align="justify">Finally, the instance is used as parent component manager
of Cocoon's own component manager.</p>
</font></td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td align="right" valign="bottom" height="7" width="9"><img border="0"
hspace="0" vspace="0" height="7" width="9"
src="images/bar-top-left.gif"></td><td
background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0"
height="5" width="1" src="images/void.gif"></td><td align="left"
valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0"
height="7" width="9" src="images/bar-top-right.gif"></td>
</tr>
<tr>
<td background="images/bar-border-left.gif" width="9"><img border="0"
hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td
bgcolor="#0086b2" width="100%"><font color="#ffffff"
face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0"
height="5" width="5" src="images/void.gif"><b>Step 4: Use the
component</b></font></td><td background="images/bar-border-right.gif"
width="9"><img border="0" hspace="0" vspace="0" height="1" width="9"
src="images/void.gif"></td>
</tr>
<tr>
<td align="right" valign="top" height="12" width="9"><img border="0"
hspace="0" vspace="0" height="12" width="9"
src="images/bar-bottom-left.gif"></td><td
background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0"
height="12" width="1" src="images/void.gif"></td><td align="left" valign="top"
height="12" width="9"><img border="0" hspace="0" vspace="0" height="12"
width="9" src="images/bar-bottom-right.gif"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="95%" border="0">
<tr>
<td><font color="#000000" face="arial,helvetica,sanserif">
<p align="justify">Cocoon2 components can now use the ComponentManager given
to them by Cocoon to look up the
component managed by the parent component manager:</p>
<p align="justify">The following code was taken from
org/apache/cocoon/samples/parentcm/Generator.java</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
<tr>
<td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
<pre>
public void setup(SourceResolver resolver, Map objectModel, String src,
Parameters par)
throws ProcessingException, SAXException, IOException {
Time timeGiver = null;
try {
timeGiver = (Time) manager.lookup(Time.ROLE);
this.time = timeGiver.getTime ();
} catch (ComponentException ce) {
throw new ProcessingException ("Could not obtain current time.", ce);
} finally {
manager.release(timeGiver);
}
}</pre>
</td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0"
height="1" width="1" src="images/void.gif"></td>
</tr>
<tr>
<td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0"
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1"
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img
border="0" hspace="0" vspace="0" height="1" width="1"
src="images/void.gif"></td>
</tr>
</table>
</div>
</font></td>
</tr>
</table>
</div>
<br>
<p align="justify">And that concludes the tour. A parent component manager
was initialized with a configuration
obtained via JNDI and its components used by a Cocoon
generator.</p>
</font></td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
</tr>
<tr>
<td align="center"><font size="-1" face="arial,helvetica,sanserif"
color="#0086b2"><i>Copyright © 1999-2001 The Apache Software Foundation.
All Rights Reserved.</i></font></td>
</tr>
</table>
</body>
</html>
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Avalon-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Avalon-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Concepts-separator.jpg
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Flow-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Flow-label_over.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Java-separator.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Main-label.jpg
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/graphics/Main-label_over.jpg
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
No revision
No revision
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-border-bottom.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-border-left.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-border-right.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-border-top.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-bottom-left.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-bottom-right.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-top-left.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/bar-top-right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/bottom.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-asf-hi.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-asf-lo.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-w3c-hi.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-w3c-lo.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-xml-hi.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/button-xml-lo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/close.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/dot.gif
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/get_hello_html.png
<<Binary file>>
1.1
xml-site/targets/cocoon2/developing/images/initialize_Cocoon.png
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/join.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/line.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/logo.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/note.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/right.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/images/void.gif
<<Binary file>>
1.1 xml-site/targets/cocoon2/developing/resources/script.js
Index: script.js
===================================================================
rolloverImagesOn=new Array();
rolloverImagesOff=new Array();
function rolloverOn(name) {
if(document.images[name] && rolloverImagesOn[name])
document.images[name].src=rolloverImagesOn[name].src;
}
function rolloverOff(name) {
if(document.images[name] && rolloverImagesOff[name])
document.images[name].src=rolloverImagesOff[name].src;
}
function rolloverLoad(name,on,off) {
rolloverImagesOn[name]=new Image();
rolloverImagesOn[name].src=mangle(on);
rolloverImagesOff[name]=new Image();
rolloverImagesOff[name].src=mangle(off);
}
function mangle(name) {
name = name.replace(/:/g, "_");
name = name.replace(/\?/g, "_");
name = name.replace(/\"/g, "\'");
return name;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]