You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Sylvain Wallez <sy...@apache.org> on 2003/11/10 16:44:18 UTC

Re: Migrating TreeProcessor to Fortress

Unico Hommes wrote:

>
>
>
> Sylvain Wallez wrote:
>
>> Ryan Hoegg wrote:
>>
>>> peter royal wrote:
>>>
>>>> Anyone:
>>>>
>>>> Any thoughts about using Jelly as the builder for the sitemap?
>>>>
>>>> Its usage can be completely hidden, but as a tag processor, it 
>>>> might work very well. We could use it to construct a bean-graph to 
>>>> model the sitemap.
>>>>
>>>> -pete
>>>
>>>
>>>
>>>
>>> Sounds sensible.  Is jelly in use anywhere else in Cocoon?  It 
>>> sounds like a great fit.
>>
>>
>>
>>
>> Jelly is not currently used in Cocoon. The idea is interesting, but 
>> it also means a rewrite of a large part of the sitemap engine, and 
>> doesn't give an immediate answer to the mixing between components and 
>> container outlined by Berin.
>>
>> Note that I don't state this to protect the current treeprocessor, 
>> but to minimize the work required to move to Fortress. Now I 
>> recognize I don't know Jelly and thus how hard this would be.
>>
>
> I agree with this. Tonight I have been looking at the treeprocessor 
> code and think it would be quite straightforward to move things to 
> Fortress if we hold on to the idea of nodes as components. Proper 
> components that is, as opposed to what has been previously dubbed 
> 'pseudo components'. For this ProcessingNode and ProcessingNodeBuilder 
> should be merged.
>
> The only thing that was not immediately clear to me was how to build 
> the component graph structure. It seems that from a container POV the 
> sitemap node elements perform two seperate functions.
>
> Consider the following snippet:
>
> <pipeline>
>   <match pattern="...">
>     ...
>   </match>
> </pipeline>
>
> Here the match element both represents a component declaration of a 
> MatchNode to the container _and_ a configuration element representing 
> a child node to the PipelineNode.


Nope: the component declaration is in the <map:matcher> declaration in 
the <map:components> section. This is where its class, configuration and 
all the component declaration stuff is.

A <map:match> is a _use_ of that component. Sure, it can be transformed 
in a component declaration by merging in the configuration that's in 
<map:components> for each use of a particular component, but you'll end 
up with as many different independent components as there are sitemap 
_statements_, which will be a huge memory eater.

Or did I miss something?

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com