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