You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by as...@apache.org on 2007/09/08 22:17:47 UTC

svn commit: r573901 [4/44] - in /cocoon/site: site/ site/2.0/ site/2.0/developing/ site/2.0/faq/ site/2.0/howto/chaperon/ site/2.0/installing/ site/2.0/plan/ site/2.0/snippet/ site/2.0/tutorial/ site/2.0/userdocs/ site/2.0/userdocs/actions/ site/2.0/us...

Modified: cocoon/site/site/2.0/developing/index.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.0/developing/index.html?rev=573901&r1=573900&r2=573901&view=diff
==============================================================================
--- cocoon/site/site/2.0/developing/index.html (original)
+++ cocoon/site/site/2.0/developing/index.html Sat Sep  8 13:17:41 2007
@@ -1,158 +1,158 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Developer Documentation</title>
-<STYLE type="text/css">
-a.menu {
-	color: #FFFFFF;
-    text-align:left;               
-    font-size:12px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:plain;
-    text-decoration:none;
-    padding-left: 14px
-}
-
-A.menu:hover {
-	color: #FFCC00
-}
-
-
-.menutitle {
-	color: #000000;
-    text-align:left;               
-    font-size:10px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:bold;
-    padding-left: 8px
-}
-.menuselected {
-	color: #FFCC00;
-    text-align:left;               
-    font-size:12px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:bold;
-    padding-left: 14px
-}
-</STYLE>
-</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" rowspan="1" colSpan="2" align="left" valign="top" height="0" width="100%"></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%"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="5">Developer Documentation</font></td>
-</tr>
-<tr>
-<td background="images/bottom.gif" colspan="2" width="100%" 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 target="new" href="http://xml.apache.org/"><img 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 target="new" href="http://www.apache.org/"><img 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 target="new" href="http://www.w3.org/"><img 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 align="left" valign="top" width="120">
-<table width="120" cellspacing="0" cellpadding="0" border="0" bgcolor="#a0a0a0">
-<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" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="../index.html">Main</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Concepts</span></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="httprequest.html">Internals</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="extending.html">Extending</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="avalon.html">Avalon</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="datasources.html">Using Databases</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="parent-component-manager.html">Parent CM</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deliquick.html">DELI Quick Start</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deli.html">DELI</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Webapps</span></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="webapps/index.html">Developing Webapps</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Java</span></td>
-</tr>
-<tr>
-<td valign="top" background="images/label-background_a.gif" bgcolor="#959595"><a class="menu" target="new" href="../apidocs/index.html">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="15" cellpadding="0" border="0">
-<tr>
-<td>
- 
-
- 
- <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Overview</font>
-<hr style="color: #0086b2" size="1">
-
-  
-<p>
-<font color="black" face="verdana,helvetica,sanserif">Here will soon appear an overview of the developer perspective.
-  </font>
-</p>
-  
-<p>
-<font color="black" face="verdana,helvetica,sanserif">If you are interested in developing real-world web-applications requiring
-    form handling, authentication or even developing your own portal, have a 
-    look at the <a href="webapps/index.html">web application documentation</a>.</font>
-</p>
-  
-<p>
-<font color="black" face="verdana,helvetica,sanserif">The actual developer documentation is available from the side-panel.
-  </font>
-</p>
-
- 
-
- 
-
-</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 &copy; 1999-2002 The Apache Software Foundation. All Rights Reserved.</i></font></td>
-</tr>
-</table>
-</body>
-</html>
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Developer Documentation</title>
+<STYLE type="text/css">
+a.menu {
+	color: #FFFFFF;
+    text-align:left;               
+    font-size:12px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:plain;
+    text-decoration:none;
+    padding-left: 14px
+}
+
+A.menu:hover {
+	color: #FFCC00
+}
+
+
+.menutitle {
+	color: #000000;
+    text-align:left;               
+    font-size:10px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:bold;
+    padding-left: 8px
+}
+.menuselected {
+	color: #FFCC00;
+    text-align:left;               
+    font-size:12px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:bold;
+    padding-left: 14px
+}
+</STYLE>
+</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" rowspan="1" colSpan="2" align="left" valign="top" height="0" width="100%"></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%"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="5">Developer Documentation</font></td>
+</tr>
+<tr>
+<td background="images/bottom.gif" colspan="2" width="100%" 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 target="new" href="http://xml.apache.org/"><img 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 target="new" href="http://www.apache.org/"><img 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 target="new" href="http://www.w3.org/"><img 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 align="left" valign="top" width="120">
+<table width="120" cellspacing="0" cellpadding="0" border="0" bgcolor="#a0a0a0">
+<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" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="../index.html">Main</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Concepts</span></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="httprequest.html">Internals</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="extending.html">Extending</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="avalon.html">Avalon</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="datasources.html">Using Databases</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="parent-component-manager.html">Parent CM</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deliquick.html">DELI Quick Start</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deli.html">DELI</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Webapps</span></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="webapps/index.html">Developing Webapps</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Java</span></td>
+</tr>
+<tr>
+<td valign="top" background="images/label-background_a.gif" bgcolor="#959595"><a class="menu" target="new" href="../apidocs/index.html">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="15" cellpadding="0" border="0">
+<tr>
+<td>
+ 
+
+ 
+ <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Overview</font>
+<hr style="color: #0086b2" size="1">
+
+  
+<p>
+<font color="black" face="verdana,helvetica,sanserif">Here will soon appear an overview of the developer perspective.
+  </font>
+</p>
+  
+<p>
+<font color="black" face="verdana,helvetica,sanserif">If you are interested in developing real-world web-applications requiring
+    form handling, authentication or even developing your own portal, have a 
+    look at the <a href="webapps/index.html">web application documentation</a>.</font>
+</p>
+  
+<p>
+<font color="black" face="verdana,helvetica,sanserif">The actual developer documentation is available from the side-panel.
+  </font>
+</p>
+
+ 
+
+ 
+
+</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 &copy; 1999-2002 The Apache Software Foundation. All Rights Reserved.</i></font></td>
+</tr>
+</table>
+</body>
+</html>

