Carsten Ziegeler wrote:
> 
> Hi,
> 
> I currently run into the problem that I created pipelines which I
> thought were possible, but currently are not support by Cocoon:
> 
> It is not possible to nest anything other than a map:part into
> a map:aggregate, so the following doesn't work:
> <map:aggregate>
>   <map:select type="test">
>     <map:when test="a">
>       <map:part src="a"/>
>     </map:when>
>     <map:otherwise>
>       <map:part src="b"/>
>     </map:otherwise>
>   </map:select>
>   <map:part src="constant"/>
> </map:aggregate>
> 
> Is this a bug or is this by design?

I didn't partecipate in the design of the 'aggregating' semantics of the
sitemap, but I would think the above is a bug. I don't see why it
shouldn't be possible to use the above since it would be useful in many
situations.

> My personal opinion is, that this should be possible.

I tend to resonate with your vision.
 
> Another restriction we currently have is already entered as a bug with
> the number 4357: An Action is not possible as a root element inside
> a map:pipeline, only map:match can be a used as a root element.
> So here again, is this by design?

oh, god, this is a big one.

Here the restriction is by design, but I do see the need to question it.

My perception is that this might open to door to a shitload of semantic
changes to adapt to the required flow-map like semantics.

But at the same time, I do see the need for use of match-less actions:
the question is how much of a 'hack' this is.
 
> I think we shouldn't make such restrictions. But at least if we make
> these restrictions we should document them.

+1 for documenting all the restriction. This is obvious.

-0 for allowing this change before the flowmap semantics are being
worked on. I mean: if you allow something like

 <pipeline>
  <act name="pre-matching"/>
  <match>...</match>
  <match>...</match>
  <match>...</match>
 </pipeline>

people start doing

 <pipeline>
  <act name="pre-matching"/>
  <match>...</match>
  <match>...</match>
  <match>...</match>
  <act name="post-matching"/>
 </pipeline>

and then

 <pipeline>
  <act name="pre-matching"/>
  <match>...</match>
  <act name="intra-matching"/>
  <match>...</match>
  <match>...</match>
  <act name="post-matching"/>
 </pipeline>

but then the question is: is "intra-matching" performed if the first
match is successful?

Placing map:act at the same level of map:match can be perceived as a
design mistake, but might not be since 'matcher' and 'actions' are not
pipeline components since they don't work on the pipeline directly.

So, the options I see are:

1) make it illegal to have unmatched actions

2) encapsulate unmatched actions in defined places

 <pipeline>
  <pre-matching>
   <act>
  </pre-matching>
  <match>...</match>
  <match>...</match>
  <match>...</match>
  <post-matching>
   <act>
  </post-matching>
 </pipeline>

3) make it illegal to have intra-matching actions

[the option of allowing intra-matching actions is, IMO, wrong by design]

The real question is: are those unmatched action useful in real life?

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



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to