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.ib...@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: cib...@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: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/