Modified: cocoon/site/site/2.0/developing/parent-component-manager.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.0/developing/parent-component-manager.html?rev=573901&r1=573900&r2=573901&view=diff
==============================================================================
--- cocoon/site/site/2.0/developing/parent-component-manager.html (original)
+++ cocoon/site/site/2.0/developing/parent-component-manager.html Sat Sep  8 13:17:41 2007
@@ -1,461 +1,461 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parent Component Manager</title>
-<STYLE type="text/css">
-a.menu {
-	color: #FFFFFF;
-    text-align:left;               
-    font-size:12px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:plain;
-    text-decoration:none;
-    padding-left: 14px
-}
-
-A.menu:hover {
-	color: #FFCC00
-}
-
-
-.menutitle {
-	color: #000000;
-    text-align:left;               
-    font-size:10px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:bold;
-    padding-left: 8px
-}
-.menuselected {
-	color: #FFCC00;
-    text-align:left;               
-    font-size:12px;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-weight:bold;
-    padding-left: 14px
-}
-</STYLE>
-</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" rowspan="1" colSpan="2" align="left" valign="top" height="0" width="100%"></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%"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="5">Parent Component Manager</font></td>
-</tr>
-<tr>
-<td background="images/bottom.gif" colspan="2" width="100%" 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 target="new" href="http://xml.apache.org/"><img 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 target="new" href="http://www.apache.org/"><img 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 target="new" href="http://www.w3.org/"><img 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 align="left" valign="top" width="120">
-<table width="120" cellspacing="0" cellpadding="0" border="0" bgcolor="#a0a0a0">
-<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" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="../index.html">Main</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Concepts</span></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="httprequest.html">Internals</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="extending.html">Extending</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="avalon.html">Avalon</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="datasources.html">Using Databases</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><span class="menuselected">Parent CM</span></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deliquick.html">DELI Quick Start</a></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deli.html">DELI</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Webapps</span></td>
-</tr>
-<tr>
-<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="webapps/index.html">Developing Webapps</a></td>
-</tr>
-<tr>
-<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
-<span class="menutitle">Java</span></td>
-</tr>
-<tr>
-<td valign="top" background="images/label-background_a.gif" bgcolor="#959595"><a class="menu" target="new" href="../apidocs/index.html">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="15" cellpadding="0" border="0">
-<tr>
-<td>
-        
-        
-            <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Parent Component Manager</font>
-<hr style="color: #0086b2" size="1">
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.
-                </font>
-</p>
-                                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">Since that didn't make much sense in itself, let's look at the sample.</font>
-</p>
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 1: Creating a configuration object</b></font>
-                
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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>.
-                    </font>
-</p>
-                
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">The following code was taken from org/apache/cocoon/samples/parentcm/Configurator.java</font>
-</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>
-<font color="black" face="verdana,helvetica,sanserif">To make sure the static initializer runs we make Cocoon force-load the class
-                    by making a change to the web.xml file:</font>
-</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>
-&lt;init-param&gt;
-  &lt;param-name&gt;load-class&lt;/param-name&gt;
-  &lt;param-value&gt;
-    &lt;!-- For IBM WebSphere: 
-    com.ibm.servlet.classloader.Handler --&gt;
-
-    &lt;!-- For Database Driver: --&gt;
-    org.hsqldb.jdbcDriver
-        
-    &lt;!-- For parent ComponentManager sample:
-            This will cause the static initializer to run,
-            and thus the Configuration object to be created
-            and bound. --&gt;
-    org.apache.cocoon.samples.parentcm.Configurator 
-  &lt;/param-value&gt;
-&lt;/init-param&gt;</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 face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 2: Write the component manager</b></font>
-                
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                
-                
-                    
-                
-<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 3: Tell Cocoon to use the component manager</b></font>
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">Change the web.xml file to:</font>
-</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>
-&lt;init-param&gt;
-  &lt;param-name&gt;parent-component-manager&lt;/param-name&gt;
-  &lt;param-value&gt;org.apache.cocoon.samples.parentcm.ParentComponentManager/(remove this line break)
-org/apache/cocoon/samples/parentcm/ParentCMConfiguration&lt;/param-value&gt;
-&lt;/init-param&gt;</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>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-                    
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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:</font>
-</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>
-<font color="black" face="verdana,helvetica,sanserif">
-                        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):
-                    </font>
-</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>
-<font color="black" face="verdana,helvetica,sanserif">Finally, the instance is used as parent component manager of Cocoon's own component manager.</font>
-</p>
-                
-                
-                
-<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 4: Use the component</b></font>
-                
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">Cocoon components can now use the ComponentManager given to them by Cocoon to look up the
-                        component managed by the parent component manager:</font>
-</p>
-                
-                    
-<p>
-<font color="black" face="verdana,helvetica,sanserif">The following code was taken from org/apache/cocoon/samples/parentcm/Generator.java</font>
-</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>
-                
-                
-                
-<p>
-<font color="black" face="verdana,helvetica,sanserif">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.</font>
-</p>
-            
-        
-    
-</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 &copy; 1999-2002 The Apache Software Foundation. All Rights Reserved.</i></font></td>
-</tr>
-</table>
-</body>
-</html>
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Parent Component Manager</title>
+<STYLE type="text/css">
+a.menu {
+	color: #FFFFFF;
+    text-align:left;               
+    font-size:12px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:plain;
+    text-decoration:none;
+    padding-left: 14px
+}
+
+A.menu:hover {
+	color: #FFCC00
+}
+
+
+.menutitle {
+	color: #000000;
+    text-align:left;               
+    font-size:10px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:bold;
+    padding-left: 8px
+}
+.menuselected {
+	color: #FFCC00;
+    text-align:left;               
+    font-size:12px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-weight:bold;
+    padding-left: 14px
+}
+</STYLE>
+</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" rowspan="1" colSpan="2" align="left" valign="top" height="0" width="100%"></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%"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="5">Parent Component Manager</font></td>
+</tr>
+<tr>
+<td background="images/bottom.gif" colspan="2" width="100%" 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 target="new" href="http://xml.apache.org/"><img 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 target="new" href="http://www.apache.org/"><img 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 target="new" href="http://www.w3.org/"><img 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 align="left" valign="top" width="120">
+<table width="120" cellspacing="0" cellpadding="0" border="0" bgcolor="#a0a0a0">
+<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" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="../index.html">Main</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Concepts</span></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="httprequest.html">Internals</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="extending.html">Extending</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="avalon.html">Avalon</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="datasources.html">Using Databases</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><span class="menuselected">Parent CM</span></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deliquick.html">DELI Quick Start</a></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="deli.html">DELI</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Webapps</span></td>
+</tr>
+<tr>
+<td valign="top" bgcolor="#959595" background="images/label-background_a.gif"><a class="menu" href="webapps/index.html">Developing Webapps</a></td>
+</tr>
+<tr>
+<td background="images/label-background_b.gif" bgcolor="#959595" valign="top"><img width="120" height="6" src="images/separator.gif"><br>
+<span class="menutitle">Java</span></td>
+</tr>
+<tr>
+<td valign="top" background="images/label-background_a.gif" bgcolor="#959595"><a class="menu" target="new" href="../apidocs/index.html">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="15" cellpadding="0" border="0">
+<tr>
+<td>
+        
+        
+            <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Parent Component Manager</font>
+<hr style="color: #0086b2" size="1">
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.
+                </font>
+</p>
+                                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">Since that didn't make much sense in itself, let's look at the sample.</font>
+</p>
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 1: Creating a configuration object</b></font>
+                
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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>.
+                    </font>
+</p>
+                
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">The following code was taken from org/apache/cocoon/samples/parentcm/Configurator.java</font>
+</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>
+<font color="black" face="verdana,helvetica,sanserif">To make sure the static initializer runs we make Cocoon force-load the class
+                    by making a change to the web.xml file:</font>
+</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>
+&lt;init-param&gt;
+  &lt;param-name&gt;load-class&lt;/param-name&gt;
+  &lt;param-value&gt;
+    &lt;!-- For IBM WebSphere: 
+    com.ibm.servlet.classloader.Handler --&gt;
+
+    &lt;!-- For Database Driver: --&gt;
+    org.hsqldb.jdbcDriver
+        
+    &lt;!-- For parent ComponentManager sample:
+            This will cause the static initializer to run,
+            and thus the Configuration object to be created
+            and bound. --&gt;
+    org.apache.cocoon.samples.parentcm.Configurator 
+  &lt;/param-value&gt;
+&lt;/init-param&gt;</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 face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 2: Write the component manager</b></font>
+                
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                
+                
+                    
+                
+<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 3: Tell Cocoon to use the component manager</b></font>
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">Change the web.xml file to:</font>
+</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>
+&lt;init-param&gt;
+  &lt;param-name&gt;parent-component-manager&lt;/param-name&gt;
+  &lt;param-value&gt;org.apache.cocoon.samples.parentcm.ParentComponentManager/(remove this line break)
+org/apache/cocoon/samples/parentcm/ParentCMConfiguration&lt;/param-value&gt;
+&lt;/init-param&gt;</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>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+                    
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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:</font>
+</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>
+<font color="black" face="verdana,helvetica,sanserif">
+                        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):
+                    </font>
+</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>
+<font color="black" face="verdana,helvetica,sanserif">Finally, the instance is used as parent component manager of Cocoon's own component manager.</font>
+</p>
+                
+                
+                
+<font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Step 4: Use the component</b></font>
+                
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">Cocoon components can now use the ComponentManager given to them by Cocoon to look up the
+                        component managed by the parent component manager:</font>
+</p>
+                
+                    
+<p>
+<font color="black" face="verdana,helvetica,sanserif">The following code was taken from org/apache/cocoon/samples/parentcm/Generator.java</font>
+</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>
+                
+                
+                
+<p>
+<font color="black" face="verdana,helvetica,sanserif">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.</font>
+</p>
+            
+        
+    
+</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 &copy; 1999-2002 The Apache Software Foundation. All Rights Reserved.</i></font></td>
+</tr>
+</table>
+</body>
+</html>