On Wed, Apr 18, 2012 at 7:23 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Wed, Apr 18, 2012 at 6:41 PM, Claus Ibsen <claus.ib...@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.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/ > > > > -- > 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/