camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: [HEADS UP] - TypeConverter improved in Camel 2.10
Date Wed, 18 Apr 2012 16:41:06 GMT
Hi

Okay I found a little time, trying to do the backport. There is 3
commits in total.


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/

Mime
View raw message