cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <>
Subject Re: [status & RT] design challenges
Date Fri, 05 Apr 2002 20:59:48 GMT
Nicola Ken Barozzi wrote:
> From: "Stefano Mazzocchi" <>
> > My impression is that pipe-aware selection is 'forcing' metadata to pass
> > 'thru' the pipeline while it doesn't really make sense to do so.
> >
> > So, IMO, there must be some transformers that obtain the required
> > selection information from the pipeline, place it somewhere else
> > (probably someplace in the object model) and have the selectors look at
> > those 'parallel signals' without having to mess with the pipeline.
> Bud don't Selectors get to run *before* Transformers.

Not necessarely, but I get your point.

> This is the whole point it seems.
> It's not a matter of how, but when.

ok, point taken (see below)
> Selectors can run after Transformers only if another pipeline is called, and
> this will basically force you to use the flow pipeline for this, since in
> fact it's flow we're talking about.
> As I see it, Matchers, Selectors and stuff can easily be put all in the flow
> part, but this makes Cocoon too "procedural".
> An easy tip: if you serve web pages, use the pipeline only. If you need to
> make complex decisions and procedures on the flow, use the flowmap.

I wouldn't venture to state design patterns *before* the flowmap and the
sitemap get integrated.

Ovidiu, how long do you think it would take to have the two live

> > So, I restate my -1 on pipe-aware selection and I propose the creation
> > of a 'parallel transport layer' between components that is based on
> > objects and not SAX events.
> Could you elaborate more on this?
> I think it's something like having a request object, but seen as a parallel
> pipeline.
> I'm +1000 on this, since it finally fullfilles the original intention we had
> with Cocoon2 pre-alpha to have a parallel metadata pipeline, where there are
> also notifications.
> Gee, it seems that you saw right before needing it! :-O

No, careful. The wild idea of a meta-pipeline had to deal with
debugging, error handling and profiling. It was not meant to be another
'transport' of information between components.

We might have this in place already (I don't really know the last
changes in  such a great detail), but it would be enough to have
components 'Contextualizable' with a request-living context where
components read and write.

Now, if a component has the ability to write something on the request
context, a selector has the ability to select based on this variable
read from the context.

So, if we have an error in a transformer that writes on a database, we
don't have to 'write this information inside the pipeline' in order for
a subsequent selector to get it and behave consequently.

I'm perfectly aware of the fact that components must pass information
one another, but, why in hell should they use something so ackword as
SAX events to write and XPath queries to read when they can simply do an
hashtable lookup?

Do you pipe-aware selector fans see my point?

Stefano Mazzocchi      One must still have chaos in oneself to be
                          able to give birth to a dancing star.
<>                             Friedrich Nietzsche

To unsubscribe, e-mail:
For additional commands, email:

View raw message