camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Müller <christian.muel...@gmail.com>
Subject Re: [HEADS UP] - TypeConverter improved in Camel 2.10
Date Fri, 20 Apr 2012 19:58:07 GMT
+1

Best,
Christian

On Fri, Apr 20, 2012 at 12:24 PM, Claus Ibsen <claus.ibsen@gmail.com> wrote:

> On Wed, Apr 18, 2012 at 7:23 PM, Claus Ibsen <claus.ibsen@gmail.com>
> wrote:
> > On Wed, Apr 18, 2012 at 6:41 PM, Claus Ibsen <claus.ibsen@gmail.com>
> wrote:
> >> Hi
> >>
> >> Okay I found a little time, trying to do the backport. There is 3
> >> commits in total.
> >>
> >
> > Okay backported to 2.9 branch.
> >
>
> I would like to backport to the 2.8 branch as well, so it can make it
> into the next 2.8 release.
>
>
> > Bengt you are of course welcome to test the 2.9.3-SNAPSHOT on your end
> > if it fixed the issue onwards.
> >
> >
> >>
> >> On Tue, Apr 17, 2012 at 7:46 AM, Claus Ibsen <claus.ibsen@gmail.com>
> wrote:
> >>> Hi
> >>>
> >>> Recently I have spent some time to improve the type converters in
> Camel 2.10.
> >>>
> >>> Most significant is the following changes
> >>> a) fix important bug
> >>> b) Fail fast
> >>> c) tryConvertTo
> >>> d) Expose utilization statistics
> >>>
> >>>
> >>> Ad a)
> >>> A bug was reported in https://issues.apache.org/jira/browse/CAMEL-5164
> >>>
> >>> In summary if using camel-jaxb that offers a fallback type converter,
> >>> and a failure occurs during XML marshalling,
> >>> then subsequent new XML messages may fail, despite they were okay.
> >>>
> >>> Ad b)
> >>> Due to a we need to detect this faster and better. So now the type
> >>> converter system in Camel will fail fast
> >>> by throwing a new TypeConversionException (its runtime). That allows
> >>> Camel to detect the (a) failure faster
> >>> from a fallback type converter (regular non fallback would fail fast
> already)
> >>>
> >>> This means the API is also consistent from caller point of view. You
> >>> get a TypeConversionException if there
> >>> was a failure during a type conversion attempt.
> >>>
> >>> Ad c)
> >>> There is some places in camel-core where we want to only try to
> >>> convert. For example with the binary predicates
> >>> where you want to compare if X > Y. Then we try to coerce X and Y to
> >>> numeric values.
> >>>
> >>> Likewise there is a few other spots where we do this, such as the XSLT
> >>> component, where we try to use StAX, SAX, before DOM etc.
> >>> So we have introduced a tryConvertTo API, which would not fail during
> >>> type conversion.
> >>>
> >>> Ad d)
> >>> The type converter system is used a lot in Camel during routing
> >>> messages. Now we expose utilization statistics,
> >>> which allow end users to spot if there is too many missing type
> >>> conversion attempts. For example a route may attempt to convert, where
> >>> there is no suitable type converter. This can now more easily be
> >>> spotted, allowing the end user to either. Implement such a missing
> >>> type converter, or
> >>> correct a mistake in his application or the likes.
> >>>
> >>> The statistics is exposed in JMX and as well when Camel shutdown as a
> log line.
> >>>
> >>>
> >>>
> >>>
> >>> On another note I am also hunting down to avoid using the
> >>> PropertiesEditorTypeConverter, as it has many flaws
> >>> - its not thread safe
> >>> - its slow
> >>> - and 3rd party projects can add property editors that influence
> >>> Camel's type converts (eg ActiveMQ has a String -> List) properties
> >>> editor that turns a String into a List of ActiveMQDestination
> >>> instances.
> >>> - it does not understand generics in List/Collection type, eg the
> >>> ActiveMQ example above
> >>>
> >>> And basically we uses it only in Camel for doing some of the simpler
> >>> basic conversions: String <-> Numeric. And so forth. But over the
time
> >>> we have added those as type converter directly in Camel, as they are
> >>> faster as well.
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> Claus Ibsen
> >>> -----------------
> >>> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> >>> FuseSource
> >>> Email: cibsen@fusesource.com
> >>> Web: http://fusesource.com
> >>> Twitter: davsclaus, fusenews
> >>> Blog: http://davsclaus.blogspot.com/
> >>> Author of Camel in Action: http://www.manning.com/ibsen/
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> >> FuseSource
> >> Email: cibsen@fusesource.com
> >> Web: http://fusesource.com
> >> Twitter: davsclaus, fusenews
> >> Blog: http://davsclaus.blogspot.com/
> >> Author of Camel in Action: http://www.manning.com/ibsen/
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> > FuseSource
> > Email: cibsen@fusesource.com
> > Web: http://fusesource.com
> > Twitter: davsclaus, fusenews
> > Blog: http://davsclaus.blogspot.com/
> > Author of Camel in Action: http://www.manning.com/ibsen/
>
>
>
> --
> Claus Ibsen
> -----------------
> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message