Sylvain Wallez wrote:

Carsten Ziegeler wrote:

As discussed recently, our internal redirects don't work the way one would usually suspect. If you do an internal
redirect, like:


<map:redirect-to uri="cocoon://some-pipeline"/>

and the called pipeline has an error, then the error handler
of the calling pipeline (containing the redirect) is called
and not the error handler of the called pipeline.
So, the above line is not the same as:

<map:redirect-to uri="some-pipeline"/>

So, we have three choices to change this:

a) Make an internal redirect a real forward (This is an
  incompatible change)

b) Make it configurable on the uri, like
<map:redirect-to uri="cocoon://some-pipeline?cocoon:forward=true"/>

c) Make it configurable on the map:redirect, like
<map:redirect-to uri="cocoon://some-pipeline" forward="true"/>

For solutions b) and c) we can discuss the correct syntax later on,
let's for now focus on the way we want to have it.

Although this is an incompatible change, I prefer a) as it is
imho the right way of doing the redirect.

Please cast your votes for either a), b) or c)


+1 for (a) and therefore -1 for (b) and (c).

However, as discussed, a "cocoon:handle-errors=true|false" parameter is useful for use with the SourceResolver.


Why (a), (b), or (c) ? There is always option of (d):

d) Make it configurable on handle-errors element of the called pipeline. This way, behavior of redirect-to does not need to be changed, and this feature is more useful in general - especially in "portlets". Or is this feature will be subject of next vote? :)

I'm +1 for (d), +0 for (a), -0.5 for (b) and (c).


Vadim





Reply via email to