cvs commit: cocoon-2.1/src/test/org/apache/cocoon/components/resolver/test ResolverImplTestCase.java ResolverImplTestCase.xtest package.html
crossley2003/10/16 00:58:09 Removed: src/test CatalogManager.properties src/test/org/apache/cocoon/components/resolver/test ResolverImplTestCase.java ResolverImplTestCase.xtest package.html Log: Remove old testcases for the deprecated entity resolver. The code is now at Avalon Excalibur xmlutil.
cvs commit: cocoon-2.2/src/test/org/apache/cocoon/components/resolver/test ResolverImplTestCase.java ResolverImplTestCase.xtest package.html
crossley2003/10/16 01:05:29 Removed: src/test CatalogManager.properties src/test/org/apache/cocoon/components/resolver/test ResolverImplTestCase.java ResolverImplTestCase.xtest package.html Log: Remove old testcases for the deprecated entity resolver. The code is now at Avalon Excalibur xmlutil.
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/generation JXTemplateGenerator.java
bruno 2003/10/16 07:23:01 Modified:src/java/org/apache/cocoon/generation JXTemplateGenerator.java Log: Using JXTemplate as transformer gave a java.lang.VerifyError at runtime, apparently caused by accessing gen.xmlConsumer directly. Revision ChangesPath 1.13 +6 -1 cocoon-2.1/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java Index: JXTemplateGenerator.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- JXTemplateGenerator.java 15 Oct 2003 14:12:45 - 1.12 +++ JXTemplateGenerator.java 16 Oct 2003 14:23:01 - 1.13 @@ -367,6 +367,11 @@ private static final Locator NULL_LOCATOR = new LocatorImpl(); +private XMLConsumer getConsumer() +{ +return this.xmlConsumer; +} + /** * Jexl Introspector that supports Rhino JavaScript objects * as well as Java Objects @@ -2483,7 +2488,7 @@ public void endDocument() throws SAXException { super.endDocument(); -gen.execute(gen.xmlConsumer, +gen.execute(gen.getConsumer(), gen.getJexlContext(), gen.getJXPathContext(), getStartEvent(), null);
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/components/flow AbstractInterpreter.java
bloritsch2003/10/16 07:57:36 Modified:src/java/org/apache/cocoon/components/flow/javascript/fom FOM_Cocoon.java FOM_WebContinuation.java src/java/org/apache/cocoon/components/flow/javascript JSCocoon.java JSWebContinuation.java src/java/org/apache/cocoon/components/flow AbstractInterpreter.java Log: Update to Serviceable contracts Revision ChangesPath 1.14 +83 -84 cocoon-2.2/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java Index: FOM_Cocoon.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- FOM_Cocoon.java 15 Oct 2003 17:04:50 - 1.13 +++ FOM_Cocoon.java 16 Oct 2003 14:57:36 - 1.14 @@ -59,9 +59,8 @@ import java.util.Locale; import java.util.Map; -import org.apache.avalon.framework.component.Component; -import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.logger.Logger; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.components.flow.ContinuationsManager; import org.apache.cocoon.components.flow.WebContinuation; import org.apache.cocoon.components.flow.Interpreter.Argument; @@ -82,7 +81,7 @@ /** * Implementation of FOM (Flow Object Model). * - * @since 2.1 + * @since 2.1 * @author a href=mailto:coliver.at.apache.org;Christopher Oliver/a * @author a href=mailto:reinhard.at.apache.org;Reinhard Pötz/a * @version CVS $Id$ @@ -93,7 +92,7 @@ private FOM_JavaScriptInterpreter interpreter; private Environment environment; -private ComponentManager componentManager; +private ServiceManager serviceManager; private Logger logger; private FOM_Request request; @@ -122,19 +121,19 @@ } void setup(FOM_JavaScriptInterpreter interp, - Environment env, - ComponentManager manager, - Logger logger) { + Environment env, + ServiceManager manager, + Logger logger) { this.interpreter = interp; this.environment = env; -this.componentManager = manager; +this.serviceManager = manager; this.logger = logger; } void invalidate() { // Clear the scope attribute this.getRequest().removeAttribute(FOM_JavaScriptFlowHelper.FOM_SCOPE); - + // Cleanup everything this.request = null; this.response = null; @@ -142,32 +141,32 @@ this.context = null; this.log = null; this.logger = null; -this.componentManager = null; +this.serviceManager = null; this.environment = null; this.interpreter = null; } private FOM_WebContinuation forwardTo(String uri, Object bizData, - Continuation continuation) + Continuation continuation) throws Exception { WebContinuation wk = null; if (continuation != null) { ContinuationsManager contMgr = (ContinuationsManager) -componentManager.lookup(ContinuationsManager.ROLE); -wk = lastContinuation = +serviceManager.lookup(ContinuationsManager.ROLE); +wk = lastContinuation = contMgr.createWebContinuation(continuation, lastContinuation, 0, null); } - + String redUri = uri; - + FOM_WebContinuation fom_wk = new FOM_WebContinuation(wk); fom_wk.setParentScope(getParentScope()); -fom_wk.setPrototype(getClassPrototype(getParentScope(), +fom_wk.setPrototype(getClassPrototype(getParentScope(), fom_wk.getClassName())); interpreter.forwardTo(getParentScope(), this, redUri, bizData, fom_wk, environment); @@ -182,23 +181,23 @@ return result; } -public FOM_WebContinuation jsFunction_sendPage(String uri, - Object obj, - Object continuation) +public FOM_WebContinuation jsFunction_sendPage(String uri, + Object obj, +
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/components/language/markup/xsp XSPModuleHelper.java
bloritsch2003/10/16 07:57:59 Modified:src/java/org/apache/cocoon/components/language/generator GeneratorSelector.java ProgramGenerator.java src/java/org/apache/cocoon/components/language/markup/xsp XSPModuleHelper.java Log: Update to Serviceable contracts Revision ChangesPath 1.4 +1 -5 cocoon-2.2/src/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java Index: GeneratorSelector.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- GeneratorSelector.java24 Sep 2003 21:41:12 - 1.3 +++ GeneratorSelector.java16 Oct 2003 14:57:59 - 1.4 @@ -50,10 +50,6 @@ */ package org.apache.cocoon.components.language.generator; -import org.apache.avalon.excalibur.component.ComponentHandler; -import org.apache.avalon.excalibur.component.ExcaliburComponentSelector; -import org.apache.avalon.excalibur.component.LogkitLoggerManager; -import org.apache.avalon.excalibur.component.RoleManager; import org.apache.avalon.excalibur.logger.LogKitManager; import org.apache.avalon.excalibur.logger.LoggerManager; import org.apache.avalon.framework.activity.Disposable; 1.2 +4 -4 cocoon-2.2/src/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java Index: ProgramGenerator.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ProgramGenerator.java 9 Mar 2003 00:08:52 - 1.1 +++ ProgramGenerator.java 16 Oct 2003 14:57:59 - 1.2 @@ -52,8 +52,8 @@ import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.component.ComponentManager; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.excalibur.source.Source; - import org.apache.cocoon.environment.SourceResolver; /** @@ -82,7 +82,7 @@ * @deprecated Pass Source object instead of file name. */ CompiledComponent load( -ComponentManager newManager, +ServiceManager newManager, String fileName, String markupLanguage, String programmingLanguage, @@ -102,7 +102,7 @@ * @exception Exception If an error occurs during generation or loading */ CompiledComponent load( -ComponentManager newManager, +ServiceManager newManager, Source source, String markupLanguage, String programmingLanguage, 1.6 +14 -18 cocoon-2.2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPModuleHelper.java Index: XSPModuleHelper.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPModuleHelper.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XSPModuleHelper.java 24 Sep 2003 21:41:11 - 1.5 +++ XSPModuleHelper.java 16 Oct 2003 14:57:59 - 1.6 @@ -56,8 +56,8 @@ import java.util.Map; import org.apache.avalon.framework.CascadingRuntimeException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.ComponentSelector; +import org.apache.avalon.framework.service.ServiceSelector; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.thread.ThreadSafe; @@ -89,9 +89,9 @@ private final static int OP_NAMES = 2; Map inputModules = null; -ComponentManager manager = null; -ComponentSelector inputSelector = null; - +ServiceManager manager = null; +ServiceSelector inputSelector = null; + /** * Capsules use of an InputModule. Does all the lookups and so @@ -117,7 +117,7 @@ Object value = null; InputModule input = null; -if (this.inputModules == null) +if (this.inputModules == null) this.inputModules = new HashMap(); else if (this.inputModules.containsKey(name)) @@ -126,10 +126,10 @@ try { if (this.inputSelector == null) -this.inputSelector = (ComponentSelector) this.manager.lookup(INPUT_MODULE_SELECTOR); - +this.inputSelector = (ServiceSelector)
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/transformation CIncludeTransformer.java
bloritsch2003/10/16 08:00:37 Modified:src/java/org/apache/cocoon/transformation/helpers PreemptiveLoaderAction.java src/java/org/apache/cocoon/transformation CIncludeTransformer.java Log: Update to Serviceable contracts Revision ChangesPath 1.5 +3 -3 cocoon-2.2/src/java/org/apache/cocoon/transformation/helpers/PreemptiveLoaderAction.java Index: PreemptiveLoaderAction.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/transformation/helpers/PreemptiveLoaderAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PreemptiveLoaderAction.java 15 Oct 2003 20:16:44 - 1.4 +++ PreemptiveLoaderAction.java 16 Oct 2003 15:00:37 - 1.5 @@ -60,12 +60,12 @@ /** * This action starts the preemptive loader and runs forever. - * + * * @author a href=mailto:[EMAIL PROTECTED]Carsten Ziegeler/a * @version CVS $Id$ * @since 2.1 */ -public class PreemptiveLoaderAction +public class PreemptiveLoaderAction extends ServiceableAction implements ThreadSafe { 1.7 +58 -58 cocoon-2.2/src/java/org/apache/cocoon/transformation/CIncludeTransformer.java Index: CIncludeTransformer.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/transformation/CIncludeTransformer.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- CIncludeTransformer.java 24 Sep 2003 21:41:12 - 1.6 +++ CIncludeTransformer.java 16 Oct 2003 15:00:37 - 1.7 @@ -112,14 +112,14 @@ * !-- more can follow -- * /cinclude:parameters * /cinclude:includexml - * + * * * This transformer also supports caching of the included content. * Therefore it triggers for the element codecached-include/code in the * namespace http://apache.org/cocoon/include/1.0;. * The codesrc/code attribute contains the url which points to * an xml resource which is include instead of the element. - * First, it works like the usual include command. But it can be + * First, it works like the usual include command. But it can be * configured with various parameters: * The most important one is the codeexpires/code parameter. * If (and only if) this is set to a value greater than zero, @@ -138,18 +138,18 @@ * in a series. * With the optional parameter codepreemptive/code set to codetrue/code * a pre-emptive caching is activated. When a resource is requested with - * pre-emptive caching, this transformer always attempts to get the + * pre-emptive caching, this transformer always attempts to get the * content from the cache. If the content is not in the cache, it is * of course retrieved from the original source and cached. * If the cached resource has expired, it is still provided. The cache * is updated by a background task. This task has to be started * beforehand. - * + * * @author a href=mailto:[EMAIL PROTECTED]Carsten Ziegeler/a * @author a href=mailto:[EMAIL PROTECTED]Andrew C. Oliver/a * @version CVS $Id$ */ -public class CIncludeTransformer +public class CIncludeTransformer extends AbstractSAXTransformer implements Disposable, CacheableProcessingComponent { @@ -178,30 +178,30 @@ /** The configuration of includexml */ protected Parameters configurationParameters; - + /** The parameters for includexml */ protected SourceParameters resourceParameters; - + /** The current state: STATE_ */ protected int state; - + protected IncludeCacheManager cacheManager; protected IncludeCacheManagerSession cachingSession; protected boolean compiling; - + protected IncludeXMLConsumer filter; - + protected XMLSerializer recorder; - + protected AttributesImpl srcAttributes = new AttributesImpl(); - + protected boolean supportCaching; - + /** Remember the start time of the request for profiling */ protected long startTime; - + /** * Constructor * Set the namespace @@ -209,7 +209,7 @@ public CIncludeTransformer() { this.namespaceURI = CINCLUDE_NAMESPACE_URI; } - + /** * Setup the component. */ @@ -267,7 +267,7 @@ this.configurationParameters = null; this.resourceParameters = null; if (this.getLogger().isErrorEnabled()) { -this.getLogger().debug(Finishing CachingCIncludeTransformer, time: + (System.currentTimeMillis() - this.startTime)); +this.getLogger().debug(Finishing
cvs commit: cocoon-2.1/src/documentation/xdocs/installing updating.xml
joerg 2003/10/16 14:41:59 Modified:src/documentation/xdocs/installing updating.xml Log: additional comments added (reported by Lars Huttar) Revision ChangesPath 1.22 +67 -34 cocoon-2.1/src/documentation/xdocs/installing/updating.xml Index: updating.xml === RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/installing/updating.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- updating.xml 14 Oct 2003 21:41:16 - 1.21 +++ updating.xml 16 Oct 2003 21:41:59 - 1.22 @@ -12,36 +12,38 @@ /header body - - s1 title=Updating Cocoon - p + s1 title=Updating Cocoon + p Please take your time to read this document completely before trying to upgrade from a Cocoon 2.0.x installation to 2.1 (or above). You can also read it if you want to know what was going on in the development of Cocoon. - /p - p + /p + p The Cocoon team took great care in making this new version as compatible as possible. However, in order to achieve even more flexibility, usability and performance, the internal architecure of Cocoon has been improved. Due to these improvements it has not been possible to be compatible in every little detail. If you follow the instructions of document closely, however, you should be able to quickly upgrade your Cocoon 2.0.x installation. - /p - p - The Cocoon team has developed many Avalon components that are not specific to Cocoon - and therefore have been donated to the Avalon Excalibur project and moved out - of Cocoon. This has led to some configuration changes which are also described - in this document. - /p - /s1 + /p + p +The Cocoon team has developed many Avalon components that are not specific to Cocoon +and therefore have been donated to the Avalon Excalibur project and moved out +of Cocoon. This has led to some configuration changes which are also described +in this document. + /p + /s1 s1 title=Sitemap - pThere are some changes in the sitemap and in the configuration of some components in - the sitemap./p + noteThere are some changes in the sitemap and in the configuration of some +components in the sitemap. In general we recommend you to start with a new +sitemap from 2.1 and to adapt it to your needs. But for manual migration we +will list as many changes as possible./note s2 title=Pipelines configuration in the sitemap p The configuration of the pipelines has moved from cocoon.xconf to the sitemap. - To update your installation, you have to remove the event-pipeline and stream-pipeline section - from your cocoon.xconf and add the codemap:pipes/code section to the codemap:components/code section + To update your installation, you have to remove the event-pipeline and stream-pipeline + section from your cocoon.xconf (see also the cocoon.xconf section) and add the + codemap:pipes/code section to the codemap:components/code section of your sitemap. You can find the pipelines components definition in the sample main sitemap of Cocoon. Here is an example: /p @@ -75,42 +77,73 @@ /map:pipelines /map:sitemap ]]/source - pThis is similar to choosing the type of a generator or any other sitemap - component. If the type attribute is omitted, the default configuration from the codemap:components/code - section is used. + pThis is similar to choosing the type of a generator or any other sitemap component. + If the type attribute is omitted, the default configuration from the + codemap:components/code section is used. /p - pSo it's not that bad, despite incompatible changes in the Cocoon code there is - little to do to update your Cocoon installation./p -/s2 - s2 title=Individual configuration of pipelines -pThe sitemap now provides individual configuration of codemap:pipeline/code sections. - You can now define one pipeline using caching, another one not using - caching at all and a third one using a different caching implementation, for example. -/p /s2 s2 title=FOP Serializer pRelative paths in FOP serializer's codelt;user-configgt;/code are now resolved relatively to the directory that contains the sitemap./p pAll Cocoon URIs are supported too./p /s2 - s2 title=Namespace changes + s2 title=Sitemap components +pSome of the sitemap components have been removed from Cocoon sources, others were renamed. + If you have the old declaration in your sitemap, you will get + codeClassNotFoundException/codes. Trial and error will probably be
cvs commit: cocoon-site/site/2.1/installing updating.html
joerg 2003/10/16 14:44:11 Modified:site/2.1/installing updating.html Log: additional comments added (reported by Lars Huttar) Revision ChangesPath 1.10 +130 -81 cocoon-site/site/2.1/installing/updating.html Index: updating.html === RCS file: /home/cvs/cocoon-site/site/2.1/installing/updating.html,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- updating.html 12 Oct 2003 17:46:36 - 1.9 +++ updating.html 16 Oct 2003 21:44:11 - 1.10 @@ -216,13 +216,24 @@ a href=#Pipelines+configuration+in+the+sitemapPipelines configuration in the sitemap/a /li li -a href=#Individual+configuration+of+pipelinesIndividual configuration of pipelines/a +a href=#FOP+SerializerFOP Serializer/a /li li -a href=#FOP+SerializerFOP Serializer/a +a href=#Sitemap+componentsSitemap components/a +/li +li +a href=#Error+handlingError handling/a +/li +/ul /li li a href=#Namespace+changesNamespace changes/a +ul class=minitoc +li +a href=#Request+GeneratorRequest Generator/a +/li +li +a href=#I18nTransformerI18nTransformer/a /li /ul /li @@ -273,47 +284,49 @@ /ul /li /ul - - + a name=N1001B/aa name=Updating+Cocoon/a h3Updating Cocoon/h3 div style=margin-left: 0 ; border: 2px -pPlease take your time to read this document completely before trying to upgrade from - a Cocoon 2.0.x installation to 2.1 (or above)./p p - This is a brief discussion of the changes between the latest official release 2.1.2 - and the current development version of Apache Cocoon. - You only need this information if you are updating an existing Cocoon installation, or - if you want to know what is going on in the development of Cocoon. - /p +Please take your time to read this document completely before trying to upgrade from +a Cocoon 2.0.x installation to 2.1 (or above). You can also read it if you want to +know what was going on in the development of Cocoon. + /p p The Cocoon team took great care in making this new version as compatible as possible. However, in order to achieve even more flexibility, usability and performance, the internal architecure of Cocoon has been improved. Due to these -improvements it has not been possible to be compatible in every little detail. +improvements it has not been possible to be compatible in every little detail. If you follow the instructions of document closely, however, you should be able to quickly upgrade your Cocoon 2.0.x installation. - /p + /p p - The Cocoon team has developed many Avalon components that are not specific to Cocoon - and therefore have been donated to the Avalon Excalibur project and moved out - of Cocoon. This has led to some configuration changes which are also described - in this document. - /p +The Cocoon team has developed many Avalon components that are not specific to Cocoon +and therefore have been donated to the Avalon Excalibur project and moved out +of Cocoon. This has led to some configuration changes which are also described +in this document. + /p /div -a name=N1002D/aa name=Sitemap/a +a name=N1002A/aa name=Sitemap/a h3Sitemap/h3 div style=margin-left: 0 ; border: 2px -pThere are some changes in the sitemap and in the configuration of some components in - the sitemap./p -a name=N10035/aa name=Pipelines+configuration+in+the+sitemap/a +div class=frame note +div class=labelNote/div +div class=contentThere are some changes in the sitemap and in the configuration of some +components in the sitemap. In general we recommend you to start with a new +sitemap from 2.1 and to adapt it to your needs. But for manual migration we +will list as many changes as possible./div +/div +a name=N10032/aa name=Pipelines+configuration+in+the+sitemap/a h4Pipelines configuration in the sitemap/h4 div style=margin-left: 0 ; border: 2px p The configuration of the pipelines has moved from cocoon.xconf to the sitemap. - To update your installation, you have to remove the event-pipeline and stream-pipeline section - from your cocoon.xconf and add the span class=codefragmap:pipes/span section to the span class=codefragmap:components/span section + To update your installation, you have to remove the event-pipeline and stream-pipeline + section from your cocoon.xconf (see also the cocoon.xconf section) and add the + span class=codefragmap:pipes/span section to the span class=codefragmap:components/span section of your sitemap. You can find the pipelines components definition in the sample main sitemap of Cocoon. Here is an example: /p @@ -347,76
cvs commit: cocoon-site/site/2.1/userdocs/concepts modules-ref.html modules-ref.pdf
joerg 2003/10/16 14:47:01 Added: site/2.1/userdocs/concepts modules-ref.html modules-ref.pdf Log: missing pages added Revision ChangesPath 1.1 cocoon-site/site/2.1/userdocs/concepts/modules-ref.html Index: modules-ref.html === !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd; html head META http-equiv=Content-Type content=text/html; charset=UTF-8 titleInput Modules Reference/title link type=text/css href=../../skin/page.css rel=stylesheet /head body text=#00 bgcolor=#FF !--= start Navigation Path ==-- table summary=navigation path width=100% border=0 cellpadding=0 cellspacing=0 tr td nowrap=nowrap valign=middle bgcolor=#CFDCED height=20img height=1 width=5 alt= src=../../skin/images/spacer.gif class=spacer!--= breadcrumb trail (javascript-generated) --font size=2 face=Arial, Helvetica, Sans-serifscript src=../../skin/breadcrumbs.js language=JavaScript type=text/javascript/script/font/td /tr tr td bgcolor=#4C6C8F height=2img height=2 width=2 alt= src=../../skin/images/spacer.gif class=spacer/td /tr /table !--= end Navigation Path ==-- !--= start Banner ==-- table summary=header with logos width=100% border=0 cellpadding=0 cellspacing=0 tr !--= start Group Logo ==-- td bgcolor=#294563a href=http://cocoon.apache.org/;img border=0 class=logoImage alt=Apache Cocoon src=../../images/cocoon-project-logo.png/a/td !--= end Group Logo ==-- !--= start Project Logo ==--td width=100% align=center bgcolor=#294563a href=http://cocoon.apache.org/;img border=0 class=logoImage alt=Apache Cocoon src=../../images/project-logo.gif/a/td !--= end Project Logo ==-- !--= start Search ==--td valign=top rowspan=2 bgcolor=#294563 form target=_blank action=http://www.google.com/search; method=get table summary=search border=0 cellspacing=0 cellpadding=0 bgcolor=#4C6C8F tr td colspan=3img height=10 width=1 alt= src=../../skin/images/spacer.gif class=spacer/td /tr tr tdimg height=1 width=1 alt= src=../../skin/images/spacer.gif class=spacer/tdtd nowrap=nowrapinput value=cocoon.apache.org name=sitesearch type=hiddeninput size=15 name=q id=query type=textimg height=1 width=5 alt= src=../../skin/images/spacer.gif class=spacerinput name=Search value=Search type=submit br font face=Arial, Helvetica, Sans-serif size=2 color=white the Apache Cocoon site /font/tdtdimg height=1 width=1 alt= src=../../skin/images/spacer.gif class=spacer/td /tr tr tdimg alt= border=0 height=10 width=9 src=../../skin/images/search-left.gif/tdtdimg height=1 width=1 alt= src=../../skin/images/spacer.gif class=spacer/tdtdimg alt= border=0 height=10 width=9 src=../../skin/images/search-right.gif/td /tr /table /form /td !--= start Search ==--td bgcolor=#294563img height=10 width=10 alt= src=../../skin/images/spacer.gif class=spacer/td /tr tr td valign=bottom bgcolor=#294563 colspan=2 !--= start Tabs ==-- div class=tab table summary=tab bar border=0 cellpadding=0 cellspacing=0 tr td width=6img alt= height=8 width=6 src=../../skin/images/spacer.gif/tdtd valign=bottom table summary=selected tab style=height: 1.8em border=0 cellpadding=0 cellspacing=0 tr td valign=top width=5 bgcolor=#4C6C8Fimg height=5 width=5 alt= src=../../skin/images/tabSel-left.gif/tdtd valign=middle bgcolor=#4C6C8Ffont color=#ff size=2 face=Arial, Helvetica, Sans-serifba class=base-selected href=../../index.htmlHome/a/b/font/tdtd valign=top width=5 bgcolor=#4C6C8Fimg height=5 width=5 alt= src=../../skin/images/tabSel-right.gif/td /tr /table /td /tr /table /div !--= end Tabs ==-- /tdtd bgcolor=#294563img alt= width=1 height=1 src=../../skin/images/spacer.gif class=spacer/td /tr tr td bgcolor=#4C6C8F colspan=4img width=1 height=10 alt= src=../../skin/images/spacer.gif class=spacer/td /tr /table !--= end Banner ==-- !--= start Menu, NavBar, Content ==-- table summary=page content bgcolor=#ff width=100% border=0 cellpadding=0 cellspacing=0 tr td valign=top table summary=menu border=0 cellspacing=0 cellpadding=0 tr !--= start left top NavBar ==-- td rowspan=3 valign=top table summary=blue line border=0 cellpadding=0 cellspacing=0 tr td bgcolor=#294563img width=10 height=1 alt=