+1
I'm ok with an API change for 2.11.0 (not for 2.10 or 2.9), if needed.

Best,
Christian

On Mon, Sep 10, 2012 at 3:47 PM, Daniel Kulp <dk...@apache.org> wrote:

>
> What about a:
>
> public interface SourceAwareExceptionHandler extends ExceptionHandler {
>   …add three methods….
> }
>
> Thus, no "old" code needs to change at all unless they want to use the new
> methods.   They would need an instanceof if they do want to use the new
> methods.
>
> HOWEVER, we could also do an instanceof during the addExceptionHandler and
> wrapper any non-SourceAwareExceptionHandler handler with an instance that
> would forward all the methods to the old methods (dropping the source).
> Thus, all calls to getExceptionHandler would be given a SourceAware version.
>
> Dan
>
>
>
> On Sep 10, 2012, at 6:56 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> > Hi
> >
> > See ticket, and if you got the time the nabble link
> > https://issues.apache.org/jira/browse/CAMEL-5587
> >
> > The API on org.apache.camel.spi.ExceptionHandler has 3 methods for
> > handling exceptions,
> >
> > CAMEL-5587 is a ticket to enhance that API with a new parameter that
> > has the source that called the handler.
> > This allows end users to know the source, and get additional details,
> > such as if it was from a consumer, which consumer
> > and the endpoint etc.
> >
> > This is needed when you for example have a custom exception handler
> > and use it for many Camel endpoints (routes etc).
> >
> > Mind this only affects either
> > - component writers if using this API
> > - end users if using a custom exception handler.
> > Both of these cases is not often used.
> >
> >
> >
> > As this API is not backwards compatible we could
> > a) wait for Camel 3.0
> > b) introduce the change
> > c) introduce the change, but add the 3 old methods to
> > org.apache.camel.spi.ExceptionHandler and mark the as @deprecated
> >
> > Ad a)
> > We can wait a long time then.
> >
> > Ad b)
> > This requires older components to be recompiled to support newer Camel
> > releases (if the component uses the API directly).
> >
> > Ad c)
> > This allows older components to be compatible with newer Camel
> > releases (if the component uses the API directly).
> >
> >
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > FuseSource
> > Email: cib...@fusesource.com
> > Web: http://fusesource.com
> > Twitter: davsclaus, fusenews
> > Blog: http://davsclaus.com
> > Author of Camel in Action: http://www.manning.com/ibsen
>
> --
> Daniel Kulp
> dk...@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


--

Reply via email to