camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: [HEADS UP] - TypeConverter improved in Camel 2.10
Date Tue, 24 Apr 2012 08:31:04 GMT
The error was found after removing the converter of String to List 
class in CXF.
The removed converter has covered the issue for a long time :(

On Tue Apr 24 10:39:56 2012, Hadrian Zbarcea wrote:
> I think you're totally mistaken in attributing the cause of the
> conversion to the a list of ActiveMQDestinations to the property
> editor. It doesn't even kick in. The converter from the activemq camel
> camel component kicked in and fooled you :).
>
> $0.02,
> Hadrian
>
> On 04/23/2012 10:27 PM, Willem Jiang wrote:
>> +1 for the new change.
>>
>> It's very confuse me that the a String can be turned into a List of
>> ActiveMQ in the CXF producer last week.
>> The fix make the camel converter more clean now :)
>>
>> On Tue Apr 24 02:46:41 2012, Claus Ibsen wrote:
>>> Hi
>>>
>>> Just a heads up that I just committed 2 changes trunk and 2.9 branches
>>>
>>> a)
>>> The java beans property editor is no longer used as fallback type
>>> converter by Camel.
>>>
>>> They are not thread safe, slow, and can cause unforseen side effects
>>> when adding JARs to a JVM.
>>> And they dont take generics into account so converting to a List /
>>> Array etc. Can trigger unforseen effects such as a String -> List
>>> will be converted to a List of ActiveMQDestination objects.
>>>
>>>
>>> b)
>>> optimized conversion to primitives.
>>> This is now faster.
>>>
>>> For example converting in a for loop 10.000 times runs now 5-10x
>>> faster :)
>>> Yeah its not the typical use-case, but a cheap way to see it runs
>>> faster.
>>>
>>>
>>>
>>> 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/
>>>
>>>
>>>
>>
>>
>>
>> --
>> Willem
>> ----------------------------------
>> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
>> FuseSource
>> Web: http://www.fusesource.com
>> Blog: http://willemjiang.blogspot.com (English)
>> http://jnn.javaeye.com (Chinese)
>> Twitter: willemjiang
>> Weibo: willemjiang
>>
>



--
Willem
----------------------------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang


Mime
View raw message