cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carsten Ziegeler" <cziege...@s-und-n.de>
Subject RE: [RT] ParentAware components (was:Re: Flow Scoping, was...)
Date Mon, 31 Mar 2003 08:08:06 GMT
+1

Carsten

> From: Sylvain Wallez [mailto:sylvain.wallez@anyware-tech.com]
> 
> <RT-starts/>
> 
> This revives an idea I had a long time ago when writing the 
> treeprocessor : "parent-aware" components.
> 
> The elements in the <map:component> part of the sitemap are 
> ComponentSelectors (CS) with a special behaviour : they know their 
> "parent", i.e. the component that has the same role in the parent 
> ComponentManager (handled by the parent sitemap), in order to implement 
> component inheritance : if a CS is asked for a component it doesn't know 
> of, it delegates the call to its parent. It is "parent-aware".
> 
> This is not useful only for sitemap component selectors if we consider 
> the fact that <map:components> is nothing more than an xconf file. 
> Consider for example datasources : we have defined global datasources in 
> cocoon.xconf, and want local datasources defined (and visible) only in a 
> particular subsitemap. Currently, if we write <datasources> in 
> <map:components>, we hide global datasources. If we used parent-aware 
> selectors, we could _augment_ the set of available datasources. The same 
> can be used for InputModules.
> 
> Up to know, I thought this behaviour could be mostly useful for 
> ComponentSelectors, but the Interpreter use case proves that it can be 
> useful for "regular" (i.e. non-CS) components as well.
> 
> Implementation-wise, I'm thinking of defininig parent-aware by a new 
> lifecycle interfacee :
>   public interface ParentAware {
>     public void setParent(Object parent)
>   }
> 
> Any component implementing this interface will be given once (before 
> initialize()) the object that implements the same role in the parent 
> component manager.
> 
> Thoughts ?
> 
> -- 
> Sylvain Wallez                                  Anyware Technologies
> http://www.apache.org/~sylvain           http://www.anyware-tech.com
> { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
> 
> 

Mime
View raw message