cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Re: [Proposal] Add pass-through capability to mounted pipelines
Date Mon, 30 Aug 2004 13:58:23 GMT
Nicola Ken Barozzi wrote:

> 
> Summary:
> 
> Developing Forrest, I seem to have stumbled in the need of mounted
> pipelines that do not halt processing if a match is not found.
> 
> Thus I propose that we add the pass through='true|[false]' attribute to 
> make it possible for mounts not to necessarily halt processing if no 
> match is found.
> 
>                             -=--=--=--=--=-
> Rationale:
> 
> It's typical to use the URL space to partition *processing*; because of 
> this it's natural to match a URL in the base sitemap and delegate 
> subURLs to mounted sitemaps.
> 
> In Forrest we have decided not to do this, and to keep the whole URI 
> space free for uses to fill with their semantical partitionings. To 
> decide how to process a file we use file extensions and eventually
> peek inside to take a look at the DTD.  This makes it impractical to
> partition the sitemap in several mounted sitemaps.
> 
> It shifted from impractical to impossible as soon we tried to make it 
> possible for users to add their sitemap to the processing. There is no 
> clean way i know of ATM for me to delegate a part of the matches to an 
> external sitemap without giving away a whole URL space. ATM we are 
> asking users to *copy* the sitemap they want to use and change it, but 
> it has already proved over time to be extremely fragile for updates. We 
> do not want to keep such a lame contract with our users.
> 
> I hoped that calling the user pipeline with the cocoon: protocol and 
> using a resource-exists could route round the issue, but it's still not 
> ok. If a match is found, I have to process the pipeline two times, or 
> rely on caching, which is not always possible or desirable.
> 
> So it seems that the only viable solution is to make it possible for 
> mounted pipelines to not fail processing if a match is not found, and 
> have the base sitemap resume processing. This is in line with what 
> resources do now (in an unwanted but nevertheless welcome and happily 
> used bug). James also has a similar thing in the mail pipeline matches, 
> that can <passThrough>.
> 
> Thus:
> 
> I propose that we add the passthrough='true|[false]' attribute to make 
> it possible for mounts not to necessarily halt processing if no match is 
> found.
> 
> The proposed element for it is the <mount> node, so that the base 
> sitemap has the say on whether it wants to make the subsitemap 
> completely responsible or not of the subsequent processing. The default 
> behavior would be identical to what we have now.
> 
> WDOT?

+1, makes sense and works well with real blocks too.

-- 
Stefano.


Mime
View raw message