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 Sat, 21 Apr 2012 10:01:17 GMT
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.
>

Okay I have backported this to the 2.8 branch now.



>
>> 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/



-- 
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