Camel
  1. Camel
  2. CAMEL-3776

Improve the performance for JAXB data format

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.8.5, 2.9.2, 2.10.0
    • Component/s: camel-jaxb
    • Labels:
      None

      Description

      We should use the ServicePool in camel-core to pool JAXB / marshaller / unmarshaller.
      Of course ppl should be able to customize pool settings and if to be used.

      Also mind that for type converters with JAXB you do not configure a JAXB data format. And thus we should
      still be able to configure and use pooling, so the type converter can be more efficient.

      1. jaxb-pool.patch
        21 kB
        Frank Kootte

        Activity

        Claus Ibsen created issue -
        Claus Ibsen made changes -
        Field Original Value New Value
        Fix Version/s 2.8.0 [ 12316226 ]
        Hide
        Frank Kootte added a comment -

        As I've ran into performance issues parsing a lot of smaller xml payloads using the camel-jaxb component I am interested to hear if any work has been done with regards to the subject.

        Show
        Frank Kootte added a comment - As I've ran into performance issues parsing a lot of smaller xml payloads using the camel-jaxb component I am interested to hear if any work has been done with regards to the subject.
        Hide
        Christian Müller added a comment -

        Hey Frank,
        nobody is working on it because it's target for Camel 3.0.0. At present we are working on Camel 2.10.0.
        If you would like to see this fixed earlier, feel free to vote for it (you has to be logged in into JIRA to be able to vote). I think we could prepone it if needed.
        Best,
        Christian

        Show
        Christian Müller added a comment - Hey Frank, nobody is working on it because it's target for Camel 3.0.0. At present we are working on Camel 2.10.0. If you would like to see this fixed earlier, feel free to vote for it (you has to be logged in into JIRA to be able to vote). I think we could prepone it if needed. Best, Christian
        Hide
        Frank Kootte added a comment - - edited

        Thank you for the swift, quick and clear reply.

        Meanwhile - at TomTom - I have patched the component myself as we've been suffering from BLOCKED threads while retrieving instances of Marshallers & Unmarshallers ( see below stacktrace ) under heavy load. I've added a very basic implementation surrounding an Apache Commons Pool pooling - JAXBContexts ( not strictly required ), Marshallers and Unmarshallers. I will add the patch to the ticket as an attachment when it indeed successfully endures a high load test.

        java.lang.Thread.State: BLOCKED
            at com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory.getInstance(DTDDVFactory.java:44)
            - waiting to lock <6e5a3923> (a java.lang.Class) owned by "http-8080-17" t@158
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.<init>(XML11Configuration.java:538)
            at com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.<init>(XIncludeAwareParserConfiguration.java:125)
            at com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.<init>(XIncludeAwareParserConfiguration.java:86)
            at sun.reflect.GeneratedConstructorAccessor35.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at java.lang.Class.newInstance0(Class.java:355)
            at java.lang.Class.newInstance(Class.java:308)
            at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.newInstance(ObjectFactory.java:349)
            at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.createObject(ObjectFactory.java:154)
            at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.createObject(ObjectFactory.java:97)
            at com.sun.org.apache.xerces.internal.parsers.SAXParser.<init>(SAXParser.java:102)
            at com.sun.org.apache.xerces.internal.parsers.SAXParser.<init>(SAXParser.java:87)
            at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.<init>(SAXParserImpl.java:332)
            at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:122)
            at com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:76)
            at javax.xml.bind.helpers.AbstractUnmarshallerImpl.getXMLReader(AbstractUnmarshallerImpl.java:86)
            at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
            at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184)
            at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshal(FallbackTypeConverter.java:199)
        
        Show
        Frank Kootte added a comment - - edited Thank you for the swift, quick and clear reply. Meanwhile - at TomTom - I have patched the component myself as we've been suffering from BLOCKED threads while retrieving instances of Marshallers & Unmarshallers ( see below stacktrace ) under heavy load. I've added a very basic implementation surrounding an Apache Commons Pool pooling - JAXBContexts ( not strictly required ), Marshallers and Unmarshallers. I will add the patch to the ticket as an attachment when it indeed successfully endures a high load test. java.lang. Thread .State: BLOCKED at com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory.getInstance(DTDDVFactory.java:44) - waiting to lock <6e5a3923> (a java.lang. Class ) owned by "http-8080-17" t@158 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.<init>(XML11Configuration.java:538) at com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.<init>(XIncludeAwareParserConfiguration.java:125) at com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.<init>(XIncludeAwareParserConfiguration.java:86) at sun.reflect.GeneratedConstructorAccessor35.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang. Class .newInstance0( Class .java:355) at java.lang. Class .newInstance( Class .java:308) at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.newInstance(ObjectFactory.java:349) at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.createObject(ObjectFactory.java:154) at com.sun.org.apache.xerces.internal.parsers.ObjectFactory.createObject(ObjectFactory.java:97) at com.sun.org.apache.xerces.internal.parsers.SAXParser.<init>(SAXParser.java:102) at com.sun.org.apache.xerces.internal.parsers.SAXParser.<init>(SAXParser.java:87) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.<init>(SAXParserImpl.java:332) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:122) at com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:76) at javax.xml.bind.helpers.AbstractUnmarshallerImpl.getXMLReader(AbstractUnmarshallerImpl.java:86) at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137) at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184) at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshal(FallbackTypeConverter.java:199)
        Hide
        Frank Kootte added a comment - - edited

        I've attached the patch in its 1st incarnation. I would appreciate the feedback required to land an ( amended ) version in the Camel trunk. We are in the process of testing the patch in our performance test environment. I will attach the findings as soon as they are available.

        Show
        Frank Kootte added a comment - - edited I've attached the patch in its 1st incarnation. I would appreciate the feedback required to land an ( amended ) version in the Camel trunk. We are in the process of testing the patch in our performance test environment. I will attach the findings as soon as they are available.
        Frank Kootte made changes -
        Attachment jaxb-pool.patch [ 12520606 ]
        Hide
        Daniel Kulp added a comment - - edited

        You may not need to pool the unmarshallers. If you use the unmarshall method that takes the XMLStreamReader, then it doesn't need to create a parser and the entire issue is bypassed. (this is what CXF does btw) Thus, you may be able to call convertTo(XMLStreamReader.class) and pass that in.

        Show
        Daniel Kulp added a comment - - edited You may not need to pool the unmarshallers. If you use the unmarshall method that takes the XMLStreamReader, then it doesn't need to create a parser and the entire issue is bypassed. (this is what CXF does btw) Thus, you may be able to call convertTo(XMLStreamReader.class) and pass that in.
        Hide
        Christian Müller added a comment -

        I will have a look at it later or tomorrow...

        Show
        Christian Müller added a comment - I will have a look at it later or tomorrow...
        Hide
        Christian Müller added a comment -

        It doesn't work out of the box. The route

        from("direct:start")
          .convertBodyTo(XMLStreamReader.class)
          .unmarshal(jaxb)
          .to("mock:result");
        

        throws

        Exception in thread "pool-1-thread-2" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>]
        	at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237)
        	at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342)
        	at org.apache.camel.example.UnmarshalTest$1.run(UnmarshalTest.java:73)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        	at java.lang.Thread.run(Thread.java:680)
        Caused by: org.apache.camel.InvalidPayloadException: No body available of type: javax.xml.stream.XMLStreamReader but has value: <purchaseOrder name='Wine' amount='123.45' price='2.22'/> of type: java.lang.String on: Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>. Caused by: No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/>. Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/>]
        	at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102)
        	at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58)
        	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)
        	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
        	at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
        	at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
        	at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223)
        	at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169)
        	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124)
        	... 5 more
        Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/>
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:147)
        	at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)
        	... 43 more
        

        If I change the route to:

        from("direct:start")
          .convertBodyTo(InputStream.class)
          .convertBodyTo(XMLStreamReader.class)
          .unmarshal(jaxb)
          .to("mock:result");
        

        I get the following exception:

        Exception in thread "pool-1-thread-14" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287]
        	at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237)
        	at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342)
        	at org.apache.camel.example.UnmarshalTest$1.run(UnmarshalTest.java:73)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        	at java.lang.Thread.run(Thread.java:680)
        Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: com.ctc.wstx.sr.ValidatingStreamReader@4987b287 of type: com.ctc.wstx.sr.ValidatingStreamReader on: Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287. Caused by: No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287. Exchange[Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287]
        	at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102)
        	at org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:118)
        	at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:52)
        	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)
        	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
        	at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
        	at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
        	at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223)
        	at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169)
        	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124)
        	... 5 more
        Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:147)
        	at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)
        	... 44 more
        
        Show
        Christian Müller added a comment - It doesn't work out of the box. The route from("direct:start") .convertBodyTo(XMLStreamReader.class) .unmarshal(jaxb) .to("mock:result"); throws Exception in thread "pool-1-thread-2" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>] at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237) at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342) at org.apache.camel.example.UnmarshalTest$1.run(UnmarshalTest.java:73) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: org.apache.camel.InvalidPayloadException: No body available of type: javax.xml.stream.XMLStreamReader but has value: <purchaseOrder name='Wine' amount='123.45' price='2.22'/> of type: java.lang.String on: Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>. Caused by: No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/>. Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/>] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102) at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58) at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122) at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61) at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223) at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169) at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124) ... 5 more Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.lang.String to the required type: javax.xml.stream.XMLStreamReader with value <purchaseOrder name='Wine' amount='123.45' price='2.22'/> at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:147) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100) ... 43 more If I change the route to: from("direct:start") .convertBodyTo(InputStream.class) .convertBodyTo(XMLStreamReader.class) .unmarshal(jaxb) .to("mock:result"); I get the following exception: Exception in thread "pool-1-thread-14" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287] at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237) at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342) at org.apache.camel.example.UnmarshalTest$1.run(UnmarshalTest.java:73) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: com.ctc.wstx.sr.ValidatingStreamReader@4987b287 of type: com.ctc.wstx.sr.ValidatingStreamReader on: Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287. Caused by: No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287. Exchange[Message: com.ctc.wstx.sr.ValidatingStreamReader@4987b287]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102) at org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:118) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:52) at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122) at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61) at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223) at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169) at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124) ... 5 more Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: com.ctc.wstx.sr.ValidatingStreamReader to the required type: java.io.InputStream with value com.ctc.wstx.sr.ValidatingStreamReader@4987b287 at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:147) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100) ... 44 more
        Hide
        Frank Kootte added a comment - - edited

        Peculiar. The unit tests all succeed for me. I have run the ones in the camel-jaxb only in all honesty. Our routes invoking the FallbackTypeConverter do no trigger the exception either. Monday I will look into the issue. Regarding the way cxf deals with avoiding the creation of an SAXParser I personally feel that dealing with all occasions equally an in uniform way when no obvious negative effects are introduced seems to be a bit cleaner.

        Show
        Frank Kootte added a comment - - edited Peculiar. The unit tests all succeed for me. I have run the ones in the camel-jaxb only in all honesty. Our routes invoking the FallbackTypeConverter do no trigger the exception either. Monday I will look into the issue. Regarding the way cxf deals with avoiding the creation of an SAXParser I personally feel that dealing with all occasions equally an in uniform way when no obvious negative effects are introduced seems to be a bit cleaner.
        Hide
        Christian Müller added a comment -

        Frank, I tried whether Camel can deal with the XMLStreamReader conversion out of the box (without your patch). So, there is nothing wrong with it.
        I made a couple of stress tests. I unmarshaled the XML

        <purchaseOrder name='Wine' amount='123.45' price='2.22'/>
        

        10000 times with

        ExecutorService pool = Executors.newFixedThreadPool(20);
        long start = System.currentTimeMillis();
        for (int i = 0; i < counter; i++) {
            pool.execute(new Runnable() {
                public void run() {
                    template.sendBody(payload);
                    latch.countDown();
                }
            });
        }
        

        The numbers I got for different scenarios are:

        • with the current implementation it took 6440ms
        • with using a GenericObjectPool from commons-pool (maxActive = 20) it took 3323ms
        • with using a ReentrantLock in JaxbDataFormat.unmarshal() for the lines where the Unmarshaller is used, it took 2813ms

        I didn't had the time to look what's necessary to get the convertBodyTo(XMLStreamReader.class) working an what the performance is.

        May be the ReentrantLock is a smart solution without the "complexity" of pooling objects?

        Show
        Christian Müller added a comment - Frank, I tried whether Camel can deal with the XMLStreamReader conversion out of the box (without your patch). So, there is nothing wrong with it. I made a couple of stress tests. I unmarshaled the XML <purchaseOrder name='Wine' amount='123.45' price='2.22'/> 10000 times with ExecutorService pool = Executors.newFixedThreadPool(20); long start = System .currentTimeMillis(); for ( int i = 0; i < counter; i++) { pool.execute( new Runnable () { public void run() { template.sendBody(payload); latch.countDown(); } }); } The numbers I got for different scenarios are: with the current implementation it took 6440ms with using a GenericObjectPool from commons-pool (maxActive = 20) it took 3323ms with using a ReentrantLock in JaxbDataFormat.unmarshal() for the lines where the Unmarshaller is used, it took 2813ms I didn't had the time to look what's necessary to get the convertBodyTo(XMLStreamReader.class) working an what the performance is. May be the ReentrantLock is a smart solution without the "complexity" of pooling objects?
        Hide
        Christian Müller added a comment - - edited

        I did some tests with the XMLStreamReader in JaxbDataFormat, but without luck. I get NullPointerException from JAXB (see below). I did the following changes:
        In the JaxbDataFormat.doStart() method I create an Unmarshaller and set this to an new instance variable.
        In JaxbDataFormat.unmarshal() I converted the InputStrem into an XMLStreamReader:

        XMLStreamReader xmlReader = exchange.getContext().getTypeConverter().convertTo(XMLStreamReader.class, exchange, stream);
        

        and pass this reader into the Unmarshaller's unmarshal method.

        Exception in thread "pool-2-thread-1" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>]
        	at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237)
        	at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442)
        	at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342)
        	at org.apache.camel.example.DataFormatConcurrentTest$1.run(DataFormatConcurrentTest.java:49)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        	at java.lang.Thread.run(Thread.java:680)
        Caused by: java.lang.NullPointerException
        	at com.sun.xml.bind.v2.runtime.Coordinator.popCoordinator(Coordinator.java:157)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:461)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:332)
        	at org.apache.camel.converter.jaxb.JaxbDataFormat.unmarshal(JaxbDataFormat.java:144)
        	at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:58)
        	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)
        	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
        	at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
        	at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
        	at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223)
        	at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169)
        	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124)
        	... 5 more
        
        Show
        Christian Müller added a comment - - edited I did some tests with the XMLStreamReader in JaxbDataFormat, but without luck. I get NullPointerException from JAXB (see below). I did the following changes: In the JaxbDataFormat.doStart() method I create an Unmarshaller and set this to an new instance variable. In JaxbDataFormat.unmarshal() I converted the InputStrem into an XMLStreamReader: XMLStreamReader xmlReader = exchange.getContext().getTypeConverter().convertTo(XMLStreamReader.class, exchange, stream); and pass this reader into the Unmarshaller's unmarshal method. Exception in thread "pool-2-thread-1" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: <purchaseOrder name='Wine' amount='123.45' price='2.22'/>] at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1237) at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342) at org.apache.camel.example.DataFormatConcurrentTest$1.run(DataFormatConcurrentTest.java:49) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: java.lang.NullPointerException at com.sun.xml.bind.v2.runtime.Coordinator.popCoordinator(Coordinator.java:157) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:461) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:332) at org.apache.camel.converter.jaxb.JaxbDataFormat.unmarshal(JaxbDataFormat.java:144) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:58) at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122) at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61) at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223) at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169) at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124) ... 5 more
        Hide
        Christian Müller added a comment -

        I committed r1308165 which improves the performance significant. I unmarshaled the XML I mentioned before 10000 times:
        before: 7042ms
        after: 2884ms

        However, I only create an Unmarshaller instance variable at start and with the help of an ReentrantLock I make sure it's only used one a time. I will let this issue open until others agree this is the final solution or bring up a better/faster one.

        Show
        Christian Müller added a comment - I committed r1308165 which improves the performance significant. I unmarshaled the XML I mentioned before 10000 times: before: 7042ms after: 2884ms However, I only create an Unmarshaller instance variable at start and with the help of an ReentrantLock I make sure it's only used one a time. I will let this issue open until others agree this is the final solution or bring up a better/faster one.
        Hide
        Frank Kootte added a comment -

        Great work! I am not particularly bound to the pooled implementation to be honest. Let me fetch your code put it under high load ( 300 requests per second ) and see if we encounter the synchronization issues as the stacktrace above indicates - given the nature of the fix I presume this should work out. The BLOCKED threads only occurred when we reached about 150 requests per second with a lot of identical payloads - I will keep you posted on the results ( expect them today ).

        Show
        Frank Kootte added a comment - Great work! I am not particularly bound to the pooled implementation to be honest. Let me fetch your code put it under high load ( 300 requests per second ) and see if we encounter the synchronization issues as the stacktrace above indicates - given the nature of the fix I presume this should work out. The BLOCKED threads only occurred when we reached about 150 requests per second with a lot of identical payloads - I will keep you posted on the results ( expect them today ).
        Hide
        Frank Kootte added a comment - - edited

        The change I made was against tag/2.9.1 and I see you patched trunk ( makes more sense ). Question for us is at which request rate congestion will occur around the ReentrantLock compared to a pooled solution - which can scale on demand which is of our interest as we're dealing with quite the amount of requests per second on peak load. Load tests on the pooled impl I did provide a rough 300+ requests per second improvement showing no congestion until we consume 100% CPU resources. I am in the process of deploying a build of 2.10-SNAPSHOT to perform the exact same test to see if and how the behavior between the 2 solutions differ when stressed.

        Show
        Frank Kootte added a comment - - edited The change I made was against tag/2.9.1 and I see you patched trunk ( makes more sense ). Question for us is at which request rate congestion will occur around the ReentrantLock compared to a pooled solution - which can scale on demand which is of our interest as we're dealing with quite the amount of requests per second on peak load. Load tests on the pooled impl I did provide a rough 300+ requests per second improvement showing no congestion until we consume 100% CPU resources. I am in the process of deploying a build of 2.10-SNAPSHOT to perform the exact same test to see if and how the behavior between the 2 solutions differ when stressed.
        Hide
        Frank Kootte added a comment - - edited

        Our code predominantly ( actually only ) uses the FallbackTypeConverter ( which I originally patched ). Applying a patch with the same semantics as the patch you applied to the FallbackTypeConverter would solve the issue for all ways to apply JAXB conversions. A ThreadLocal instance containing a per Thread Unmarshaller would be the cheapest solution ( in this case I am comparing it to pooling ) I figure - it would however retain the memory until ( if! ) the spawned Threads would be removed from the application server ThreadPool releasing their resources and making them available for GC - which would be more controllable given the Pool usage. Given the nature of the class - used for multiple JAXBContext's and therefore requiring multiple Unmarshallers for different types this seems an unlikely candidate to be achieved in a fashionable manner. What is your vision upon the subject exactly ? Perhaps - while we are at it - we should also look into removing the duplication we see in that region and have a single solution for both callsites.

        Show
        Frank Kootte added a comment - - edited Our code predominantly ( actually only ) uses the FallbackTypeConverter ( which I originally patched ). Applying a patch with the same semantics as the patch you applied to the FallbackTypeConverter would solve the issue for all ways to apply JAXB conversions. A ThreadLocal instance containing a per Thread Unmarshaller would be the cheapest solution ( in this case I am comparing it to pooling ) I figure - it would however retain the memory until ( if! ) the spawned Threads would be removed from the application server ThreadPool releasing their resources and making them available for GC - which would be more controllable given the Pool usage. Given the nature of the class - used for multiple JAXBContext's and therefore requiring multiple Unmarshallers for different types this seems an unlikely candidate to be achieved in a fashionable manner. What is your vision upon the subject exactly ? Perhaps - while we are at it - we should also look into removing the duplication we see in that region and have a single solution for both callsites.
        Hide
        Christian Müller added a comment -

        Hello Frank!

        If we agree about the solution, I will back port it of course to the maintained camel-2.9.x and camel-2.8.x branch.
        I highly interested which of the both solutions works better (faster) for you. If it's the pooled solution, I don't have anything against to this solution. I always try to start with the simplest solution which full fill the requirements...
        I also try to get a better understanding what Dan suggested. But at present, I only got some NullPointerExceptions from JAXB when I converted the InputStream into a XMLStreamReader and pass this to the Unmarshaller... Keep you posted...

        I see the issue with the FallbackTypeConverter. I will fix this also. But my recommendation is to use the JAXBDataFormat explicitly. Imagine you have a route where you use the FallbackTypeConverter 10 times for the same JAXBContext. All this 10 routes will use the same Unmarshaller which will be less per formant (more locking), than to explicitly use 10 different JAXBDataFormat instances (of course with the same JAXBContext). This will require less locking because the Unmarshaller is shared per JAXBDataFormat and not per JAXBContext. Make sense for you?

        I we go for the pooled solution (if it's faster), we should use/register the pool capabilities Camel provides. At present, I'm not familiar enough with this to suggest a solution. Will wait for the performance results of your tests and if I'm able to get the XMLStreamReader stuff working...

        Best,
        Christian

        Show
        Christian Müller added a comment - Hello Frank! If we agree about the solution, I will back port it of course to the maintained camel-2.9.x and camel-2.8.x branch. I highly interested which of the both solutions works better (faster) for you. If it's the pooled solution, I don't have anything against to this solution. I always try to start with the simplest solution which full fill the requirements... I also try to get a better understanding what Dan suggested. But at present, I only got some NullPointerExceptions from JAXB when I converted the InputStream into a XMLStreamReader and pass this to the Unmarshaller... Keep you posted... I see the issue with the FallbackTypeConverter. I will fix this also. But my recommendation is to use the JAXBDataFormat explicitly. Imagine you have a route where you use the FallbackTypeConverter 10 times for the same JAXBContext. All this 10 routes will use the same Unmarshaller which will be less per formant (more locking), than to explicitly use 10 different JAXBDataFormat instances (of course with the same JAXBContext). This will require less locking because the Unmarshaller is shared per JAXBDataFormat and not per JAXBContext. Make sense for you? I we go for the pooled solution (if it's faster), we should use/register the pool capabilities Camel provides. At present, I'm not familiar enough with this to suggest a solution. Will wait for the performance results of your tests and if I'm able to get the XMLStreamReader stuff working... Best, Christian
        Hide
        Frank Kootte added a comment -

        Hye Christian - appreciate the fenomenal collaboration !

        Indeed would the solution induce more locking giving the current approach. This is actually the reasoning behind my initial solution - pooling contexts, marshallers and unmarshallers - which in hindsight is somewhat overkill for common usecases - not everbody needs a highly scalable solution catering for high load as we are currently dealing with. The automagically expanding and shrinking pool would load on demand and scale to extremely high load. As we have a lot of routes using the FallbackTypeConverter I will try to amend a single end-to-end flow to use the JaxbDataFormat so we can compare how the different approaches when stressed. I hope I will be able to provide you feedback on performance tomorrow but given the work required I wont make promises anymore I am not sure I can live up to.

        With regards to the pooling solution camel provides - I briefly looked into it before I decided to go for the Apache Commons Pool approach - I think it is worth considering to refactor the camel pool to use the APC as I think it contributes to familiarity and mantainability to reuse the proven solution instead of a special camel catered crafted approach offering no directly obvious benefits.

        Hopefully I will be able to provide you with some conclusive numbers soon and we can finalise this patch.

        Cheers

        Show
        Frank Kootte added a comment - Hye Christian - appreciate the fenomenal collaboration ! Indeed would the solution induce more locking giving the current approach. This is actually the reasoning behind my initial solution - pooling contexts, marshallers and unmarshallers - which in hindsight is somewhat overkill for common usecases - not everbody needs a highly scalable solution catering for high load as we are currently dealing with. The automagically expanding and shrinking pool would load on demand and scale to extremely high load. As we have a lot of routes using the FallbackTypeConverter I will try to amend a single end-to-end flow to use the JaxbDataFormat so we can compare how the different approaches when stressed. I hope I will be able to provide you feedback on performance tomorrow but given the work required I wont make promises anymore I am not sure I can live up to. With regards to the pooling solution camel provides - I briefly looked into it before I decided to go for the Apache Commons Pool approach - I think it is worth considering to refactor the camel pool to use the APC as I think it contributes to familiarity and mantainability to reuse the proven solution instead of a special camel catered crafted approach offering no directly obvious benefits. Hopefully I will be able to provide you with some conclusive numbers soon and we can finalise this patch. Cheers
        Hide
        Christian Müller added a comment -

        I rerun the test with the following route

        from("direct:unmarshalFallback")
          .convertBodyTo(PurchaseOrder.class)
          .to("mock:result");
        

        and it still took 6921ms (with my latest patch). So, I have to work further on this...

        Show
        Christian Müller added a comment - I rerun the test with the following route from( "direct:unmarshalFallback" ) .convertBodyTo(PurchaseOrder.class) .to( "mock:result" ); and it still took 6921ms (with my latest patch). So, I have to work further on this...
        Hide
        Christian Müller added a comment - - edited

        Committed r1308524
        By caching the Unmarshaller in FallbackTypeConverter like the JAXBContext, I could reduce it to 3328ms

        Show
        Christian Müller added a comment - - edited Committed r1308524 By caching the Unmarshaller in FallbackTypeConverter like the JAXBContext, I could reduce it to 3328ms
        Hide
        Christian Müller added a comment -

        By using the XMLStreamReader in FallbackTypeConverter and a shared Unmarshaller, I also got the NullpointerException from JAXB:

        java.lang.NullPointerException
        	at com.sun.xml.bind.v2.runtime.Coordinator.popCoordinator(Coordinator.java:157)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:461)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
        	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:332)
        	at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshal(FallbackTypeConverter.java:204)
        	at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshall(FallbackTypeConverter.java:139)
        	at org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:91)
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:204)
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:141)
        	at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)
        	at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58)
        	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)
        	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
        	at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        	at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
        	at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
        	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
        	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
        	at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
        	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
        	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
        	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
        	at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352)
        	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223)
        	at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324)
        	at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169)
        	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124)
        	at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342)
        	at org.apache.camel.example.DataFormatConcurrentTest$2.run(DataFormatConcurrentTest.java:74)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        	at java.lang.Thread.run(Thread.java:680)
        

        And as documented in [1], the Unmarshaller from Jaxb Impl RI (Oracle) is not thread safe.
        I pinged Dan to get a pointer to the CXF code where they share the Unmarshaller...

        [1] http://jaxb.java.net/guide/Performance_and_thread_safety.html

        Show
        Christian Müller added a comment - By using the XMLStreamReader in FallbackTypeConverter and a shared Unmarshaller, I also got the NullpointerException from JAXB: java.lang.NullPointerException at com.sun.xml.bind.v2.runtime.Coordinator.popCoordinator(Coordinator.java:157) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:461) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:332) at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshal(FallbackTypeConverter.java:204) at org.apache.camel.converter.jaxb.FallbackTypeConverter.unmarshall(FallbackTypeConverter.java:139) at org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:91) at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:204) at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:141) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100) at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58) at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122) at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61) at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352) at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223) at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324) at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169) at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342) at org.apache.camel.example.DataFormatConcurrentTest$2.run(DataFormatConcurrentTest.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) And as documented in [1] , the Unmarshaller from Jaxb Impl RI (Oracle) is not thread safe. I pinged Dan to get a pointer to the CXF code where they share the Unmarshaller... [1] http://jaxb.java.net/guide/Performance_and_thread_safety.html
        Hide
        Christian Müller added a comment -

        Committed r1308593
        Improved FallbackTypeConverter.marshall() a bit. Only set Marshaller properties if they differ from the default one (because they are expensive)
        before: took 3214ms
        after: took 2680ms

        Show
        Christian Müller added a comment - Committed r1308593 Improved FallbackTypeConverter.marshall() a bit. Only set Marshaller properties if they differ from the default one (because they are expensive) before: took 3214ms after: took 2680ms
        Hide
        Frank Kootte added a comment - - edited

        I am patching our 2.9.1 branch with you latest commits and will execute performance tests against them so we can compare those against the results using the pooled impl I did.
        Unit tests fail after backporting.

        Caused by: java.util.ConcurrentModificationException
        	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        	at java.util.AbstractList$Itr.next(AbstractList.java:343)
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:203)
        	at org.apache.camel.impl.converter.LazyLoadingTypeConverter.doConvertTo(LazyLoadingTypeConverter.java:47)
        	at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:141)
        	... 42 more
        
        

        Attempting to backport BaseTypeConverterRegistry as well to solve the issue.

        Show
        Frank Kootte added a comment - - edited I am patching our 2.9.1 branch with you latest commits and will execute performance tests against them so we can compare those against the results using the pooled impl I did. Unit tests fail after backporting. Caused by: java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:203) at org.apache.camel.impl.converter.LazyLoadingTypeConverter.doConvertTo(LazyLoadingTypeConverter.java:47) at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:141) ... 42 more Attempting to backport BaseTypeConverterRegistry as well to solve the issue.
        Frank Kootte made changes -
        Comment [ I am patching our 2.9.1 branch with you latest commits and will execute performance tests against them so we can compare those against the results using the pooled impl I did. ]
        Hide
        Frank Kootte added a comment -

        I did an update on TRUNK and tried to run the unit tests on camel-jaxb which failed. Looking into it.

        -------------------------------------------------------
         T E S T S
        -------------------------------------------------------
        Running org.apache.camel.converter.jaxb.FilteringXmlStreamWriterTest
        Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.333 sec
        Running org.apache.camel.converter.jaxb.JaxbConverterTest
        Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.692 sec
        Running org.apache.camel.converter.jaxb.JaxbDataFormatTest
        Tests run: 8, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.497 sec <<< FAILURE!
        Running org.apache.camel.converter.jaxb.MessageTypeTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.624 sec
        Running org.apache.camel.converter.jaxb.NonXmlCharFiltererTest
        Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.354 sec
        Running org.apache.camel.converter.jaxb.NonXmlFilterReaderTest
        Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.323 sec
        Running org.apache.camel.example.DataFormatConcurrentTest
        Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.689 sec
        Running org.apache.camel.example.DataFormatDataSetTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.838 sec
        Running org.apache.camel.example.DataFormatTest
        Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.997 sec
        Running org.apache.camel.example.JAXBConvertTest
        Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.632 sec
        Running org.apache.camel.example.JAXBConverterMessageTypeTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.619 sec
        Running org.apache.camel.example.JaxbConcurrentDataFormatTest
        Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.926 sec
        Running org.apache.camel.example.JaxbErrorLogTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.83 sec
        Running org.apache.camel.example.RouteWithErrorHandlerTest
        Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.172 sec
        Running org.apache.camel.example.SpringDataFormatPartialTest
        Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.457 sec
        Running org.apache.camel.example.SpringDataFormatTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.804 sec
        Running org.apache.camel.example.SpringDataFormatWithEncodingTest
        Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.461 sec
        Running org.apache.camel.example.SpringDataFormatWithMarshalAndUnmarshalUsingRefTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.856 sec
        Running org.apache.camel.example.SpringDataFormatWithMarshalAndUnmarshalUsingSpringBeanTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.888 sec
        Running org.apache.camel.example.UnmarshalTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.84 sec
        Running org.apache.camel.jaxb.CamelJaxbFallbackConverterTest
        Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.801 sec
        Running org.apache.camel.jaxb.CamelJaxbSpringTest
        Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.042 sec
        Running org.apache.camel.jaxb.CamelJaxbTest
        Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.344 sec
        Running org.apache.camel.jaxb.DirectBeanToBeanPersonTypeTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.623 sec
        Running org.apache.camel.jaxb.DumpToXmlTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.621 sec
        Running org.apache.camel.jaxb.FallbackTypeConverterShouldNotThrowExceptionTest
        Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.099 sec
        Running org.apache.camel.jaxb.JaxbDataFormatIssueTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.877 sec
        Running org.apache.camel.jaxb.JaxbDataFormatIssueUsingSpringJavaConfigTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.477 sec
        Running org.apache.camel.jaxb.TimerBeanToBeanNotificationTypeTest
        Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.124 sec
        
        Results :
        
        Tests in error: 
        
        Tests run: 79, Failures: 0, Errors: 2, Skipped: 0
        
        
        Show
        Frank Kootte added a comment - I did an update on TRUNK and tried to run the unit tests on camel-jaxb which failed. Looking into it. ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.camel.converter.jaxb.FilteringXmlStreamWriterTest Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.333 sec Running org.apache.camel.converter.jaxb.JaxbConverterTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.692 sec Running org.apache.camel.converter.jaxb.JaxbDataFormatTest Tests run: 8, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.497 sec <<< FAILURE! Running org.apache.camel.converter.jaxb.MessageTypeTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.624 sec Running org.apache.camel.converter.jaxb.NonXmlCharFiltererTest Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.354 sec Running org.apache.camel.converter.jaxb.NonXmlFilterReaderTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.323 sec Running org.apache.camel.example.DataFormatConcurrentTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.689 sec Running org.apache.camel.example.DataFormatDataSetTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.838 sec Running org.apache.camel.example.DataFormatTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.997 sec Running org.apache.camel.example.JAXBConvertTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.632 sec Running org.apache.camel.example.JAXBConverterMessageTypeTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.619 sec Running org.apache.camel.example.JaxbConcurrentDataFormatTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.926 sec Running org.apache.camel.example.JaxbErrorLogTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.83 sec Running org.apache.camel.example.RouteWithErrorHandlerTest Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.172 sec Running org.apache.camel.example.SpringDataFormatPartialTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.457 sec Running org.apache.camel.example.SpringDataFormatTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.804 sec Running org.apache.camel.example.SpringDataFormatWithEncodingTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.461 sec Running org.apache.camel.example.SpringDataFormatWithMarshalAndUnmarshalUsingRefTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.856 sec Running org.apache.camel.example.SpringDataFormatWithMarshalAndUnmarshalUsingSpringBeanTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.888 sec Running org.apache.camel.example.UnmarshalTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.84 sec Running org.apache.camel.jaxb.CamelJaxbFallbackConverterTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.801 sec Running org.apache.camel.jaxb.CamelJaxbSpringTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.042 sec Running org.apache.camel.jaxb.CamelJaxbTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.344 sec Running org.apache.camel.jaxb.DirectBeanToBeanPersonTypeTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.623 sec Running org.apache.camel.jaxb.DumpToXmlTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.621 sec Running org.apache.camel.jaxb.FallbackTypeConverterShouldNotThrowExceptionTest Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.099 sec Running org.apache.camel.jaxb.JaxbDataFormatIssueTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.877 sec Running org.apache.camel.jaxb.JaxbDataFormatIssueUsingSpringJavaConfigTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.477 sec Running org.apache.camel.jaxb.TimerBeanToBeanNotificationTypeTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.124 sec Results : Tests in error: Tests run: 79, Failures: 0, Errors: 2, Skipped: 0
        Hide
        Frank Kootte added a comment - - edited

        The problem seems to be in the region of the ReentrantLock not being instantiated and the call to doCallRealMethod invoking JaxbDataFormat.unmarshal which depends on the state of the JaxbDataFormat instance.

        java.lang.NullPointerException
        	at org.apache.camel.converter.jaxb.JaxbDataFormat.unmarshal(JaxbDataFormat.java:138)
        	at org.apache.camel.converter.jaxb.JaxbDataFormatTest.testUnmarshalFilteringDisabled(JaxbDataFormatTest.java:152)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
        	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
        	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
        	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
        	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
        	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
        	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
        	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
        	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
        	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
        	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
        	at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
        	at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
        	at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
        	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71)
        	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
        	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
        
        
        Show
        Frank Kootte added a comment - - edited The problem seems to be in the region of the ReentrantLock not being instantiated and the call to doCallRealMethod invoking JaxbDataFormat.unmarshal which depends on the state of the JaxbDataFormat instance. java.lang.NullPointerException at org.apache.camel.converter.jaxb.JaxbDataFormat.unmarshal(JaxbDataFormat.java:138) at org.apache.camel.converter.jaxb.JaxbDataFormatTest.testUnmarshalFilteringDisabled(JaxbDataFormatTest.java:152) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37) at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
        Hide
        Christian Müller added a comment -

        I hat a short mail conversation with Dan:

        You cannot share Unmarshallers. You can share JAXBContext's, but not
        unmarshallers. You do need to create a new unmarshaller (or marshaller) per
        thread (or pool them). With CXF, we create a new unmarshaller per
        request. If you use the XMLStreamReader based unmarshal methods, it
        doesn't need to call into the slow Parser factory code and such which is
        where the main performance bottleneck is. However, it COULD just move
        the bottleneck elsewhere if you aren't careful. CXF pools the
        XMLInputFactory objects (although, if using Woodstox, you don't need to as
        the XMLInputFactory in Woodstox it threadsafe). That basically allows
        avoiding the the entire parser factory things entirely.

        My answer:
        Thanks for the explanation, now it's clear for me.
        We already cache the JAXBContext and share it. Instead of pooling the Unmarshallers, we cache one singe instance (per JaxbDataFormat instance and one for the FallbackTypeConverter) and use a ReentraceLock to make it's only used once at a time. On my machine this was more faster than the pooling solution (using commons-pool).
        We also using Woodstox and cache the XMLInputFactory (unfortunately not in every place). I will spend some time to improve this too.
        I will investigate on the XMLStreamReader unmarshal methods whether they are faster than the current solution.

        Show
        Christian Müller added a comment - I hat a short mail conversation with Dan: You cannot share Unmarshallers. You can share JAXBContext's, but not unmarshallers. You do need to create a new unmarshaller (or marshaller) per thread (or pool them). With CXF, we create a new unmarshaller per request. If you use the XMLStreamReader based unmarshal methods, it doesn't need to call into the slow Parser factory code and such which is where the main performance bottleneck is. However, it COULD just move the bottleneck elsewhere if you aren't careful. CXF pools the XMLInputFactory objects (although, if using Woodstox, you don't need to as the XMLInputFactory in Woodstox it threadsafe). That basically allows avoiding the the entire parser factory things entirely. My answer: Thanks for the explanation, now it's clear for me. We already cache the JAXBContext and share it. Instead of pooling the Unmarshallers, we cache one singe instance (per JaxbDataFormat instance and one for the FallbackTypeConverter) and use a ReentraceLock to make it's only used once at a time. On my machine this was more faster than the pooling solution (using commons-pool). We also using Woodstox and cache the XMLInputFactory (unfortunately not in every place). I will spend some time to improve this too. I will investigate on the XMLStreamReader unmarshal methods whether they are faster than the current solution.
        Hide
        Frank Kootte added a comment -

        Decided to rebuild our app based on 2.10-SNAPSHOT to run performance tests on the patches landed in TRUNK.

        Show
        Frank Kootte added a comment - Decided to rebuild our app based on 2.10-SNAPSHOT to run performance tests on the patches landed in TRUNK.
        Hide
        Christian Müller added a comment -

        Committed r1309146 to fix the failed unit test

        Show
        Christian Müller added a comment - Committed r1309146 to fix the failed unit test
        Hide
        Christian Müller added a comment -

        Committed r1309261
        Updated the FallbackTypeConverter to use XMLStreamReader as first choice type for unmarshalling to avoid calling into the slow Parser factory (as Dan suggested).
        Also added a new type converter from String -> XMLStreamReader
        reduce the time for the concurrent stress test from 3328ms to 2810ms

        Show
        Christian Müller added a comment - Committed r1309261 Updated the FallbackTypeConverter to use XMLStreamReader as first choice type for unmarshalling to avoid calling into the slow Parser factory (as Dan suggested). Also added a new type converter from String -> XMLStreamReader reduce the time for the concurrent stress test from 3328ms to 2810ms
        Hide
        Christian Müller added a comment -

        Committed r1309262
        We now cache the XMLOutputFactory in FallbackTypeConverter because the one we use (Woodstox) is thread safe. We do the same already in our StaxConverter.

        Show
        Christian Müller added a comment - Committed r1309262 We now cache the XMLOutputFactory in FallbackTypeConverter because the one we use (Woodstox) is thread safe. We do the same already in our StaxConverter.
        Hide
        Frank Kootte added a comment -

        Absolutely great work. Due to some environmental issues we have not been able to deploy our new build yet. I will prepare a new build based on the latest patches and keep you informed.

        Show
        Frank Kootte added a comment - Absolutely great work. Due to some environmental issues we have not been able to deploy our new build yet. I will prepare a new build based on the latest patches and keep you informed.
        Hide
        Christian Müller added a comment -

        Committed r1309588
        Now we use the XMLStreamReader as first choice type for unmarshalling in JaxbDataFormat if filtering is not needed (no big performance improvement).
        From my point of view, we are done with a solution which doesn't pool the Unmarshallers.
        Looking forward for your performance test results before I will mark this issue as resolved.

        Show
        Christian Müller added a comment - Committed r1309588 Now we use the XMLStreamReader as first choice type for unmarshalling in JaxbDataFormat if filtering is not needed (no big performance improvement). From my point of view, we are done with a solution which doesn't pool the Unmarshallers. Looking forward for your performance test results before I will mark this issue as resolved.
        Christian Müller made changes -
        Assignee Christian Müller [ muellerc ]
        Hide
        Daniel Kulp added a comment -

        I've updated the code on trunk to ALWAYS go through the XMLStreamReader pathways which allows complete removal of the locks and unmarshaller pools. Would definitely appreciate some testing with it, particularly with "real world" payloads.

        Show
        Daniel Kulp added a comment - I've updated the code on trunk to ALWAYS go through the XMLStreamReader pathways which allows complete removal of the locks and unmarshaller pools. Would definitely appreciate some testing with it, particularly with "real world" payloads.
        Hide
        Christian Müller added a comment - - edited

        I did a few test an recorded the fastest one:

        Length: 2046:
        =============
        Before:
        testUnmarshallConcurrent() took 14122ms
        testUnmarshallFallbackConcurrent() took 8479ms

        After:
        testUnmarshallConcurrent() took 5196ms
        testUnmarshallFallbackConcurrent() took 2761ms

        Length: 104
        ===========
        Before:
        testUnmarshallConcurrent() took 7281ms
        testUnmarshallFallbackConcurrent() took 4815ms

        After:
        testUnmarshallConcurrent() took 2767ms
        testUnmarshallFallbackConcurrent() took 2458ms

        Best,
        Christian

        Show
        Christian Müller added a comment - - edited I did a few test an recorded the fastest one: Length: 2046: ============= Before: testUnmarshallConcurrent() took 14122ms testUnmarshallFallbackConcurrent() took 8479ms After: testUnmarshallConcurrent() took 5196ms testUnmarshallFallbackConcurrent() took 2761ms Length: 104 =========== Before: testUnmarshallConcurrent() took 7281ms testUnmarshallFallbackConcurrent() took 4815ms After: testUnmarshallConcurrent() took 2767ms testUnmarshallFallbackConcurrent() took 2458ms Best, Christian
        Hide
        Christian Müller added a comment -

        By using a ByteArrayInputStream as payload, and a "warmed up" system (I sent 100 messages before the measurement to warm up the system) I got the following results with the payload of 2046 bytes:

        testUnmarshallConcurrent() took 2202ms (5196ms by using a string as payload and a cold system)
        testUnmarshallFallbackConcurrent() took 1224ms (2761ms by using a string as payload and a cold system)

        testMarshallConcurrent() took 875ms
        testMarshallFallbackConcurrent() took 999ms

        Best,
        Christian

        Show
        Christian Müller added a comment - By using a ByteArrayInputStream as payload, and a "warmed up" system (I sent 100 messages before the measurement to warm up the system) I got the following results with the payload of 2046 bytes: testUnmarshallConcurrent() took 2202ms (5196ms by using a string as payload and a cold system) testUnmarshallFallbackConcurrent() took 1224ms (2761ms by using a string as payload and a cold system) testMarshallConcurrent() took 875ms testMarshallFallbackConcurrent() took 999ms Best, Christian
        Hide
        Frank Kootte added a comment -

        @Christian - my apologies for the radio silence.

        Unfortunately we've been dealing with some customer facing 3rd party gps-chip issues which received priority over everything which did not allow me to pursue the performance testing endeavors. On top of that I was required to merge a feature branch for which we first need to establish a baseline to compare the patch results against. I am back on the topic again and hope to provide you with valuable metrics soon.

        Show
        Frank Kootte added a comment - @Christian - my apologies for the radio silence. Unfortunately we've been dealing with some customer facing 3rd party gps-chip issues which received priority over everything which did not allow me to pursue the performance testing endeavors. On top of that I was required to merge a feature branch for which we first need to establish a baseline to compare the patch results against. I am back on the topic again and hope to provide you with valuable metrics soon.
        Hide
        Christian Müller added a comment -

        Don't worry about it...
        Dan changed this part in a way that we don't need to synchronize it. This solution should scale much better than my first implementation.
        I will merge this change into the camel-2.9.x and camel-2.8.x branch. If your result is a pooling implementation is faster than the current one, we can reopen this issue (if it's already closed) and work further on it. I'm still really interested in your results...

        Best,
        Christian

        Show
        Christian Müller added a comment - Don't worry about it... Dan changed this part in a way that we don't need to synchronize it. This solution should scale much better than my first implementation. I will merge this change into the camel-2.9.x and camel-2.8.x branch. If your result is a pooling implementation is faster than the current one, we can reopen this issue (if it's already closed) and work further on it. I'm still really interested in your results... Best, Christian
        Christian Müller made changes -
        Summary Add pooling support for JAXB data format Improve the performance for JAXB data format
        Fix Version/s 2.8.5 [ 12319522 ]
        Fix Version/s 2.9.2 [ 12320143 ]
        Fix Version/s 2.10.0 [ 12317612 ]
        Fix Version/s 3.0.0 [ 12315691 ]
        Christian Mueller <cmueller@apache.org> committed 8961c47b3f3ae9fcd85a91eeb0e74568572562f3 (4 files)
        Reviews: none

        [CAMEL-3776] Change from pooling to using XMLStreamReaders for everything which removes all the locks and much of the casting. NOTE: right now, this REQUIRES woodstox as the StAX parser as the in-jdk version is not thread safe in how StaxConverter uses it right now.
        git-svn-id: https://svn.apache.org/repos/asf/camel/branches/camel-2.8.x@1325004 13f79535-47bb-0310-9956-ffa450edef68

        cmueller committed 1325004 (4 files)
        Christian Mueller <cmueller@apache.org> committed a2c1840f6c483845c112dcc04baa61549667d29b (1 file)
        cmueller committed 1325005 (1 file)
        Christian Mueller <cmueller@apache.org> committed 89d55fc74f48dfca3bd9e7d2aeb5d8c7c696bb65 (1 file)
        cmueller committed 1325007 (1 file)
        Christian Mueller <cmueller@apache.org> committed 788761793151de9a08b1bc17ff6720d11e6bb197 (1 file)
        cmueller committed 1325008 (1 file)
        Hide
        Christian Müller added a comment -

        Because Hadrian will start releasing Camel 2.8.5 and 2.9.2 tomorrow, I have merged the changes into these feature branches.
        If you come back with a smarter/faster solution, please feel free to open a new JIRA.

        Best,
        Christian

        Show
        Christian Müller added a comment - Because Hadrian will start releasing Camel 2.8.5 and 2.9.2 tomorrow, I have merged the changes into these feature branches. If you come back with a smarter/faster solution, please feel free to open a new JIRA. Best, Christian
        Christian Müller made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Hadrian Zbarcea <hadrian@apache.org> committed 8ec24190e46f7716647e4035ceab66065686e660 (0 files)
        Reviews: none

        Recorded merge of revisions 1308593-1309128,1309130-1309734,1309736-1309778,1309780-1309818,1309820-1309925,1309927-1309933,1309935-1309936,1309938,1309940-1309944,1309946-1310149,1310151,1310153-1310154,1310156-1310216,1310218-1310219,1310221,1310223-1310226,1310228-1310231,1310233-1310243,1310245-1310248,1310250-1310426,1310428-1310490,1310492-1310689,1310691-1310694,1310696-1310708,1310711-1310723,1310726-1310753,1310755-1310958,1310960-1310978,1310980-1310988,1310990-1310998,1311000-1311237,1311239-1311276,1311278-1311289,1311291-1311453,1311455-1311494,1311496-1311581,1311583-1311585,1311587-1311593,1311595-1311699,1311701-1311729,1311731,1311733-1311753,1311755-1311781,1311783-1311886,1311888-1324567,1324569-1324597,1324599-1324637,1324639-1324674,1324676-1325036 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk
        ........
          r1308593 | cmueller | 2012-04-02 18:01:41 -0400 (Mon, 02 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309146 | cmueller | 2012-04-03 16:59:59 -0400 (Tue, 03 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309261 | cmueller | 2012-04-04 02:23:55 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309262 | cmueller | 2012-04-04 02:33:59 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309588 | cmueller | 2012-04-04 16:46:05 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309887 | dkulp | 2012-04-05 10:47:46 -0400 (Thu, 05 Apr 2012) | 4 lines
          
          [CAMEL-3776] Change from pooling to using XMLStreamReaders for
          everything which removes all the locks and much of the casting.
          NOTE: right now, this REQUIRES woodstox as the StAX parser as the in-jdk
          version is not thread safe in how StaxConverter uses it right now.
        ........
          r1310091 | cmueller | 2012-04-05 17:53:54 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1310151 | dkulp | 2012-04-05 21:37:05 -0400 (Thu, 05 Apr 2012) | 1 line
          
          The getUnmarshaller call no longer needs to be synchronized
        ........
          r1310380 | cmueller | 2012-04-06 11:03:26 -0400 (Fri, 06 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1325036 | cmueller | 2012-04-11 18:00:51 -0400 (Wed, 11 Apr 2012) | 1 line
          
          CAMEL-5161: If MyBatis experiences an error on commit (e.g. unique PK violation) it appears to hold the session open and cause DB writelock errors
        ........


        git-svn-id: https://svn.apache.org/repos/asf/camel/branches/camel-2.9.x@1325072 13f79535-47bb-0310-9956-ffa450edef68

        Hadrian Zbarcea committed 1325072 (1 file)
        Reviews: none

        Recorded merge of revisions 1308593-1309128,1309130-1309734,1309736-1309778,1309780-1309818,1309820-1309925,1309927-1309933,1309935-1309936,1309938,1309940-1309944,1309946-1310149,1310151,1310153-1310154,1310156-1310216,1310218-1310219,1310221,1310223-1310226,1310228-1310231,1310233-1310243,1310245-1310248,1310250-1310426,1310428-1310490,1310492-1310689,1310691-1310694,1310696-1310708,1310711-1310723,1310726-1310753,1310755-1310958,1310960-1310978,1310980-1310988,1310990-1310998,1311000-1311237,1311239-1311276,1311278-1311289,1311291-1311453,1311455-1311494,1311496-1311581,1311583-1311585,1311587-1311593,1311595-1311699,1311701-1311729,1311731,1311733-1311753,1311755-1311781,1311783-1311886,1311888-1324567,1324569-1324597,1324599-1324637,1324639-1324674,1324676-1325036 via svnmerge from
        https://svn.apache.org/repos/asf/camel/trunk

        ........
          r1308593 | cmueller | 2012-04-02 18:01:41 -0400 (Mon, 02 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309146 | cmueller | 2012-04-03 16:59:59 -0400 (Tue, 03 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309261 | cmueller | 2012-04-04 02:23:55 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309262 | cmueller | 2012-04-04 02:33:59 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309588 | cmueller | 2012-04-04 16:46:05 -0400 (Wed, 04 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1309887 | dkulp | 2012-04-05 10:47:46 -0400 (Thu, 05 Apr 2012) | 4 lines
          
          [CAMEL-3776] Change from pooling to using XMLStreamReaders for
          everything which removes all the locks and much of the casting.
          NOTE: right now, this REQUIRES woodstox as the StAX parser as the in-jdk
          version is not thread safe in how StaxConverter uses it right now.
        ........
          r1310091 | cmueller | 2012-04-05 17:53:54 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1310151 | dkulp | 2012-04-05 21:37:05 -0400 (Thu, 05 Apr 2012) | 1 line
          
          The getUnmarshaller call no longer needs to be synchronized
        ........
          r1310380 | cmueller | 2012-04-06 11:03:26 -0400 (Fri, 06 Apr 2012) | 1 line
          
          CAMEL-3776: Add pooling support for JAXB data format
        ........
          r1325036 | cmueller | 2012-04-11 18:00:51 -0400 (Wed, 11 Apr 2012) | 1 line
          
          CAMEL-5161: If MyBatis experiences an error on commit (e.g. unique PK violation) it appears to hold the session open and cause DB writelock errors
        ........

        Hide
        Frank Kootte added a comment -

        Great! Then we can depends on 2.9.2 instead of 2.10-SNAPSHOT which was giving me the creeps
        We will subject 2.9.2 to the load test today - task planned - and I will ping back. Will look into the patch just to satisfy my curiosity

        Show
        Frank Kootte added a comment - Great! Then we can depends on 2.9.2 instead of 2.10-SNAPSHOT which was giving me the creeps We will subject 2.9.2 to the load test today - task planned - and I will ping back. Will look into the patch just to satisfy my curiosity
        Hadrian Zbarcea <hadrian@apache.org> committed df6a850f046fc3f5191b0749599f1253dbd3a12c (0 files)
        Reviews: none

        Blocked revisions 1302010,1302113,1302405,1303456,1303561,1305476,1306026,1306843,1306872,1307796,1307862-1307864,1307866,1307898-1307899,1307901-1307902,1307904,1307907-1307908,1307968,1307994-1307996,1307998-1308000,1308003-1308004,1308442,1308447,1308452,1308455,1308469,1308472,1308474,1308479,1308515,1308517,1308553-1308556,1308674,1309738,1309781,1309820,1309948,1309950,1310426,1310691,1310700,1310711,1310727,1310991,1310993,1311002,1311157,1311584,1311791,1324569 via svnmerge
        ................
          r1302010 | bvahdat | 2012-03-17 16:59:27 -0400 (Sat, 17 Mar 2012) | 9 lines
          
          Merged revisions 1302006 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302006 | bvahdat | 2012-03-17 21:55:23 +0100 (Sa, 17 Mrz 2012) | 1 line
            
            CAMEL-5105: Add the options configRef and strategyRef to csv data format in XML DSL.
          ........
        ................
          r1302113 | davsclaus | 2012-03-18 07:27:07 -0400 (Sun, 18 Mar 2012) | 1 line
          
          CAMEL-5063: Validator component now has better error reporing if cannot resolve resource from schema.
        ................
          r1302405 | bvahdat | 2012-03-19 08:56:06 -0400 (Mon, 19 Mar 2012) | 9 lines
          
          Merged revisions 1302393 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302393 | bvahdat | 2012-03-19 13:16:32 +0100 (Mo, 19 Mrz 2012) | 1 line
            
            Fixed the failed test on the CI-Server.
          ........
        ................
          r1303456 | dkulp | 2012-03-21 12:02:30 -0400 (Wed, 21 Mar 2012) | 2 lines
          
          Update to the osgi bundles to the new versions that have the proper bundle information, sources jars, etc...
        ................
          r1303561 | davsclaus | 2012-03-21 16:30:09 -0400 (Wed, 21 Mar 2012) | 1 line
          
          CAMEL-5110: Fixed using shareUnitOfWork option with DLC error handler routing to route as DLQ not working as expected.
        ................
          r1305476 | davsclaus | 2012-03-26 14:00:30 -0400 (Mon, 26 Mar 2012) | 1 line
          
          Polished API on CamelContext to refer to which methods to use for @deprecated methods.
        ................
          r1306026 | cmueller | 2012-03-27 17:50:49 -0400 (Tue, 27 Mar 2012) | 1 line
          
          fixed broken unit test
        ................
          r1306843 | cschneider | 2012-03-29 09:24:56 -0400 (Thu, 29 Mar 2012) | 1 line
          
          CAMEL-5131 Using jetty-bundle property instead
        ................
          r1306872 | cschneider | 2012-03-29 10:10:33 -0400 (Thu, 29 Mar 2012) | 1 line
          
          CAMEL-5131 Removing the import for jetty in the hdfs feature as the jetty version imported through the war feature should work already
        ................
          r1307796 | davsclaus | 2012-03-31 09:03:47 -0400 (Sat, 31 Mar 2012) | 1 line
          
          CAMEL-5134: Simple language can now refer to headers using square bracket notation.
        ................
          r1307862 | hadrian | 2012-03-31 13:48:24 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1242693 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1242693 | davsclaus | 2012-02-10 01:22:45 -0500 (Fri, 10 Feb 2012) | 1 line
            
            Upgraded to groovy 1.8.6
          ........
        ................
          r1307863 | hadrian | 2012-03-31 13:52:22 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1242700 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1242700 | ningjiang | 2012-02-10 03:15:47 -0500 (Fri, 10 Feb 2012) | 1 line
            
            Added some comments on the camel-core type converter.
          ........
        ................
          r1307864 | hadrian | 2012-03-31 14:02:42 -0400 (Sat, 31 Mar 2012) | 64 lines
          
          Blocked revisions 1242665,1242727,1242735,1242829,1242857,1242868-1242869,1243017,1243023-1243025,1243215,1243256,1243305,1243315 via svnmerge
          
          ........
            r1242665 | bvahdat | 2012-02-09 23:20:19 -0500 (Thu, 09 Feb 2012) | 1 line
            
            CAMEL-4998: Provide the timeout option for the SpringWebserviceProducer.
          ........
            r1242727 | bvahdat | 2012-02-10 05:29:33 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Added comment about the warn log.
          ........
            r1242735 | bvahdat | 2012-02-10 05:47:15 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: reusage of the utility shouldConsiderTimeoutConfiguration() method.
          ........
            r1242829 | bvahdat | 2012-02-10 10:56:38 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Populate the HttpUrlConnectionMessageSender & HttpsUrlConnectionMessageSender field values into the Camel's extension of these classes. Also added 2 unit-tests verifying this.
          ........
            r1242857 | bvahdat | 2012-02-10 12:02:29 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: More asserts by ProducerRemoteRouteTimeOutTest.
          ........
            r1242868 | bvahdat | 2012-02-10 12:37:07 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Polished ProducerRemoteRouteTimeOutTest.
          ........
            r1242869 | bvahdat | 2012-02-10 12:39:30 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Polished ProducerRemoteRouteTimeOutTest.
          ........
            r1243017 | davsclaus | 2012-02-11 03:34:41 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4713: Added certFilename option. Thanks to Scott Cranton for the patch.
          ........
            r1243023 | bvahdat | 2012-02-11 05:31:31 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4998: Optimized the logic in that now we do NOT touch the spring WebServiceTemplate at all if no timeout configuration is given.
          ........
            r1243024 | bvahdat | 2012-02-11 05:43:46 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4998: Optimized the CamelHttpsUrlConnectionMessageSender constructor.
          ........
            r1243025 | davsclaus | 2012-02-11 05:49:02 -0500 (Sat, 11 Feb 2012) | 1 line
            
            Added missing test
          ........
            r1243215 | bvahdat | 2012-02-12 04:26:20 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished.
          ........
            r1243256 | davsclaus | 2012-02-12 09:09:40 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished
          ........
            r1243305 | bvahdat | 2012-02-12 14:47:06 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished and fixed one CS error.
          ........
            r1243315 | bvahdat | 2012-02-12 15:23:28 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished and more assertion on the expected.
          ........
        ................
          r1307866 | hadrian | 2012-03-31 14:07:33 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1243997 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1243997 | bvahdat | 2012-02-14 10:33:18 -0500 (Tue, 14 Feb 2012) | 1 line
            
            Corrected typos inside the comment.
          ........
        ................
          r1307898 | hadrian | 2012-03-31 16:49:18 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1244432 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244432 | bvahdat | 2012-02-15 05:45:16 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Corrected typo inside javadoc.
          ........
        ................
          r1307899 | hadrian | 2012-03-31 16:52:30 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1244758 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244758 | bvahdat | 2012-02-15 17:14:48 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Removed the obsolete "implements Block" by FinallyDefinition as it's already done by ProcessorDefinition.
          ........
        ................
          r1307901 | hadrian | 2012-03-31 16:58:53 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1291121 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1291121 | ningjiang | 2012-02-19 21:49:05 -0500 (Sun, 19 Feb 2012) | 1 line
            
            CAMEL-5016 Updated the API call of ServletContextHandler.addFilter
          ........
        ................
          r1307902 | hadrian | 2012-03-31 17:00:41 -0400 (Sat, 31 Mar 2012) | 13 lines
          
          Recorded merge of revisions 1244274-1244431,1244433-1244517,1244519-1244590,1244592-1244643,1244645-1244701 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244274 | hadrian | 2012-02-14 18:36:03 -0500 (Tue, 14 Feb 2012) | 1 line
            
            CAMEL-5006. Patch applied with thanks to Pat Fox
          ........
            r1244701 | bvahdat | 2012-02-15 15:46:12 -0500 (Wed, 15 Feb 2012) | 1 line
            
            CAMEL-5006: Fixed CS error.
          ........
        ................
          r1307904 | hadrian | 2012-03-31 17:01:49 -0400 (Sat, 31 Mar 2012) | 84 lines
          
          Blocked revisions 1244591,1244769,1244774-1244775,1244869,1244873,1244980,1245053,1245084,1245089,1245288,1245318,1245320,1245333,1245653,1245658,1245677,1290995,1291249 via svnmerge
          
          ........
            r1244591 | hadrian | 2012-02-15 11:57:59 -0500 (Wed, 15 Feb 2012) | 1 line
            
            CAMEL-4796. One more fix for raw types related to outputs in the model
          ........
            r1244769 | bvahdat | 2012-02-15 17:33:13 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Resolved the rest of all remaining compiler warnings concerning the rawtype referenced generic types. As the side effect removed a bunch of SuppressWarnings usages as well.
          ........
            r1244774 | bvahdat | 2012-02-15 17:44:39 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Removed some obsolete casts.
          ........
            r1244775 | bvahdat | 2012-02-15 17:52:49 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Avoid references of the type ConcurrentHashMap and better stick to their implemented ConcurrentMap interface.
          ........
            r1244869 | ningjiang | 2012-02-16 02:36:39 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Fixed the CS error of camel-crypto
          ........
            r1244873 | davsclaus | 2012-02-16 02:42:06 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1244980 | davsclaus | 2012-02-16 09:09:55 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-4878: New camel-mongodb component. Thanks to Raul for the patch.
          ........
            r1245053 | davsclaus | 2012-02-16 10:57:06 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5011: deprecated LazyLoadingTypeConverter
          ........
            r1245084 | davsclaus | 2012-02-16 12:06:47 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5011: Do not use lazy load type converter.
          ........
            r1245089 | davsclaus | 2012-02-16 12:18:43 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5012: Camel is now less verbose when starting and shutting down.
          ........
            r1245288 | ningjiang | 2012-02-16 20:56:13 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Added a cxf producer connect refuse test which is based on the mailing list
          ........
            r1245318 | davsclaus | 2012-02-17 00:02:22 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Fixed last commit
          ........
            r1245320 | davsclaus | 2012-02-17 00:31:33 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Fixed last commit
          ........
            r1245333 | cmueller | 2012-02-17 02:26:58 -0500 (Fri, 17 Feb 2012) | 1 line
            
            CAMEL-5013: Upgrade org.jboss.netty/netty/3.2.6.Final_1 -> io.netty/netty/3.3.1.Final
          ........
            r1245653 | cmoulliard | 2012-02-17 11:56:50 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Add CdiCamelContext class which allows to produce using @Named("simpleContext") a DefaultCamelContext using CDI
          ........
            r1245658 | cmoulliard | 2012-02-17 12:15:46 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Simplify code
          ........
            r1245677 | cmoulliard | 2012-02-17 12:33:47 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Simplify code
          ........
            r1290995 | cmueller | 2012-02-19 08:03:30 -0500 (Sun, 19 Feb 2012) | 1 line
            
            improved the ZipDataFormatTest
          ........
            r1291249 | bvahdat | 2012-02-20 08:27:25 -0500 (Mon, 20 Feb 2012) | 6 lines
            
            Polished:
            - usage of @SuppressWarnings where applicable.
            - remove unused imports.
            - remove unused variables.
            - avoid deprecated API usage.
          ........
        ................
          r1307907 | hadrian | 2012-03-31 17:24:05 -0400 (Sat, 31 Mar 2012) | 76 lines
          
          Blocked revisions 1291263,1291483,1291618,1291623,1291945,1292120,1292137-1292138,1292147,1292164,1292168,1292195,1292220,1292266,1292299,1292634,1292676,1292689 via svnmerge
          
          ........
            r1291263 | ningjiang | 2012-02-20 09:02:01 -0500 (Mon, 20 Feb 2012) | 1 line
            
            CAMEL-5017 Added a GroupStrategy API to the camel-stream component
          ........
            r1291483 | cmueller | 2012-02-20 17:09:37 -0500 (Mon, 20 Feb 2012) | 1 line
            
            upgrade saxon-bundle-version from SNAPSHOT to a released version
          ........
            r1291618 | cmueller | 2012-02-21 02:02:55 -0500 (Tue, 21 Feb 2012) | 1 line
            
            update twitter4j bundle version from SNAPSHOT to a released version
          ........
            r1291623 | ningjiang | 2012-02-21 02:22:42 -0500 (Tue, 21 Feb 2012) | 1 line
            
            Updated the version of twitter4j-bundle to fix the twitter4j bundle package import issue.
          ........
            r1291945 | bvahdat | 2012-02-21 13:09:37 -0500 (Tue, 21 Feb 2012) | 1 line
            
            CAMEL-5026: Upgrade to Hazelcast 1.9.4.8 and cleanup the camel-hazelcast's own unit-tests.
          ........
            r1292120 | ningjiang | 2012-02-21 23:09:41 -0500 (Tue, 21 Feb 2012) | 1 line
            
            CAMEL-4993 Add session information from cometd to camel message headers
          ........
            r1292137 | davsclaus | 2012-02-22 01:37:11 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4878: Applied mongodb adjustment patch. Thanks to Raul for the patch.
          ........
            r1292138 | davsclaus | 2012-02-22 01:48:57 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4878: Added camel-mongodb to the kit
          ........
            r1292147 | davsclaus | 2012-02-22 02:06:57 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5015: Added support for keyed data queues to camel-jt400. Thanks to Jeff Costello for the patch.
          ........
            r1292164 | ningjiang | 2012-02-22 02:49:40 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5018 support the set the default value on the field of bindy CVS
          ........
            r1292168 | ningjiang | 2012-02-22 02:52:47 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4993 Added the test file which I just forgot to add
          ........
            r1292195 | davsclaus | 2012-02-22 03:52:53 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4964: Added beanio osgi test
          ........
            r1292220 | davsclaus | 2012-02-22 05:02:17 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4964: Upgraded to beanio 1.2.3. Need to still wrap osgi as the manifest.mf is flawed.
          ........
            r1292266 | bvahdat | 2012-02-22 07:56:24 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5026: Instruct maven-surefire-plugin to fork JVM for each test.
          ........
            r1292299 | davsclaus | 2012-02-22 09:15:08 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5029: Allow customizing list of bundles for camel-test-blueprint. Thanks to Lukasz for the patch.
          ........
            r1292634 | ningjiang | 2012-02-22 22:36:33 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5028 removed the route count assertion from the CamelSprintTestSupport
          ........
            r1292676 | davsclaus | 2012-02-23 02:15:34 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5019: Added camel-mongodb to features
          ........
            r1292689 | davsclaus | 2012-02-23 03:03:35 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5032: Java DSL configuring context scoped errorHandler should be void method to avoid people using it as fluent builders.
          ........
        ................
          r1307908 | hadrian | 2012-03-31 17:24:52 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1292713 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1292713 | davsclaus | 2012-02-23 03:53:03 -0500 (Thu, 23 Feb 2012) | 1 line
            
            Upgraded to jruby 1.6.7
          ........
        ................
          r1307968 | hadrian | 2012-03-31 20:54:53 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1292947 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1292947 | hadrian | 2012-02-23 15:48:47 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5020. Add support for the scp protocol
          ........
        ................
          r1307994 | hadrian | 2012-03-31 21:53:25 -0400 (Sat, 31 Mar 2012) | 1 line
          
          Better ask for a mandatory conversion as otherwise a potentially failed conversion will not be detected.
        ................
          r1307995 | hadrian | 2012-03-31 22:05:39 -0400 (Sat, 31 Mar 2012) | 17 lines
          
          Recorded merge of revisions 1291256-1291262,1291264-1291482,1291484-1291554,1291556-1291617,1291619-1291622,1291624-1291726,1291728-1291847,1291849-1291863,1291865-1291944,1291946-1292113,1292115-1292119,1292121-1292136,1292139-1292146,1292148-1292163,1292165-1292167,1292169-1292194,1292196-1292219,1292221-1292265,1292267-1292298,1292300-1292383,1292385-1292633,1292635-1292675,1292677-1292688,1292690-1292712,1292714-1292724,1292726-1292759,1292761-1292766,1292768-1292835,1292837-1292946,1292948-1292996,1292998-1293004,1293006-1293021,1293023-1293026,1293028-1293078,1293080-1293267,1293269-1293287,1293289-1293329,1293331-1293574,1293577,1293579-1293589,1293591,1293593-1293720,1293722-1293827,1293829-1293832,1293834-1293851,1293853-1293854,1293856-1294129,1294131-1294198 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1291256 | bvahdat | 2012-02-20 08:48:34 -0500 (Mon, 20 Feb 2012) | 1 line
            
            Better ask for a mandatory conversion as otherwise a potentially failed conversion will not be detected.
          ........
            r1293083 | ningjiang | 2012-02-24 00:13:25 -0500 (Fri, 24 Feb 2012) | 1 line
            
            CAMEL-5035 Removed the System.out.println
          ........
            r1294198 | davsclaus | 2012-02-27 11:13:16 -0500 (Mon, 27 Feb 2012) | 1 line
            
            CAMEL-5042: Shutting down a thread pool will remove it from JMX if it was managed.
          ........
        ................
          r1307996 | hadrian | 2012-03-31 22:06:30 -0400 (Sat, 31 Mar 2012) | 48 lines
          
          Blocked revisions 1292836,1292997,1293005,1293022,1293027,1293575-1293576,1293578,1293592,1293721,1293833 via svnmerge
          
          ........
            r1292836 | davsclaus | 2012-02-23 11:02:03 -0500 (Thu, 23 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1292997 | cmueller | 2012-02-23 17:31:54 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5034: Upgrade org.apache.openjpa/openjpa-persistence-jdbc/2.1.1 -> org.apache.openjpa/openjpa-persistence-jdbc/2.2.0
          ........
            r1293005 | cmueller | 2012-02-23 17:53:06 -0500 (Thu, 23 Feb 2012) | 1 line
            
            added test for user forum issue
          ........
            r1293022 | cmueller | 2012-02-23 18:14:30 -0500 (Thu, 23 Feb 2012) | 1 line
            
            add unit test for an user forum issue
          ........
            r1293027 | cmueller | 2012-02-23 18:20:36 -0500 (Thu, 23 Feb 2012) | 1 line
            
            add unit test for an user forum issue
          ........
            r1293575 | bvahdat | 2012-02-25 06:19:46 -0500 (Sat, 25 Feb 2012) | 1 line
            
            CAMEL-4998: Comment added.
          ........
            r1293576 | bvahdat | 2012-02-25 06:21:17 -0500 (Sat, 25 Feb 2012) | 1 line
            
            CAMEL-4998: Comment added.
          ........
            r1293578 | davsclaus | 2012-02-25 06:34:22 -0500 (Sat, 25 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1293592 | bvahdat | 2012-02-25 07:37:35 -0500 (Sat, 25 Feb 2012) | 1 line
            
            Polished and fixed a bunch of CS errors.
          ........
            r1293721 | cmueller | 2012-02-25 18:12:45 -0500 (Sat, 25 Feb 2012) | 1 line
            
            fixed a broken unit test in org.apache.camel.builder.xml.ExtractXPathWithNamespaceTest
          ........
            r1293833 | cmueller | 2012-02-26 08:34:27 -0500 (Sun, 26 Feb 2012) | 1 line
            
            CAMEL-5044: Use the openjpa-maven-plugin instead of maven-antrun-plugin to enhance the JPA entities for OpenJPA
          ........
        ................
          r1307998 | hadrian | 2012-03-31 22:30:00 -0400 (Sat, 31 Mar 2012) | 1 line
          
          CAMEL-5020. Support for recursive copy
        ................
          r1307999 | hadrian | 2012-03-31 22:32:27 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1294481 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294481 | hadrian | 2012-02-28 01:34:42 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Checkstyle fix
          ........
        ................
          r1308000 | hadrian | 2012-03-31 22:34:25 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1294572 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294572 | bvahdat | 2012-02-28 05:54:02 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Corrected the URL typo inside Javadoc.
          ........
        ................
          r1308003 | hadrian | 2012-03-31 22:46:54 -0400 (Sat, 31 Mar 2012) | 17 lines
          
          Recorded merge of revisions 1294451-1294480,1294483-1294501,1294503-1294532,1294534-1294554,1294556-1294571,1294573-1294587,1294589-1294620 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294451 | hadrian | 2012-02-27 22:18:33 -0500 (Mon, 27 Feb 2012) | 1 line
            
            CAMEL-5020. Support for recursive copy
          ........
            r1294468 | hadrian | 2012-02-28 00:48:53 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5030. Support for smpp tunnelling through http proxy
          ........
            r1294620 | davsclaus | 2012-02-28 07:28:40 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5042: Fixed test
          ........
        ................
          r1308004 | hadrian | 2012-03-31 22:48:40 -0400 (Sat, 31 Mar 2012) | 166 lines
          
          Blocked revisions 1294555,1294636,1294693,1294707,1294712,1294893,1295096,1295387,1295573,1295579,1295633,1295642,1295644,1295679,1295748,1295925,1295928,1295962,1295991,1296196,1296215,1296314,1296457,1296766,1296769,1296778-1296779,1296781,1296785,1296787,1296789,1296791,1296793,1296795,1296803-1296804,1296872,1296954,1296957,1296974 via svnmerge
          
          ........
            r1294555 | davsclaus | 2012-02-28 05:31:27 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-4923: Applied the code cleanup patch from Bilgin.
          ........
            r1294636 | davsclaus | 2012-02-28 08:28:13 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Polished javadoc
          ........
            r1294693 | akarpe | 2012-02-28 10:33:10 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Fixed CAMEL-5039 Make WeightedRandomLoadBalancer really random. Many Thanks to Xavier Fournet for the bug identification, submission of this patch and well documented test cases.
          ........
            r1294707 | hadrian | 2012-02-28 10:59:51 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Checkstyle fix
          ........
            r1294712 | akarpe | 2012-02-28 11:07:22 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Fixed CAMEL-4866 Upgrade Commons Net to version 3.0.1.
          ........
            r1294893 | cmueller | 2012-02-28 18:31:58 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5052: DefaultUnitOfWork should copy headers from the original message if it's a JmsMessage
          ........
            r1295096 | davsclaus | 2012-02-29 08:31:26 -0500 (Wed, 29 Feb 2012) | 1 line
            
            CAMEL-4866: Fixed upgrade of camel-ftp for osgi.
          ........
            r1295387 | ningjiang | 2012-02-29 21:45:35 -0500 (Wed, 29 Feb 2012) | 1 line
            
            Add a message header test on the CxfProducer
          ........
            r1295573 | bvahdat | 2012-03-01 09:12:22 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fixed the false positive behaving JmsHeaderFilteringTest.
          ........
            r1295579 | davsclaus | 2012-03-01 09:20:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            CAMEL-5056: @deprecated not used fluent builders on bean def. Allow to set bean type by class.
          ........
            r1295633 | dvaleri | 2012-03-01 10:50:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-5037] Added support for JSSE Confoguration Utility to Mina 2 component.
          ........
            r1295642 | dvaleri | 2012-03-01 10:59:55 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Integrate Spring Test with Camel test support for TestNG.
          ........
            r1295644 | bvahdat | 2012-03-01 11:01:56 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fixed the failed test on the CI-Server.
          ........
            r1295679 | dvaleri | 2012-03-01 12:10:58 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4840] Deprecated JUnit 3.x based test support classes.
          ........
            r1295748 | dvaleri | 2012-03-01 14:07:13 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Updated test for use as a documentation example.
          ........
            r1295925 | hadrian | 2012-03-01 16:55:39 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Checkstyle - order of imports
          ........
            r1295928 | hadrian | 2012-03-01 16:57:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fix feature validation. Remove dependency on snapshot
          ........
            r1295962 | dvaleri | 2012-03-01 17:52:57 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support.
          ........
            r1295991 | dvaleri | 2012-03-01 18:35:34 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4081] Updated AHC to 1.7.1 and removed workaround.
          ........
            r1296196 | davsclaus | 2012-03-02 08:26:05 -0500 (Fri, 02 Mar 2012) | 1 line
            
            CAMEL-5041: Fixed so route scoped error handlers is removed from JMX when removing a route, to not leak memory.
          ........
            r1296215 | jstrachan | 2012-03-02 09:10:03 -0500 (Fri, 02 Mar 2012) | 1 line
            
            added a first spike of a stub component for CAMEL-5057
          ........
            r1296314 | davsclaus | 2012-03-02 12:17:26 -0500 (Fri, 02 Mar 2012) | 1 line
            
            CAMEL-5057: Fixed CS
          ........
            r1296457 | bvahdat | 2012-03-02 16:00:22 -0500 (Fri, 02 Mar 2012) | 1 line
            
            Implement Message.copyFrom() solely at one class level.
          ........
            r1296766 | davsclaus | 2012-03-04 02:59:13 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Polished
          ........
            r1296769 | davsclaus | 2012-03-04 03:48:25 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5059: Added mockEndpointsAndSkip to advice with and test kit.
          ........
            r1296778 | davsclaus | 2012-03-04 05:43:45 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4602: GenericFileFilter now supports directories. Thanks to Michael for partly patch.
          ........
            r1296779 | davsclaus | 2012-03-04 05:51:25 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Thanks to Lukasz for the patch.
          ........
            r1296781 | cmueller | 2012-03-04 06:31:13 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout
          ........
            r1296785 | davsclaus | 2012-03-04 07:27:53 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Adjusted tests.
          ........
            r1296787 | bvahdat | 2012-03-04 07:39:03 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4797: DataFormat.unmarshal() should allow to return Message or Exchange to make it more flexible.
          ........
            r1296789 | davsclaus | 2012-03-04 07:48:32 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Adjusted tests.
          ........
            r1296791 | cmueller | 2012-03-04 07:51:11 -0500 (Sun, 04 Mar 2012) | 3 lines
            
            Revert "Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout"
            
            This reverts commit fa9f6422e95638148d32cdee9c5ab2b6f2d18342.
          ........
            r1296793 | cmueller | 2012-03-04 07:53:30 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout
          ........
            r1296795 | davsclaus | 2012-03-04 07:58:56 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4967: Upgraded to jasypt 1.9.
          ........
            r1296803 | bvahdat | 2012-03-04 08:18:50 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4797: Cleanup of UnmarshalProcessorTest.
          ........
            r1296804 | bvahdat | 2012-03-04 08:23:57 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Fixed CS.
          ........
            r1296872 | bvahdat | 2012-03-04 15:19:16 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Fixed the failed MyBatisBatchConsumerTest on the CI-Server.
          ........
            r1296954 | bvahdat | 2012-03-05 03:04:35 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4797: Relaxed the restriction about DataFormat not being allowed to return null, as an example SoapJaxbDataFormat does that.
          ........
            r1296957 | bvahdat | 2012-03-05 03:28:28 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4797: Added one more assert to UnmarshalProcessorTest.
          ........
            r1296974 | davsclaus | 2012-03-05 04:23:11 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4680: Check for clash with multiple consumers when starting a new route manually using startRoute
          ........
        ................
          r1308442 | hadrian | 2012-04-02 13:57:30 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1298172 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298172 | davsclaus | 2012-03-07 17:30:44 -0500 (Wed, 07 Mar 2012) | 1 line
            
            CAMEL-4230: Improved exception message if illegal access invoking a bean. Thanks to Michael Warecki for the patch.
          ........
        ................
          r1308447 | hadrian | 2012-04-02 14:00:44 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1298422 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298422 | davsclaus | 2012-03-08 09:59:23 -0500 (Thu, 08 Mar 2012) | 1 line
            
            Fixed test
          ........
        ................
          r1308452 | hadrian | 2012-04-02 14:41:52 -0400 (Mon, 02 Apr 2012) | 29 lines
          
          Recorded merge of revisions 1298337-1298421,1298423-1298446,1298448-1298550,1298552-1298779,1298781-1298784,1298786-1298794,1298796-1298820,1298822-1298992,1298994-1299161,1299163-1299190,1299192-1299194,1299196-1299382,1299384-1299398,1299400-1299445,1299447-1299450,1299452-1299605,1299607-1299972,1299974-1299988,1299990-1299991,1299993-1300060,1300062-1300084,1300086-1300217,1300219-1300378,1300380-1300478,1300480-1300689 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298337 | bvahdat | 2012-03-08 05:11:06 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5058: Polished the provided unit-test.
          ........
            r1298341 | bvahdat | 2012-03-08 05:24:51 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5058: Usage of the "final" keyword by the provided unit-test to mark TypicalConsumer as immutable.
          ........
            r1298525 | boday | 2012-03-08 14:23:31 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5071 added SolrJ DirectXMLRequest support via the Exchange Body
          ........
            r1298660 | boday | 2012-03-08 19:05:28 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5071 tweaked the solr message type detection logic to be more efficient
          ........
            r1300359 | cmueller | 2012-03-13 17:27:41 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5081: org.apache.camel.component.mybatis.MyBatisBatchConsumerTest.testBatchConsumer() fails unpredictable
          ........
            r1300689 | cmueller | 2012-03-14 15:01:48 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5083: org.apache.camel.component.ibatis.IBatisBatchConsumerTest.testBatchConsumer() fails unpredictable
          ........
        ................
          r1308455 | hadrian | 2012-04-02 14:47:15 -0400 (Mon, 02 Apr 2012) | 164 lines
          
          Blocked revisions 1297056,1297097,1297103,1297126,1297170,1297173,1297180,1297313,1297410,1297426,1298551,1298780,1299162,1299191,1299195,1299606,1299973,1299989,1299992,1300061,1300085,1300218,1300479,1300804,1300914,1300971,1300974,1301115,1301316,1301721,1301791,1301900,1301907,1301910-1301911,1301940,1301942,1301951,1302084,1302093 via svnmerge
          
          ........
            r1297056 | davsclaus | 2012-03-05 08:53:37 -0500 (Mon, 05 Mar 2012) | 1 line
            
            Cleanup and avoid dependency on too many 3rd party maven repos.
          ........
            r1297097 | dvaleri | 2012-03-05 10:49:58 -0500 (Mon, 05 Mar 2012) | 1 line
            
            [CAMEL-4665] Added support for JSSE Configuration Utility to Camel Mail component.
          ........
            r1297103 | davsclaus | 2012-03-05 10:56:38 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4498: Use AHC client for websocket unit tests.
          ........
            r1297126 | davsclaus | 2012-03-05 11:50:42 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5061: Polished camel-websocket
          ........
            r1297170 | bvahdat | 2012-03-05 13:53:28 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5062: Refer the Java Collection API classes by their interfaces and not through a specific given implementation. Also cleaned up some unused imports.
          ........
            r1297173 | bvahdat | 2012-03-05 14:01:47 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5062: Refer the Java Collection API classes by their interfaces and not through a specific given implementation.
          ........
            r1297180 | bvahdat | 2012-03-05 14:10:27 -0500 (Mon, 05 Mar 2012) | 1 line
            
            Removed the obsolete @SuppressWarnings("deprecation") usage as the class is already deprecated (as a whole) by itself.
          ........
            r1297313 | bibryam | 2012-03-05 20:10:05 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-3551: Added new camel-fop component.
          ........
            r1297410 | davsclaus | 2012-03-06 05:30:05 -0500 (Tue, 06 Mar 2012) | 1 line
            
            CAMEL-3551: fixed pom.xml and added camel-fop to release kit.
          ........
            r1297426 | davsclaus | 2012-03-06 06:17:42 -0500 (Tue, 06 Mar 2012) | 1 line
            
            CAMEL-3551: Polished
          ........
            r1298551 | davsclaus | 2012-03-08 15:04:45 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5059: Added unit test
          ........
            r1298780 | bvahdat | 2012-03-09 05:17:47 -0500 (Fri, 09 Mar 2012) | 1 line
            
            CAMEL-5068: Allow to configure cache option on propertiesPlaceholder in XML DSL.
          ........
            r1299162 | davsclaus | 2012-03-10 03:39:19 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-5073: Added camel-jt400 to features.
          ........
            r1299191 | davsclaus | 2012-03-10 07:59:16 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-4770: Added asyncStartListener option to JMS. To start jms consumer async. Thanks to Michael Warecki for partly patch.
          ........
            r1299195 | davsclaus | 2012-03-10 08:08:32 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-5074: Improved javadoc
          ........
            r1299606 | davsclaus | 2012-03-12 06:07:35 -0400 (Mon, 12 Mar 2012) | 1 line
            
            CAMEL-4300: You can now configure a default key/operation in cache endpoints. Thanks to Piotr Klimczak for the patch.
          ........
            r1299973 | davsclaus | 2012-03-13 00:58:19 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5077: Upgrade to hazelcast 2.0.1
          ........
            r1299989 | cmueller | 2012-03-13 03:19:19 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment - removed test which fail because Oracle changed the implementation of sun.beans.editors.IntEditor which calls Integer.valueOf() to sun.beans.editors.IntegerEditor which calls Integer.decode()
          ........
            r1299992 | cmueller | 2012-03-13 03:37:41 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment - updated a test which fail in Java 7 because of an issue in OpenJDK
          ........
            r1300061 | davsclaus | 2012-03-13 06:39:04 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5078: A number of dependency upgrades.
          ........
            r1300085 | davsclaus | 2012-03-13 07:52:45 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5078: A number of dependency upgrades. Lets keep the sfl4j-api as 1.6.1 as it has been all the time.
          ........
            r1300218 | davsclaus | 2012-03-13 12:20:43 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5079: EIPs using thread pools will now eager shutdown thread pools if thread pool was created only for the EIP. This avoids leaks when adding and removing a lot of routes etc.
          ........
            r1300479 | davsclaus | 2012-03-14 04:15:18 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5079: EIPs using thread pools will now eager shutdown thread pools if thread pool was created only for the EIP. This avoids leaks when adding and removing a lot of routes etc.
          ........
            r1300804 | ningjiang | 2012-03-14 22:08:03 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5082 enhanments on the camel-printer
          ........
            r1300914 | bvahdat | 2012-03-15 07:15:06 -0400 (Thu, 15 Mar 2012) | 1 line
            
            Fixed the failed build because of camel-msv dependencies while using Maven 3.0.4.
          ........
            r1300971 | bvahdat | 2012-03-15 09:24:22 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5078: Fixed the Apache Lucene deprecated API usage after upgrade to the version 3.5.0.
          ........
            r1300974 | bvahdat | 2012-03-15 09:34:29 -0400 (Thu, 15 Mar 2012) | 1 line
            
            Polished.
          ........
            r1301115 | davsclaus | 2012-03-15 13:40:18 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5090: WireTap now runs in UoW and error handling when tapping to destination.
          ........
            r1301316 | hadrian | 2012-03-15 22:48:18 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5097. Fix feature definition for camel-fop
          ........
            r1301721 | hadrian | 2012-03-16 15:53:39 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CS fixes
          ........
            r1301791 | bvahdat | 2012-03-16 18:10:55 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CAMEL-1812: Removed the remaining @author tags.
          ........
            r1301900 | davsclaus | 2012-03-17 05:21:23 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded hawtbuf to 1.9
          ........
            r1301907 | davsclaus | 2012-03-17 06:13:46 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded to MyBatis 3.1.0
          ........
            r1301910 | davsclaus | 2012-03-17 06:29:25 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded to commons-pool 1.6
          ........
            r1301911 | davsclaus | 2012-03-17 06:35:07 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Enabled camel-apns feature
          ........
            r1301940 | davsclaus | 2012-03-17 10:05:55 -0400 (Sat, 17 Mar 2012) | 1 line
            
            CAMEL-5061: Polish camel-websocket. Remove incomplete code. Clean resources when stopping.
          ........
            r1301942 | davsclaus | 2012-03-17 10:29:50 -0400 (Sat, 17 Mar 2012) | 1 line
            
            CAMEL-5061: Added example for documentation
          ........
            r1301951 | davsclaus | 2012-03-17 11:30:52 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Added twitter and websocket example
          ........
            r1302084 | davsclaus | 2012-03-18 03:50:05 -0400 (Sun, 18 Mar 2012) | 1 line
            
            Upgraded to Jersey 1.12
          ........
            r1302093 | davsclaus | 2012-03-18 04:30:31 -0400 (Sun, 18 Mar 2012) | 1 line
            
            CAMEL-5091: Do not enlist producer cache in JMX for EIPs, its internal details only. And will just clutter up the JMX tree if having many routes.
          ........
        ................
          r1308469 | hadrian | 2012-04-02 15:09:54 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301352 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301352 | davsclaus | 2012-03-16 02:50:31 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Added a little debug logging to better know which scheduler is being in use by quartz component
          ........
        ................
          r1308472 | hadrian | 2012-04-02 15:12:30 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301375 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301375 | davsclaus | 2012-03-16 04:29:01 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CAMEL-5099: Timer thread should use same thread name pattern as the others.
          ........
        ................
          r1308474 | hadrian | 2012-04-02 15:13:59 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301644 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301644 | davsclaus | 2012-03-16 12:49:12 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Polished
          ........
        ................
          r1308479 | hadrian | 2012-04-02 15:16:15 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1302094 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302094 | davsclaus | 2012-03-18 04:34:18 -0400 (Sun, 18 Mar 2012) | 1 line
            
            CAMEL-5099: Timer thread should use same thread name pattern as the others.
          ........
        ................
          r1308515 | hadrian | 2012-04-02 16:00:34 -0400 (Mon, 02 Apr 2012) | 25 lines
          
          Recorded merge of revisions 1299446-1299605,1299607-1299972,1299974-1299988,1299990-1299991,1299993-1300060,1300062-1300084,1300086-1300217,1300219-1300358,1300360-1300478,1300480-1300688,1300690-1300719,1300721,1300723-1300803,1300806-1300825,1300827-1300830,1300832-1300913,1300915-1300958,1300960-1300970,1300972-1300973,1300975-1301114,1301116-1301315,1301317-1301351,1301353-1301363,1301365-1301374,1301377-1301393,1301395-1301570,1301572-1301630,1301632-1301643,1301645-1301655,1301657-1301677,1301679-1301720,1301722-1301790,1301792-1301899,1301901-1301906,1301908-1301909,1301912-1301939,1301941,1301943-1301950,1301952-1302005,1302007-1302083,1302085-1302092,1302095-1302107,1302109-1302110,1302112-1302328,1302330-1302352,1302354-1302356,1302358-1302392,1302394-1302479,1302481-1302483,1302485-1303300,1303302-1303352,1303354-1303556,1303559-1303564 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1299446 | cmueller | 2012-03-11 16:58:13 -0400 (Sun, 11 Mar 2012) | 1 line
            
            instruct hazelcast to use slf4j by running our unit tests
          ........
            r1299451 | cmueller | 2012-03-11 17:17:40 -0400 (Sun, 11 Mar 2012) | 1 line
            
            instruct hazelcast to use slf4j by running our unit tests
          ........
            r1300379 | cmueller | 2012-03-13 18:06:04 -0400 (Tue, 13 Mar 2012) | 1 line
            
            org.apache.camel.component.jetty.JettySimulateInOnlyTest.testSimulateInOnlyUsingWireTap() needs a few more time on our CI server
          ........
            r1303386 | hadrian | 2012-03-21 09:25:20 -0400 (Wed, 21 Mar 2012) | 1 line
            
            CAMEL-5098. Fix value of FAILURE_ENDPOINT header
          ........
            r1303564 | cmueller | 2012-03-21 16:43:13 -0400 (Wed, 21 Mar 2012) | 1 line
            
            CAMEL-4734: Consolidate the database vendors in our unit tests - work in progress
          ........
        ................
          r1308517 | hadrian | 2012-04-02 16:02:23 -0400 (Mon, 02 Apr 2012) | 152 lines
          
          Blocked revisions 1298785,1301364,1302108,1302329,1302353,1302357,1302480,1303353,1303558,1303707,1303941,1304076,1304300,1305013,1305036,1305042,1305069-1305070,1305121,1305332,1305365,1305425,1305505,1305773,1305785,1305792,1306439,1307578,1307636,1307788,1307815,1307824,1308116,1308165,1308211,1308217 via svnmerge
          
          ........
            r1298785 | davsclaus | 2012-03-09 05:44:48 -0500 (Fri, 09 Mar 2012) | 1 line
            
            Fixed test on slower boxes
          ........
            r1301364 | davsclaus | 2012-03-16 04:08:45 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Fixed test
          ........
            r1302108 | davsclaus | 2012-03-18 06:17:02 -0400 (Sun, 18 Mar 2012) | 1 line
            
            Added snippet for documentation
          ........
            r1302329 | davsclaus | 2012-03-19 04:58:23 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Added README.txt to example.
          ........
            r1302353 | davsclaus | 2012-03-19 05:55:17 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Polished features. Enabled camel-dns, as people can use it on SUN JVMs, if they adjust their jre.properties
          ........
            r1302357 | davsclaus | 2012-03-19 06:04:51 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Added details about camel-dns requires SUN JVM and what to do before using.
          ........
            r1302480 | hadrian | 2012-03-19 10:43:08 -0400 (Mon, 19 Mar 2012) | 1 line
            
            CS fix
          ........
            r1303353 | davsclaus | 2012-03-21 06:33:01 -0400 (Wed, 21 Mar 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1303558 | davsclaus | 2012-03-21 16:24:39 -0400 (Wed, 21 Mar 2012) | 1 line
            
            Added some osgi karaf test
          ........
            r1303707 | cmueller | 2012-03-22 06:03:28 -0400 (Thu, 22 Mar 2012) | 1 line
            
            CAMEL-4778: Upgrade Spring to 3.1.1.RELEASE - added a spring3.1 profile
          ........
            r1303941 | hadrian | 2012-03-22 14:08:04 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Update avro tests to use the junit4 based camel test support
          ........
            r1304076 | hadrian | 2012-03-22 17:25:58 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Remove unneeded (duplicate) tests. Minor fix for unused field.
          ........
            r1304300 | cmueller | 2012-03-23 08:12:58 -0400 (Fri, 23 Mar 2012) | 3 lines
            
            Revert "[CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support."
            
            [CAMEL-4987] Reverting changes which are impossible to use with Spring 3.0 and 3.1
          ........
            r1305013 | davsclaus | 2012-03-25 07:57:50 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5117: You can now configure twitter settings on twitter component level. Made the example run out of the box.
          ........
            r1305036 | davsclaus | 2012-03-25 09:51:07 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5117: Polished. Made it a bit easier with camel-twitter as you can configure sendToAll on endpoint.
          ........
            r1305042 | davsclaus | 2012-03-25 10:12:18 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5003: Added support for generated keys in camel-jdbc. Thanks to Thomas Gueze for the patch.
          ........
            r1305069 | cmueller | 2012-03-25 12:14:46 -0400 (Sun, 25 Mar 2012) | 3 lines
            
            Revert "Revert "[CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support.""
            
            This reverts commit ad7e43430927bfa41f22405a10c6c8e647331897.
          ........
            r1305070 | cmueller | 2012-03-25 12:14:52 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-4778: Upgrade Spring to 3.1.1.RELEASE
          ........
            r1305121 | cmueller | 2012-03-25 16:40:40 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment
          ........
            r1305332 | davsclaus | 2012-03-26 08:32:10 -0400 (Mon, 26 Mar 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1305365 | davsclaus | 2012-03-26 10:10:47 -0400 (Mon, 26 Mar 2012) | 1 line
            
            CAMEL-4160: Polished dataset component. Optimized to not need for copy exchange, which helps reduce memory usage.
          ........
            r1305425 | dvaleri | 2012-03-26 12:17:22 -0400 (Mon, 26 Mar 2012) | 1 line
            
            [CAMEL-4987] Implemented new methods for Spring 3.1.
          ........
            r1305505 | dkulp | 2012-03-26 15:27:00 -0400 (Mon, 26 Mar 2012) | 1 line
            
            Add a profile to help testing with CXF 2.6.x
          ........
            r1305773 | davsclaus | 2012-03-27 04:25:54 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5121: Added support class for lifecycle strategy.
          ........
            r1305785 | davsclaus | 2012-03-27 05:12:02 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5118: Upgraded to jclouds 1.4.0
          ........
            r1305792 | davsclaus | 2012-03-27 05:41:43 -0400 (Tue, 27 Mar 2012) | 1 line
            
            Polished
          ........
            r1306439 | davsclaus | 2012-03-28 11:44:48 -0400 (Wed, 28 Mar 2012) | 1 line
            
            Allow to load static resources from classpath with camel-websocket. Polished the twitter example.
          ........
            r1307578 | hadrian | 2012-03-30 15:23:02 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CS fixes
          ........
            r1307636 | hadrian | 2012-03-30 18:06:21 -0400 (Fri, 30 Mar 2012) | 1 line
            
            Remove warnings. Minor fixes
          ........
            r1307788 | davsclaus | 2012-03-31 08:23:22 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1307815 | davsclaus | 2012-03-31 10:32:43 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-5050: Added camel-leveldb component. Thanks to Jason Sherman for the patch.
          ........
            r1307824 | davsclaus | 2012-03-31 11:12:13 -0400 (Sat, 31 Mar 2012) | 1 line
            
            Fixed so features.xml can be validated.
          ........
            r1308116 | davsclaus | 2012-04-01 09:46:38 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1308165 | cmueller | 2012-04-01 14:06:54 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-3776: Add pooling support for JAXB data format
          ........
            r1308211 | rickette | 2012-04-01 19:02:41 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5135: support for JSON views in Jackson and ExclusionStrategy's in GSON
          ........
            r1308217 | rickette | 2012-04-01 19:14:55 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5135: polishing
          ........
        ................
          r1308553 | hadrian | 2012-04-02 16:52:40 -0400 (Mon, 02 Apr 2012) | 48 lines
          
          Blocked revisions 1303903,1303952,1306028,1306598,1307756,1308070,1308518,1308524-1308525,1308528,1308532 via svnmerge
          
          ........
            r1303903 | hadrian | 2012-03-22 13:26:54 -0400 (Thu, 22 Mar 2012) | 1 line
            
            CAMEL-5111. Disable failing test and fixed timing issue in another
          ........
            r1303952 | hadrian | 2012-03-22 14:19:24 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Update xmlsecurity tests to use the junit4 based camel test support. Fixed minor warnings.
          ........
            r1306028 | cmueller | 2012-03-27 18:20:02 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5124: Use the forkedProcessTimeoutInSeconds option in maven-surefire-plugin to prevent hanging processes on Windows
          ........
            r1306598 | cmueller | 2012-03-28 17:25:35 -0400 (Wed, 28 Mar 2012) | 1 line
            
            increate the maven-surefire-plugin forkedProcessTimeoutInSeconds value
          ........
            r1307756 | davsclaus | 2012-03-31 06:20:57 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-5124: Increase timeout for unit tests so it can complete on avergage computers.
          ........
            r1308070 | cmueller | 2012-04-01 06:49:55 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5124: Increase timeout for unit tests so it can complete on avergage computers.
          ........
            r1308518 | rickette | 2012-04-02 16:02:32 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: snippet tags for documentation
          ........
            r1308524 | cmueller | 2012-04-02 16:09:13 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-3776: Add pooling support for JAXB data format
          ........
            r1308525 | rickette | 2012-04-02 16:09:50 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: fix snippet tags for documentation
          ........
            r1308528 | rickette | 2012-04-02 16:13:59 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: fix snippet tags for documentation
          ........
            r1308532 | rickette | 2012-04-02 16:24:13 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: extended snippet tags for documentation
          ........
        ................
          r1308554 | hadrian | 2012-04-02 16:54:10 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1306323 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1306323 | davsclaus | 2012-03-28 09:44:36 -0400 (Wed, 28 Mar 2012) | 1 line
            
            CAMEL-5128: Using custom NodeIdFactory is auto discovered with XML DSLs.
          ........
        ................
          r1308555 | hadrian | 2012-04-02 16:55:14 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1307702 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1307702 | hadrian | 2012-03-30 22:40:02 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CAMEL-5020. Add featurs for camel-jsch
          ........
        ................
          r1308556 | hadrian | 2012-04-02 16:56:09 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1307712 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1307712 | hadrian | 2012-03-30 23:44:17 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CAMEL-5020. Add component to distro.
          ........
        ................
          r1308674 | hadrian | 2012-04-03 00:13:21 -0400 (Tue, 03 Apr 2012) | 1 line
          
          CS and minor fixes
        ................
          r1309738 | davsclaus | 2012-04-05 06:22:58 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5129: Fixed interceptFrom to support property placeholders.
        ................
          r1309781 | davsclaus | 2012-04-05 07:37:52 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5140: bean component - @Handler should take precedence in a bean that implements Predicate
        ................
          r1309820 | davsclaus | 2012-04-05 08:30:20 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5141: camel-jms - Allow to configure frequency of timeout checker when doing request/reply over JMS
        ................
          r1309948 | davsclaus | 2012-04-05 13:06:21 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5137: Fixed timer component suspend/resume issue.
        ................
          r1309950 | dkulp | 2012-04-05 13:10:02 -0400 (Thu, 05 Apr 2012) | 2 lines
          
          Pull some stuff back from trunk to allow testing 2.9.x with CXF 2.6.0-SNAPSHOT
        ................
          r1310426 | davsclaus | 2012-04-06 12:00:09 -0400 (Fri, 06 Apr 2012) | 1 line
          
          CAMEL-5146: Marked method as @deprecated which is removed in Camel 2.10 onwards.
        ................
          r1310691 | davsclaus | 2012-04-07 03:58:18 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-5148: Aggregate EIP now supports TimeoutAwareAggregationStrategy.
        ................
          r1310700 | davsclaus | 2012-04-07 04:43:30 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-4693: Added support for httpContext option. Thanks to Jeff Segal for the patch.
        ................
          r1310711 | davsclaus | 2012-04-07 04:56:13 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-4693: Added support for httpContext option. Thanks to Jeff Segal for the patch.
        ................
          r1310727 | davsclaus | 2012-04-07 06:38:47 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-5149: The default injector should perform bean post processing to setup @Produce and the likes on the bean
        ................
          r1310991 | davsclaus | 2012-04-08 08:52:17 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-5150: Some cleanup in camel-netty according to Netty docs.
        ................
          r1310993 | davsclaus | 2012-04-08 08:54:55 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-4556: Netty producer now reuses connection.
        ................
          r1311002 | davsclaus | 2012-04-08 09:49:18 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-4960: Pipeline factories is now stateless and thread-safe.
        ................
          r1311157 | davsclaus | 2012-04-09 04:06:28 -0400 (Mon, 09 Apr 2012) | 1 line
          
          CAMEL-5149: The default injector should perform bean post processing to setup @Produce and the likes on the bean
        ................
          r1311584 | davsclaus | 2012-04-10 02:07:24 -0400 (Tue, 10 Apr 2012) | 1 line
          
          CAMEL-5154: Simple language - OGNL - Invoking explicit method with no parameters should not cause ambiguous exception for overloaded methods
        ................
          r1311791 | hadrian | 2012-04-10 11:29:19 -0400 (Tue, 10 Apr 2012) | 1 line
          
          CS fix
        ................
          r1324569 | davsclaus | 2012-04-11 01:49:51 -0400 (Wed, 11 Apr 2012) | 1 line
          
          CAMEL-5136: File component now explicit forces a flush when files have been written.
        ................


        git-svn-id: https://svn.apache.org/repos/asf/camel/branches/camel-2.8.x@1329044 13f79535-47bb-0310-9956-ffa450edef68

        Hadrian Zbarcea committed 1329044 (1 file)
        Reviews: none

        Blocked revisions 1302010,1302113,1302405,1303456,1303561,1305476,1306026,1306843,1306872,1307796,1307862-1307864,1307866,1307898-1307899,1307901-1307902,1307904,1307907-1307908,1307968,1307994-1307996,1307998-1308000,1308003-1308004,1308442,1308447,1308452,1308455,1308469,1308472,1308474,1308479,1308515,1308517,1308553-1308556,1308674,1309738,1309781,1309820,1309948,1309950,1310426,1310691,1310700,1310711,1310727,1310991,1310993,1311002,1311157,1311584,1311791,1324569 via svnmerge

        ................
          r1302010 | bvahdat | 2012-03-17 16:59:27 -0400 (Sat, 17 Mar 2012) | 9 lines
          
          Merged revisions 1302006 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302006 | bvahdat | 2012-03-17 21:55:23 +0100 (Sa, 17 Mrz 2012) | 1 line
            
            CAMEL-5105: Add the options configRef and strategyRef to csv data format in XML DSL.
          ........
        ................
          r1302113 | davsclaus | 2012-03-18 07:27:07 -0400 (Sun, 18 Mar 2012) | 1 line
          
          CAMEL-5063: Validator component now has better error reporing if cannot resolve resource from schema.
        ................
          r1302405 | bvahdat | 2012-03-19 08:56:06 -0400 (Mon, 19 Mar 2012) | 9 lines
          
          Merged revisions 1302393 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302393 | bvahdat | 2012-03-19 13:16:32 +0100 (Mo, 19 Mrz 2012) | 1 line
            
            Fixed the failed test on the CI-Server.
          ........
        ................
          r1303456 | dkulp | 2012-03-21 12:02:30 -0400 (Wed, 21 Mar 2012) | 2 lines
          
          Update to the osgi bundles to the new versions that have the proper bundle information, sources jars, etc...
        ................
          r1303561 | davsclaus | 2012-03-21 16:30:09 -0400 (Wed, 21 Mar 2012) | 1 line
          
          CAMEL-5110: Fixed using shareUnitOfWork option with DLC error handler routing to route as DLQ not working as expected.
        ................
          r1305476 | davsclaus | 2012-03-26 14:00:30 -0400 (Mon, 26 Mar 2012) | 1 line
          
          Polished API on CamelContext to refer to which methods to use for @deprecated methods.
        ................
          r1306026 | cmueller | 2012-03-27 17:50:49 -0400 (Tue, 27 Mar 2012) | 1 line
          
          fixed broken unit test
        ................
          r1306843 | cschneider | 2012-03-29 09:24:56 -0400 (Thu, 29 Mar 2012) | 1 line
          
          CAMEL-5131 Using jetty-bundle property instead
        ................
          r1306872 | cschneider | 2012-03-29 10:10:33 -0400 (Thu, 29 Mar 2012) | 1 line
          
          CAMEL-5131 Removing the import for jetty in the hdfs feature as the jetty version imported through the war feature should work already
        ................
          r1307796 | davsclaus | 2012-03-31 09:03:47 -0400 (Sat, 31 Mar 2012) | 1 line
          
          CAMEL-5134: Simple language can now refer to headers using square bracket notation.
        ................
          r1307862 | hadrian | 2012-03-31 13:48:24 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1242693 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1242693 | davsclaus | 2012-02-10 01:22:45 -0500 (Fri, 10 Feb 2012) | 1 line
            
            Upgraded to groovy 1.8.6
          ........
        ................
          r1307863 | hadrian | 2012-03-31 13:52:22 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1242700 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1242700 | ningjiang | 2012-02-10 03:15:47 -0500 (Fri, 10 Feb 2012) | 1 line
            
            Added some comments on the camel-core type converter.
          ........
        ................
          r1307864 | hadrian | 2012-03-31 14:02:42 -0400 (Sat, 31 Mar 2012) | 64 lines
          
          Blocked revisions 1242665,1242727,1242735,1242829,1242857,1242868-1242869,1243017,1243023-1243025,1243215,1243256,1243305,1243315 via svnmerge
          
          ........
            r1242665 | bvahdat | 2012-02-09 23:20:19 -0500 (Thu, 09 Feb 2012) | 1 line
            
            CAMEL-4998: Provide the timeout option for the SpringWebserviceProducer.
          ........
            r1242727 | bvahdat | 2012-02-10 05:29:33 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Added comment about the warn log.
          ........
            r1242735 | bvahdat | 2012-02-10 05:47:15 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: reusage of the utility shouldConsiderTimeoutConfiguration() method.
          ........
            r1242829 | bvahdat | 2012-02-10 10:56:38 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Populate the HttpUrlConnectionMessageSender & HttpsUrlConnectionMessageSender field values into the Camel's extension of these classes. Also added 2 unit-tests verifying this.
          ........
            r1242857 | bvahdat | 2012-02-10 12:02:29 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: More asserts by ProducerRemoteRouteTimeOutTest.
          ........
            r1242868 | bvahdat | 2012-02-10 12:37:07 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Polished ProducerRemoteRouteTimeOutTest.
          ........
            r1242869 | bvahdat | 2012-02-10 12:39:30 -0500 (Fri, 10 Feb 2012) | 1 line
            
            CAMEL-4998: Polished ProducerRemoteRouteTimeOutTest.
          ........
            r1243017 | davsclaus | 2012-02-11 03:34:41 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4713: Added certFilename option. Thanks to Scott Cranton for the patch.
          ........
            r1243023 | bvahdat | 2012-02-11 05:31:31 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4998: Optimized the logic in that now we do NOT touch the spring WebServiceTemplate at all if no timeout configuration is given.
          ........
            r1243024 | bvahdat | 2012-02-11 05:43:46 -0500 (Sat, 11 Feb 2012) | 1 line
            
            CAMEL-4998: Optimized the CamelHttpsUrlConnectionMessageSender constructor.
          ........
            r1243025 | davsclaus | 2012-02-11 05:49:02 -0500 (Sat, 11 Feb 2012) | 1 line
            
            Added missing test
          ........
            r1243215 | bvahdat | 2012-02-12 04:26:20 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished.
          ........
            r1243256 | davsclaus | 2012-02-12 09:09:40 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished
          ........
            r1243305 | bvahdat | 2012-02-12 14:47:06 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished and fixed one CS error.
          ........
            r1243315 | bvahdat | 2012-02-12 15:23:28 -0500 (Sun, 12 Feb 2012) | 1 line
            
            Polished and more assertion on the expected.
          ........
        ................
          r1307866 | hadrian | 2012-03-31 14:07:33 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1243997 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1243997 | bvahdat | 2012-02-14 10:33:18 -0500 (Tue, 14 Feb 2012) | 1 line
            
            Corrected typos inside the comment.
          ........
        ................
          r1307898 | hadrian | 2012-03-31 16:49:18 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1244432 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244432 | bvahdat | 2012-02-15 05:45:16 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Corrected typo inside javadoc.
          ........
        ................
          r1307899 | hadrian | 2012-03-31 16:52:30 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1244758 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244758 | bvahdat | 2012-02-15 17:14:48 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Removed the obsolete "implements Block" by FinallyDefinition as it's already done by ProcessorDefinition.
          ........
        ................
          r1307901 | hadrian | 2012-03-31 16:58:53 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1291121 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1291121 | ningjiang | 2012-02-19 21:49:05 -0500 (Sun, 19 Feb 2012) | 1 line
            
            CAMEL-5016 Updated the API call of ServletContextHandler.addFilter
          ........
        ................
          r1307902 | hadrian | 2012-03-31 17:00:41 -0400 (Sat, 31 Mar 2012) | 13 lines
          
          Recorded merge of revisions 1244274-1244431,1244433-1244517,1244519-1244590,1244592-1244643,1244645-1244701 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1244274 | hadrian | 2012-02-14 18:36:03 -0500 (Tue, 14 Feb 2012) | 1 line
            
            CAMEL-5006. Patch applied with thanks to Pat Fox
          ........
            r1244701 | bvahdat | 2012-02-15 15:46:12 -0500 (Wed, 15 Feb 2012) | 1 line
            
            CAMEL-5006: Fixed CS error.
          ........
        ................
          r1307904 | hadrian | 2012-03-31 17:01:49 -0400 (Sat, 31 Mar 2012) | 84 lines
          
          Blocked revisions 1244591,1244769,1244774-1244775,1244869,1244873,1244980,1245053,1245084,1245089,1245288,1245318,1245320,1245333,1245653,1245658,1245677,1290995,1291249 via svnmerge
          
          ........
            r1244591 | hadrian | 2012-02-15 11:57:59 -0500 (Wed, 15 Feb 2012) | 1 line
            
            CAMEL-4796. One more fix for raw types related to outputs in the model
          ........
            r1244769 | bvahdat | 2012-02-15 17:33:13 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Resolved the rest of all remaining compiler warnings concerning the rawtype referenced generic types. As the side effect removed a bunch of SuppressWarnings usages as well.
          ........
            r1244774 | bvahdat | 2012-02-15 17:44:39 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Removed some obsolete casts.
          ........
            r1244775 | bvahdat | 2012-02-15 17:52:49 -0500 (Wed, 15 Feb 2012) | 1 line
            
            Avoid references of the type ConcurrentHashMap and better stick to their implemented ConcurrentMap interface.
          ........
            r1244869 | ningjiang | 2012-02-16 02:36:39 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Fixed the CS error of camel-crypto
          ........
            r1244873 | davsclaus | 2012-02-16 02:42:06 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1244980 | davsclaus | 2012-02-16 09:09:55 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-4878: New camel-mongodb component. Thanks to Raul for the patch.
          ........
            r1245053 | davsclaus | 2012-02-16 10:57:06 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5011: deprecated LazyLoadingTypeConverter
          ........
            r1245084 | davsclaus | 2012-02-16 12:06:47 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5011: Do not use lazy load type converter.
          ........
            r1245089 | davsclaus | 2012-02-16 12:18:43 -0500 (Thu, 16 Feb 2012) | 1 line
            
            CAMEL-5012: Camel is now less verbose when starting and shutting down.
          ........
            r1245288 | ningjiang | 2012-02-16 20:56:13 -0500 (Thu, 16 Feb 2012) | 1 line
            
            Added a cxf producer connect refuse test which is based on the mailing list
          ........
            r1245318 | davsclaus | 2012-02-17 00:02:22 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Fixed last commit
          ........
            r1245320 | davsclaus | 2012-02-17 00:31:33 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Fixed last commit
          ........
            r1245333 | cmueller | 2012-02-17 02:26:58 -0500 (Fri, 17 Feb 2012) | 1 line
            
            CAMEL-5013: Upgrade org.jboss.netty/netty/3.2.6.Final_1 -> io.netty/netty/3.3.1.Final
          ........
            r1245653 | cmoulliard | 2012-02-17 11:56:50 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Add CdiCamelContext class which allows to produce using @Named("simpleContext") a DefaultCamelContext using CDI
          ........
            r1245658 | cmoulliard | 2012-02-17 12:15:46 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Simplify code
          ........
            r1245677 | cmoulliard | 2012-02-17 12:33:47 -0500 (Fri, 17 Feb 2012) | 1 line
            
            Simplify code
          ........
            r1290995 | cmueller | 2012-02-19 08:03:30 -0500 (Sun, 19 Feb 2012) | 1 line
            
            improved the ZipDataFormatTest
          ........
            r1291249 | bvahdat | 2012-02-20 08:27:25 -0500 (Mon, 20 Feb 2012) | 6 lines
            
            Polished:
            - usage of @SuppressWarnings where applicable.
            - remove unused imports.
            - remove unused variables.
            - avoid deprecated API usage.
          ........
        ................
          r1307907 | hadrian | 2012-03-31 17:24:05 -0400 (Sat, 31 Mar 2012) | 76 lines
          
          Blocked revisions 1291263,1291483,1291618,1291623,1291945,1292120,1292137-1292138,1292147,1292164,1292168,1292195,1292220,1292266,1292299,1292634,1292676,1292689 via svnmerge
          
          ........
            r1291263 | ningjiang | 2012-02-20 09:02:01 -0500 (Mon, 20 Feb 2012) | 1 line
            
            CAMEL-5017 Added a GroupStrategy API to the camel-stream component
          ........
            r1291483 | cmueller | 2012-02-20 17:09:37 -0500 (Mon, 20 Feb 2012) | 1 line
            
            upgrade saxon-bundle-version from SNAPSHOT to a released version
          ........
            r1291618 | cmueller | 2012-02-21 02:02:55 -0500 (Tue, 21 Feb 2012) | 1 line
            
            update twitter4j bundle version from SNAPSHOT to a released version
          ........
            r1291623 | ningjiang | 2012-02-21 02:22:42 -0500 (Tue, 21 Feb 2012) | 1 line
            
            Updated the version of twitter4j-bundle to fix the twitter4j bundle package import issue.
          ........
            r1291945 | bvahdat | 2012-02-21 13:09:37 -0500 (Tue, 21 Feb 2012) | 1 line
            
            CAMEL-5026: Upgrade to Hazelcast 1.9.4.8 and cleanup the camel-hazelcast's own unit-tests.
          ........
            r1292120 | ningjiang | 2012-02-21 23:09:41 -0500 (Tue, 21 Feb 2012) | 1 line
            
            CAMEL-4993 Add session information from cometd to camel message headers
          ........
            r1292137 | davsclaus | 2012-02-22 01:37:11 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4878: Applied mongodb adjustment patch. Thanks to Raul for the patch.
          ........
            r1292138 | davsclaus | 2012-02-22 01:48:57 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4878: Added camel-mongodb to the kit
          ........
            r1292147 | davsclaus | 2012-02-22 02:06:57 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5015: Added support for keyed data queues to camel-jt400. Thanks to Jeff Costello for the patch.
          ........
            r1292164 | ningjiang | 2012-02-22 02:49:40 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5018 support the set the default value on the field of bindy CVS
          ........
            r1292168 | ningjiang | 2012-02-22 02:52:47 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4993 Added the test file which I just forgot to add
          ........
            r1292195 | davsclaus | 2012-02-22 03:52:53 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4964: Added beanio osgi test
          ........
            r1292220 | davsclaus | 2012-02-22 05:02:17 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-4964: Upgraded to beanio 1.2.3. Need to still wrap osgi as the manifest.mf is flawed.
          ........
            r1292266 | bvahdat | 2012-02-22 07:56:24 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5026: Instruct maven-surefire-plugin to fork JVM for each test.
          ........
            r1292299 | davsclaus | 2012-02-22 09:15:08 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5029: Allow customizing list of bundles for camel-test-blueprint. Thanks to Lukasz for the patch.
          ........
            r1292634 | ningjiang | 2012-02-22 22:36:33 -0500 (Wed, 22 Feb 2012) | 1 line
            
            CAMEL-5028 removed the route count assertion from the CamelSprintTestSupport
          ........
            r1292676 | davsclaus | 2012-02-23 02:15:34 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5019: Added camel-mongodb to features
          ........
            r1292689 | davsclaus | 2012-02-23 03:03:35 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5032: Java DSL configuring context scoped errorHandler should be void method to avoid people using it as fluent builders.
          ........
        ................
          r1307908 | hadrian | 2012-03-31 17:24:52 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1292713 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1292713 | davsclaus | 2012-02-23 03:53:03 -0500 (Thu, 23 Feb 2012) | 1 line
            
            Upgraded to jruby 1.6.7
          ........
        ................
          r1307968 | hadrian | 2012-03-31 20:54:53 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1292947 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1292947 | hadrian | 2012-02-23 15:48:47 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5020. Add support for the scp protocol
          ........
        ................
          r1307994 | hadrian | 2012-03-31 21:53:25 -0400 (Sat, 31 Mar 2012) | 1 line
          
          Better ask for a mandatory conversion as otherwise a potentially failed conversion will not be detected.
        ................
          r1307995 | hadrian | 2012-03-31 22:05:39 -0400 (Sat, 31 Mar 2012) | 17 lines
          
          Recorded merge of revisions 1291256-1291262,1291264-1291482,1291484-1291554,1291556-1291617,1291619-1291622,1291624-1291726,1291728-1291847,1291849-1291863,1291865-1291944,1291946-1292113,1292115-1292119,1292121-1292136,1292139-1292146,1292148-1292163,1292165-1292167,1292169-1292194,1292196-1292219,1292221-1292265,1292267-1292298,1292300-1292383,1292385-1292633,1292635-1292675,1292677-1292688,1292690-1292712,1292714-1292724,1292726-1292759,1292761-1292766,1292768-1292835,1292837-1292946,1292948-1292996,1292998-1293004,1293006-1293021,1293023-1293026,1293028-1293078,1293080-1293267,1293269-1293287,1293289-1293329,1293331-1293574,1293577,1293579-1293589,1293591,1293593-1293720,1293722-1293827,1293829-1293832,1293834-1293851,1293853-1293854,1293856-1294129,1294131-1294198 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1291256 | bvahdat | 2012-02-20 08:48:34 -0500 (Mon, 20 Feb 2012) | 1 line
            
            Better ask for a mandatory conversion as otherwise a potentially failed conversion will not be detected.
          ........
            r1293083 | ningjiang | 2012-02-24 00:13:25 -0500 (Fri, 24 Feb 2012) | 1 line
            
            CAMEL-5035 Removed the System.out.println
          ........
            r1294198 | davsclaus | 2012-02-27 11:13:16 -0500 (Mon, 27 Feb 2012) | 1 line
            
            CAMEL-5042: Shutting down a thread pool will remove it from JMX if it was managed.
          ........
        ................
          r1307996 | hadrian | 2012-03-31 22:06:30 -0400 (Sat, 31 Mar 2012) | 48 lines
          
          Blocked revisions 1292836,1292997,1293005,1293022,1293027,1293575-1293576,1293578,1293592,1293721,1293833 via svnmerge
          
          ........
            r1292836 | davsclaus | 2012-02-23 11:02:03 -0500 (Thu, 23 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1292997 | cmueller | 2012-02-23 17:31:54 -0500 (Thu, 23 Feb 2012) | 1 line
            
            CAMEL-5034: Upgrade org.apache.openjpa/openjpa-persistence-jdbc/2.1.1 -> org.apache.openjpa/openjpa-persistence-jdbc/2.2.0
          ........
            r1293005 | cmueller | 2012-02-23 17:53:06 -0500 (Thu, 23 Feb 2012) | 1 line
            
            added test for user forum issue
          ........
            r1293022 | cmueller | 2012-02-23 18:14:30 -0500 (Thu, 23 Feb 2012) | 1 line
            
            add unit test for an user forum issue
          ........
            r1293027 | cmueller | 2012-02-23 18:20:36 -0500 (Thu, 23 Feb 2012) | 1 line
            
            add unit test for an user forum issue
          ........
            r1293575 | bvahdat | 2012-02-25 06:19:46 -0500 (Sat, 25 Feb 2012) | 1 line
            
            CAMEL-4998: Comment added.
          ........
            r1293576 | bvahdat | 2012-02-25 06:21:17 -0500 (Sat, 25 Feb 2012) | 1 line
            
            CAMEL-4998: Comment added.
          ........
            r1293578 | davsclaus | 2012-02-25 06:34:22 -0500 (Sat, 25 Feb 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1293592 | bvahdat | 2012-02-25 07:37:35 -0500 (Sat, 25 Feb 2012) | 1 line
            
            Polished and fixed a bunch of CS errors.
          ........
            r1293721 | cmueller | 2012-02-25 18:12:45 -0500 (Sat, 25 Feb 2012) | 1 line
            
            fixed a broken unit test in org.apache.camel.builder.xml.ExtractXPathWithNamespaceTest
          ........
            r1293833 | cmueller | 2012-02-26 08:34:27 -0500 (Sun, 26 Feb 2012) | 1 line
            
            CAMEL-5044: Use the openjpa-maven-plugin instead of maven-antrun-plugin to enhance the JPA entities for OpenJPA
          ........
        ................
          r1307998 | hadrian | 2012-03-31 22:30:00 -0400 (Sat, 31 Mar 2012) | 1 line
          
          CAMEL-5020. Support for recursive copy
        ................
          r1307999 | hadrian | 2012-03-31 22:32:27 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1294481 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294481 | hadrian | 2012-02-28 01:34:42 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Checkstyle fix
          ........
        ................
          r1308000 | hadrian | 2012-03-31 22:34:25 -0400 (Sat, 31 Mar 2012) | 9 lines
          
          Merged revisions 1294572 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294572 | bvahdat | 2012-02-28 05:54:02 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Corrected the URL typo inside Javadoc.
          ........
        ................
          r1308003 | hadrian | 2012-03-31 22:46:54 -0400 (Sat, 31 Mar 2012) | 17 lines
          
          Recorded merge of revisions 1294451-1294480,1294483-1294501,1294503-1294532,1294534-1294554,1294556-1294571,1294573-1294587,1294589-1294620 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1294451 | hadrian | 2012-02-27 22:18:33 -0500 (Mon, 27 Feb 2012) | 1 line
            
            CAMEL-5020. Support for recursive copy
          ........
            r1294468 | hadrian | 2012-02-28 00:48:53 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5030. Support for smpp tunnelling through http proxy
          ........
            r1294620 | davsclaus | 2012-02-28 07:28:40 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5042: Fixed test
          ........
        ................
          r1308004 | hadrian | 2012-03-31 22:48:40 -0400 (Sat, 31 Mar 2012) | 166 lines
          
          Blocked revisions 1294555,1294636,1294693,1294707,1294712,1294893,1295096,1295387,1295573,1295579,1295633,1295642,1295644,1295679,1295748,1295925,1295928,1295962,1295991,1296196,1296215,1296314,1296457,1296766,1296769,1296778-1296779,1296781,1296785,1296787,1296789,1296791,1296793,1296795,1296803-1296804,1296872,1296954,1296957,1296974 via svnmerge
          
          ........
            r1294555 | davsclaus | 2012-02-28 05:31:27 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-4923: Applied the code cleanup patch from Bilgin.
          ........
            r1294636 | davsclaus | 2012-02-28 08:28:13 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Polished javadoc
          ........
            r1294693 | akarpe | 2012-02-28 10:33:10 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Fixed CAMEL-5039 Make WeightedRandomLoadBalancer really random. Many Thanks to Xavier Fournet for the bug identification, submission of this patch and well documented test cases.
          ........
            r1294707 | hadrian | 2012-02-28 10:59:51 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Checkstyle fix
          ........
            r1294712 | akarpe | 2012-02-28 11:07:22 -0500 (Tue, 28 Feb 2012) | 1 line
            
            Fixed CAMEL-4866 Upgrade Commons Net to version 3.0.1.
          ........
            r1294893 | cmueller | 2012-02-28 18:31:58 -0500 (Tue, 28 Feb 2012) | 1 line
            
            CAMEL-5052: DefaultUnitOfWork should copy headers from the original message if it's a JmsMessage
          ........
            r1295096 | davsclaus | 2012-02-29 08:31:26 -0500 (Wed, 29 Feb 2012) | 1 line
            
            CAMEL-4866: Fixed upgrade of camel-ftp for osgi.
          ........
            r1295387 | ningjiang | 2012-02-29 21:45:35 -0500 (Wed, 29 Feb 2012) | 1 line
            
            Add a message header test on the CxfProducer
          ........
            r1295573 | bvahdat | 2012-03-01 09:12:22 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fixed the false positive behaving JmsHeaderFilteringTest.
          ........
            r1295579 | davsclaus | 2012-03-01 09:20:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            CAMEL-5056: @deprecated not used fluent builders on bean def. Allow to set bean type by class.
          ........
            r1295633 | dvaleri | 2012-03-01 10:50:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-5037] Added support for JSSE Confoguration Utility to Mina 2 component.
          ........
            r1295642 | dvaleri | 2012-03-01 10:59:55 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Integrate Spring Test with Camel test support for TestNG.
          ........
            r1295644 | bvahdat | 2012-03-01 11:01:56 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fixed the failed test on the CI-Server.
          ........
            r1295679 | dvaleri | 2012-03-01 12:10:58 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4840] Deprecated JUnit 3.x based test support classes.
          ........
            r1295748 | dvaleri | 2012-03-01 14:07:13 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Updated test for use as a documentation example.
          ........
            r1295925 | hadrian | 2012-03-01 16:55:39 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Checkstyle - order of imports
          ........
            r1295928 | hadrian | 2012-03-01 16:57:19 -0500 (Thu, 01 Mar 2012) | 1 line
            
            Fix feature validation. Remove dependency on snapshot
          ........
            r1295962 | dvaleri | 2012-03-01 17:52:57 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support.
          ........
            r1295991 | dvaleri | 2012-03-01 18:35:34 -0500 (Thu, 01 Mar 2012) | 1 line
            
            [CAMEL-4081] Updated AHC to 1.7.1 and removed workaround.
          ........
            r1296196 | davsclaus | 2012-03-02 08:26:05 -0500 (Fri, 02 Mar 2012) | 1 line
            
            CAMEL-5041: Fixed so route scoped error handlers is removed from JMX when removing a route, to not leak memory.
          ........
            r1296215 | jstrachan | 2012-03-02 09:10:03 -0500 (Fri, 02 Mar 2012) | 1 line
            
            added a first spike of a stub component for CAMEL-5057
          ........
            r1296314 | davsclaus | 2012-03-02 12:17:26 -0500 (Fri, 02 Mar 2012) | 1 line
            
            CAMEL-5057: Fixed CS
          ........
            r1296457 | bvahdat | 2012-03-02 16:00:22 -0500 (Fri, 02 Mar 2012) | 1 line
            
            Implement Message.copyFrom() solely at one class level.
          ........
            r1296766 | davsclaus | 2012-03-04 02:59:13 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Polished
          ........
            r1296769 | davsclaus | 2012-03-04 03:48:25 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5059: Added mockEndpointsAndSkip to advice with and test kit.
          ........
            r1296778 | davsclaus | 2012-03-04 05:43:45 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4602: GenericFileFilter now supports directories. Thanks to Michael for partly patch.
          ........
            r1296779 | davsclaus | 2012-03-04 05:51:25 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Thanks to Lukasz for the patch.
          ........
            r1296781 | cmueller | 2012-03-04 06:31:13 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout
          ........
            r1296785 | davsclaus | 2012-03-04 07:27:53 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Adjusted tests.
          ........
            r1296787 | bvahdat | 2012-03-04 07:39:03 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4797: DataFormat.unmarshal() should allow to return Message or Exchange to make it more flexible.
          ........
            r1296789 | davsclaus | 2012-03-04 07:48:32 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-5047: MDC logging keys has been prefixed with camel. Adjusted tests.
          ........
            r1296791 | cmueller | 2012-03-04 07:51:11 -0500 (Sun, 04 Mar 2012) | 3 lines
            
            Revert "Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout"
            
            This reverts commit fa9f6422e95638148d32cdee9c5ab2b6f2d18342.
          ........
            r1296793 | cmueller | 2012-03-04 07:53:30 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Improved the unit tests to check that countDownLatch.await(timeout, timeUnit) returns true which means it was NOT triggered by the timeout
          ........
            r1296795 | davsclaus | 2012-03-04 07:58:56 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4967: Upgraded to jasypt 1.9.
          ........
            r1296803 | bvahdat | 2012-03-04 08:18:50 -0500 (Sun, 04 Mar 2012) | 1 line
            
            CAMEL-4797: Cleanup of UnmarshalProcessorTest.
          ........
            r1296804 | bvahdat | 2012-03-04 08:23:57 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Fixed CS.
          ........
            r1296872 | bvahdat | 2012-03-04 15:19:16 -0500 (Sun, 04 Mar 2012) | 1 line
            
            Fixed the failed MyBatisBatchConsumerTest on the CI-Server.
          ........
            r1296954 | bvahdat | 2012-03-05 03:04:35 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4797: Relaxed the restriction about DataFormat not being allowed to return null, as an example SoapJaxbDataFormat does that.
          ........
            r1296957 | bvahdat | 2012-03-05 03:28:28 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4797: Added one more assert to UnmarshalProcessorTest.
          ........
            r1296974 | davsclaus | 2012-03-05 04:23:11 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4680: Check for clash with multiple consumers when starting a new route manually using startRoute
          ........
        ................
          r1308442 | hadrian | 2012-04-02 13:57:30 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1298172 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298172 | davsclaus | 2012-03-07 17:30:44 -0500 (Wed, 07 Mar 2012) | 1 line
            
            CAMEL-4230: Improved exception message if illegal access invoking a bean. Thanks to Michael Warecki for the patch.
          ........
        ................
          r1308447 | hadrian | 2012-04-02 14:00:44 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1298422 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298422 | davsclaus | 2012-03-08 09:59:23 -0500 (Thu, 08 Mar 2012) | 1 line
            
            Fixed test
          ........
        ................
          r1308452 | hadrian | 2012-04-02 14:41:52 -0400 (Mon, 02 Apr 2012) | 29 lines
          
          Recorded merge of revisions 1298337-1298421,1298423-1298446,1298448-1298550,1298552-1298779,1298781-1298784,1298786-1298794,1298796-1298820,1298822-1298992,1298994-1299161,1299163-1299190,1299192-1299194,1299196-1299382,1299384-1299398,1299400-1299445,1299447-1299450,1299452-1299605,1299607-1299972,1299974-1299988,1299990-1299991,1299993-1300060,1300062-1300084,1300086-1300217,1300219-1300378,1300380-1300478,1300480-1300689 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1298337 | bvahdat | 2012-03-08 05:11:06 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5058: Polished the provided unit-test.
          ........
            r1298341 | bvahdat | 2012-03-08 05:24:51 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5058: Usage of the "final" keyword by the provided unit-test to mark TypicalConsumer as immutable.
          ........
            r1298525 | boday | 2012-03-08 14:23:31 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5071 added SolrJ DirectXMLRequest support via the Exchange Body
          ........
            r1298660 | boday | 2012-03-08 19:05:28 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5071 tweaked the solr message type detection logic to be more efficient
          ........
            r1300359 | cmueller | 2012-03-13 17:27:41 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5081: org.apache.camel.component.mybatis.MyBatisBatchConsumerTest.testBatchConsumer() fails unpredictable
          ........
            r1300689 | cmueller | 2012-03-14 15:01:48 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5083: org.apache.camel.component.ibatis.IBatisBatchConsumerTest.testBatchConsumer() fails unpredictable
          ........
        ................
          r1308455 | hadrian | 2012-04-02 14:47:15 -0400 (Mon, 02 Apr 2012) | 164 lines
          
          Blocked revisions 1297056,1297097,1297103,1297126,1297170,1297173,1297180,1297313,1297410,1297426,1298551,1298780,1299162,1299191,1299195,1299606,1299973,1299989,1299992,1300061,1300085,1300218,1300479,1300804,1300914,1300971,1300974,1301115,1301316,1301721,1301791,1301900,1301907,1301910-1301911,1301940,1301942,1301951,1302084,1302093 via svnmerge
          
          ........
            r1297056 | davsclaus | 2012-03-05 08:53:37 -0500 (Mon, 05 Mar 2012) | 1 line
            
            Cleanup and avoid dependency on too many 3rd party maven repos.
          ........
            r1297097 | dvaleri | 2012-03-05 10:49:58 -0500 (Mon, 05 Mar 2012) | 1 line
            
            [CAMEL-4665] Added support for JSSE Configuration Utility to Camel Mail component.
          ........
            r1297103 | davsclaus | 2012-03-05 10:56:38 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-4498: Use AHC client for websocket unit tests.
          ........
            r1297126 | davsclaus | 2012-03-05 11:50:42 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5061: Polished camel-websocket
          ........
            r1297170 | bvahdat | 2012-03-05 13:53:28 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5062: Refer the Java Collection API classes by their interfaces and not through a specific given implementation. Also cleaned up some unused imports.
          ........
            r1297173 | bvahdat | 2012-03-05 14:01:47 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-5062: Refer the Java Collection API classes by their interfaces and not through a specific given implementation.
          ........
            r1297180 | bvahdat | 2012-03-05 14:10:27 -0500 (Mon, 05 Mar 2012) | 1 line
            
            Removed the obsolete @SuppressWarnings("deprecation") usage as the class is already deprecated (as a whole) by itself.
          ........
            r1297313 | bibryam | 2012-03-05 20:10:05 -0500 (Mon, 05 Mar 2012) | 1 line
            
            CAMEL-3551: Added new camel-fop component.
          ........
            r1297410 | davsclaus | 2012-03-06 05:30:05 -0500 (Tue, 06 Mar 2012) | 1 line
            
            CAMEL-3551: fixed pom.xml and added camel-fop to release kit.
          ........
            r1297426 | davsclaus | 2012-03-06 06:17:42 -0500 (Tue, 06 Mar 2012) | 1 line
            
            CAMEL-3551: Polished
          ........
            r1298551 | davsclaus | 2012-03-08 15:04:45 -0500 (Thu, 08 Mar 2012) | 1 line
            
            CAMEL-5059: Added unit test
          ........
            r1298780 | bvahdat | 2012-03-09 05:17:47 -0500 (Fri, 09 Mar 2012) | 1 line
            
            CAMEL-5068: Allow to configure cache option on propertiesPlaceholder in XML DSL.
          ........
            r1299162 | davsclaus | 2012-03-10 03:39:19 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-5073: Added camel-jt400 to features.
          ........
            r1299191 | davsclaus | 2012-03-10 07:59:16 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-4770: Added asyncStartListener option to JMS. To start jms consumer async. Thanks to Michael Warecki for partly patch.
          ........
            r1299195 | davsclaus | 2012-03-10 08:08:32 -0500 (Sat, 10 Mar 2012) | 1 line
            
            CAMEL-5074: Improved javadoc
          ........
            r1299606 | davsclaus | 2012-03-12 06:07:35 -0400 (Mon, 12 Mar 2012) | 1 line
            
            CAMEL-4300: You can now configure a default key/operation in cache endpoints. Thanks to Piotr Klimczak for the patch.
          ........
            r1299973 | davsclaus | 2012-03-13 00:58:19 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5077: Upgrade to hazelcast 2.0.1
          ........
            r1299989 | cmueller | 2012-03-13 03:19:19 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment - removed test which fail because Oracle changed the implementation of sun.beans.editors.IntEditor which calls Integer.valueOf() to sun.beans.editors.IntegerEditor which calls Integer.decode()
          ........
            r1299992 | cmueller | 2012-03-13 03:37:41 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment - updated a test which fail in Java 7 because of an issue in OpenJDK
          ........
            r1300061 | davsclaus | 2012-03-13 06:39:04 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5078: A number of dependency upgrades.
          ........
            r1300085 | davsclaus | 2012-03-13 07:52:45 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5078: A number of dependency upgrades. Lets keep the sfl4j-api as 1.6.1 as it has been all the time.
          ........
            r1300218 | davsclaus | 2012-03-13 12:20:43 -0400 (Tue, 13 Mar 2012) | 1 line
            
            CAMEL-5079: EIPs using thread pools will now eager shutdown thread pools if thread pool was created only for the EIP. This avoids leaks when adding and removing a lot of routes etc.
          ........
            r1300479 | davsclaus | 2012-03-14 04:15:18 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5079: EIPs using thread pools will now eager shutdown thread pools if thread pool was created only for the EIP. This avoids leaks when adding and removing a lot of routes etc.
          ........
            r1300804 | ningjiang | 2012-03-14 22:08:03 -0400 (Wed, 14 Mar 2012) | 1 line
            
            CAMEL-5082 enhanments on the camel-printer
          ........
            r1300914 | bvahdat | 2012-03-15 07:15:06 -0400 (Thu, 15 Mar 2012) | 1 line
            
            Fixed the failed build because of camel-msv dependencies while using Maven 3.0.4.
          ........
            r1300971 | bvahdat | 2012-03-15 09:24:22 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5078: Fixed the Apache Lucene deprecated API usage after upgrade to the version 3.5.0.
          ........
            r1300974 | bvahdat | 2012-03-15 09:34:29 -0400 (Thu, 15 Mar 2012) | 1 line
            
            Polished.
          ........
            r1301115 | davsclaus | 2012-03-15 13:40:18 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5090: WireTap now runs in UoW and error handling when tapping to destination.
          ........
            r1301316 | hadrian | 2012-03-15 22:48:18 -0400 (Thu, 15 Mar 2012) | 1 line
            
            CAMEL-5097. Fix feature definition for camel-fop
          ........
            r1301721 | hadrian | 2012-03-16 15:53:39 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CS fixes
          ........
            r1301791 | bvahdat | 2012-03-16 18:10:55 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CAMEL-1812: Removed the remaining @author tags.
          ........
            r1301900 | davsclaus | 2012-03-17 05:21:23 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded hawtbuf to 1.9
          ........
            r1301907 | davsclaus | 2012-03-17 06:13:46 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded to MyBatis 3.1.0
          ........
            r1301910 | davsclaus | 2012-03-17 06:29:25 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Upgraded to commons-pool 1.6
          ........
            r1301911 | davsclaus | 2012-03-17 06:35:07 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Enabled camel-apns feature
          ........
            r1301940 | davsclaus | 2012-03-17 10:05:55 -0400 (Sat, 17 Mar 2012) | 1 line
            
            CAMEL-5061: Polish camel-websocket. Remove incomplete code. Clean resources when stopping.
          ........
            r1301942 | davsclaus | 2012-03-17 10:29:50 -0400 (Sat, 17 Mar 2012) | 1 line
            
            CAMEL-5061: Added example for documentation
          ........
            r1301951 | davsclaus | 2012-03-17 11:30:52 -0400 (Sat, 17 Mar 2012) | 1 line
            
            Added twitter and websocket example
          ........
            r1302084 | davsclaus | 2012-03-18 03:50:05 -0400 (Sun, 18 Mar 2012) | 1 line
            
            Upgraded to Jersey 1.12
          ........
            r1302093 | davsclaus | 2012-03-18 04:30:31 -0400 (Sun, 18 Mar 2012) | 1 line
            
            CAMEL-5091: Do not enlist producer cache in JMX for EIPs, its internal details only. And will just clutter up the JMX tree if having many routes.
          ........
        ................
          r1308469 | hadrian | 2012-04-02 15:09:54 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301352 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301352 | davsclaus | 2012-03-16 02:50:31 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Added a little debug logging to better know which scheduler is being in use by quartz component
          ........
        ................
          r1308472 | hadrian | 2012-04-02 15:12:30 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301375 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301375 | davsclaus | 2012-03-16 04:29:01 -0400 (Fri, 16 Mar 2012) | 1 line
            
            CAMEL-5099: Timer thread should use same thread name pattern as the others.
          ........
        ................
          r1308474 | hadrian | 2012-04-02 15:13:59 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1301644 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1301644 | davsclaus | 2012-03-16 12:49:12 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Polished
          ........
        ................
          r1308479 | hadrian | 2012-04-02 15:16:15 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1302094 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1302094 | davsclaus | 2012-03-18 04:34:18 -0400 (Sun, 18 Mar 2012) | 1 line
            
            CAMEL-5099: Timer thread should use same thread name pattern as the others.
          ........
        ................
          r1308515 | hadrian | 2012-04-02 16:00:34 -0400 (Mon, 02 Apr 2012) | 25 lines
          
          Recorded merge of revisions 1299446-1299605,1299607-1299972,1299974-1299988,1299990-1299991,1299993-1300060,1300062-1300084,1300086-1300217,1300219-1300358,1300360-1300478,1300480-1300688,1300690-1300719,1300721,1300723-1300803,1300806-1300825,1300827-1300830,1300832-1300913,1300915-1300958,1300960-1300970,1300972-1300973,1300975-1301114,1301116-1301315,1301317-1301351,1301353-1301363,1301365-1301374,1301377-1301393,1301395-1301570,1301572-1301630,1301632-1301643,1301645-1301655,1301657-1301677,1301679-1301720,1301722-1301790,1301792-1301899,1301901-1301906,1301908-1301909,1301912-1301939,1301941,1301943-1301950,1301952-1302005,1302007-1302083,1302085-1302092,1302095-1302107,1302109-1302110,1302112-1302328,1302330-1302352,1302354-1302356,1302358-1302392,1302394-1302479,1302481-1302483,1302485-1303300,1303302-1303352,1303354-1303556,1303559-1303564 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1299446 | cmueller | 2012-03-11 16:58:13 -0400 (Sun, 11 Mar 2012) | 1 line
            
            instruct hazelcast to use slf4j by running our unit tests
          ........
            r1299451 | cmueller | 2012-03-11 17:17:40 -0400 (Sun, 11 Mar 2012) | 1 line
            
            instruct hazelcast to use slf4j by running our unit tests
          ........
            r1300379 | cmueller | 2012-03-13 18:06:04 -0400 (Tue, 13 Mar 2012) | 1 line
            
            org.apache.camel.component.jetty.JettySimulateInOnlyTest.testSimulateInOnlyUsingWireTap() needs a few more time on our CI server
          ........
            r1303386 | hadrian | 2012-03-21 09:25:20 -0400 (Wed, 21 Mar 2012) | 1 line
            
            CAMEL-5098. Fix value of FAILURE_ENDPOINT header
          ........
            r1303564 | cmueller | 2012-03-21 16:43:13 -0400 (Wed, 21 Mar 2012) | 1 line
            
            CAMEL-4734: Consolidate the database vendors in our unit tests - work in progress
          ........
        ................
          r1308517 | hadrian | 2012-04-02 16:02:23 -0400 (Mon, 02 Apr 2012) | 152 lines
          
          Blocked revisions 1298785,1301364,1302108,1302329,1302353,1302357,1302480,1303353,1303558,1303707,1303941,1304076,1304300,1305013,1305036,1305042,1305069-1305070,1305121,1305332,1305365,1305425,1305505,1305773,1305785,1305792,1306439,1307578,1307636,1307788,1307815,1307824,1308116,1308165,1308211,1308217 via svnmerge
          
          ........
            r1298785 | davsclaus | 2012-03-09 05:44:48 -0500 (Fri, 09 Mar 2012) | 1 line
            
            Fixed test on slower boxes
          ........
            r1301364 | davsclaus | 2012-03-16 04:08:45 -0400 (Fri, 16 Mar 2012) | 1 line
            
            Fixed test
          ........
            r1302108 | davsclaus | 2012-03-18 06:17:02 -0400 (Sun, 18 Mar 2012) | 1 line
            
            Added snippet for documentation
          ........
            r1302329 | davsclaus | 2012-03-19 04:58:23 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Added README.txt to example.
          ........
            r1302353 | davsclaus | 2012-03-19 05:55:17 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Polished features. Enabled camel-dns, as people can use it on SUN JVMs, if they adjust their jre.properties
          ........
            r1302357 | davsclaus | 2012-03-19 06:04:51 -0400 (Mon, 19 Mar 2012) | 1 line
            
            Added details about camel-dns requires SUN JVM and what to do before using.
          ........
            r1302480 | hadrian | 2012-03-19 10:43:08 -0400 (Mon, 19 Mar 2012) | 1 line
            
            CS fix
          ........
            r1303353 | davsclaus | 2012-03-21 06:33:01 -0400 (Wed, 21 Mar 2012) | 1 line
            
            Added test based on user forum issue
          ........
            r1303558 | davsclaus | 2012-03-21 16:24:39 -0400 (Wed, 21 Mar 2012) | 1 line
            
            Added some osgi karaf test
          ........
            r1303707 | cmueller | 2012-03-22 06:03:28 -0400 (Thu, 22 Mar 2012) | 1 line
            
            CAMEL-4778: Upgrade Spring to 3.1.1.RELEASE - added a spring3.1 profile
          ........
            r1303941 | hadrian | 2012-03-22 14:08:04 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Update avro tests to use the junit4 based camel test support
          ........
            r1304076 | hadrian | 2012-03-22 17:25:58 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Remove unneeded (duplicate) tests. Minor fix for unused field.
          ........
            r1304300 | cmueller | 2012-03-23 08:12:58 -0400 (Fri, 23 Mar 2012) | 3 lines
            
            Revert "[CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support."
            
            [CAMEL-4987] Reverting changes which are impossible to use with Spring 3.0 and 3.1
          ........
            r1305013 | davsclaus | 2012-03-25 07:57:50 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5117: You can now configure twitter settings on twitter component level. Made the example run out of the box.
          ........
            r1305036 | davsclaus | 2012-03-25 09:51:07 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5117: Polished. Made it a bit easier with camel-twitter as you can configure sendToAll on endpoint.
          ........
            r1305042 | davsclaus | 2012-03-25 10:12:18 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-5003: Added support for generated keys in camel-jdbc. Thanks to Thomas Gueze for the patch.
          ........
            r1305069 | cmueller | 2012-03-25 12:14:46 -0400 (Sun, 25 Mar 2012) | 3 lines
            
            Revert "Revert "[CAMEL-4987] Minor documentation tweaks and fix of a false positive unit test in Spring Test support.""
            
            This reverts commit ad7e43430927bfa41f22405a10c6c8e647331897.
          ........
            r1305070 | cmueller | 2012-03-25 12:14:52 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-4778: Upgrade Spring to 3.1.1.RELEASE
          ........
            r1305121 | cmueller | 2012-03-25 16:40:40 -0400 (Sun, 25 Mar 2012) | 1 line
            
            CAMEL-4955: Camel should run in a Java 7 environment
          ........
            r1305332 | davsclaus | 2012-03-26 08:32:10 -0400 (Mon, 26 Mar 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1305365 | davsclaus | 2012-03-26 10:10:47 -0400 (Mon, 26 Mar 2012) | 1 line
            
            CAMEL-4160: Polished dataset component. Optimized to not need for copy exchange, which helps reduce memory usage.
          ........
            r1305425 | dvaleri | 2012-03-26 12:17:22 -0400 (Mon, 26 Mar 2012) | 1 line
            
            [CAMEL-4987] Implemented new methods for Spring 3.1.
          ........
            r1305505 | dkulp | 2012-03-26 15:27:00 -0400 (Mon, 26 Mar 2012) | 1 line
            
            Add a profile to help testing with CXF 2.6.x
          ........
            r1305773 | davsclaus | 2012-03-27 04:25:54 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5121: Added support class for lifecycle strategy.
          ........
            r1305785 | davsclaus | 2012-03-27 05:12:02 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5118: Upgraded to jclouds 1.4.0
          ........
            r1305792 | davsclaus | 2012-03-27 05:41:43 -0400 (Tue, 27 Mar 2012) | 1 line
            
            Polished
          ........
            r1306439 | davsclaus | 2012-03-28 11:44:48 -0400 (Wed, 28 Mar 2012) | 1 line
            
            Allow to load static resources from classpath with camel-websocket. Polished the twitter example.
          ........
            r1307578 | hadrian | 2012-03-30 15:23:02 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CS fixes
          ........
            r1307636 | hadrian | 2012-03-30 18:06:21 -0400 (Fri, 30 Mar 2012) | 1 line
            
            Remove warnings. Minor fixes
          ........
            r1307788 | davsclaus | 2012-03-31 08:23:22 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1307815 | davsclaus | 2012-03-31 10:32:43 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-5050: Added camel-leveldb component. Thanks to Jason Sherman for the patch.
          ........
            r1307824 | davsclaus | 2012-03-31 11:12:13 -0400 (Sat, 31 Mar 2012) | 1 line
            
            Fixed so features.xml can be validated.
          ........
            r1308116 | davsclaus | 2012-04-01 09:46:38 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-4160: Added retainFirst and retainLast option to mock component.
          ........
            r1308165 | cmueller | 2012-04-01 14:06:54 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-3776: Add pooling support for JAXB data format
          ........
            r1308211 | rickette | 2012-04-01 19:02:41 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5135: support for JSON views in Jackson and ExclusionStrategy's in GSON
          ........
            r1308217 | rickette | 2012-04-01 19:14:55 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5135: polishing
          ........
        ................
          r1308553 | hadrian | 2012-04-02 16:52:40 -0400 (Mon, 02 Apr 2012) | 48 lines
          
          Blocked revisions 1303903,1303952,1306028,1306598,1307756,1308070,1308518,1308524-1308525,1308528,1308532 via svnmerge
          
          ........
            r1303903 | hadrian | 2012-03-22 13:26:54 -0400 (Thu, 22 Mar 2012) | 1 line
            
            CAMEL-5111. Disable failing test and fixed timing issue in another
          ........
            r1303952 | hadrian | 2012-03-22 14:19:24 -0400 (Thu, 22 Mar 2012) | 1 line
            
            Update xmlsecurity tests to use the junit4 based camel test support. Fixed minor warnings.
          ........
            r1306028 | cmueller | 2012-03-27 18:20:02 -0400 (Tue, 27 Mar 2012) | 1 line
            
            CAMEL-5124: Use the forkedProcessTimeoutInSeconds option in maven-surefire-plugin to prevent hanging processes on Windows
          ........
            r1306598 | cmueller | 2012-03-28 17:25:35 -0400 (Wed, 28 Mar 2012) | 1 line
            
            increate the maven-surefire-plugin forkedProcessTimeoutInSeconds value
          ........
            r1307756 | davsclaus | 2012-03-31 06:20:57 -0400 (Sat, 31 Mar 2012) | 1 line
            
            CAMEL-5124: Increase timeout for unit tests so it can complete on avergage computers.
          ........
            r1308070 | cmueller | 2012-04-01 06:49:55 -0400 (Sun, 01 Apr 2012) | 1 line
            
            CAMEL-5124: Increase timeout for unit tests so it can complete on avergage computers.
          ........
            r1308518 | rickette | 2012-04-02 16:02:32 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: snippet tags for documentation
          ........
            r1308524 | cmueller | 2012-04-02 16:09:13 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-3776: Add pooling support for JAXB data format
          ........
            r1308525 | rickette | 2012-04-02 16:09:50 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: fix snippet tags for documentation
          ........
            r1308528 | rickette | 2012-04-02 16:13:59 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: fix snippet tags for documentation
          ........
            r1308532 | rickette | 2012-04-02 16:24:13 -0400 (Mon, 02 Apr 2012) | 1 line
            
            CAMEL-5135: extended snippet tags for documentation
          ........
        ................
          r1308554 | hadrian | 2012-04-02 16:54:10 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1306323 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1306323 | davsclaus | 2012-03-28 09:44:36 -0400 (Wed, 28 Mar 2012) | 1 line
            
            CAMEL-5128: Using custom NodeIdFactory is auto discovered with XML DSLs.
          ........
        ................
          r1308555 | hadrian | 2012-04-02 16:55:14 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1307702 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1307702 | hadrian | 2012-03-30 22:40:02 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CAMEL-5020. Add featurs for camel-jsch
          ........
        ................
          r1308556 | hadrian | 2012-04-02 16:56:09 -0400 (Mon, 02 Apr 2012) | 9 lines
          
          Merged revisions 1307712 via svnmerge from
          https://svn.apache.org/repos/asf/camel/trunk
          
          ........
            r1307712 | hadrian | 2012-03-30 23:44:17 -0400 (Fri, 30 Mar 2012) | 1 line
            
            CAMEL-5020. Add component to distro.
          ........
        ................
          r1308674 | hadrian | 2012-04-03 00:13:21 -0400 (Tue, 03 Apr 2012) | 1 line
          
          CS and minor fixes
        ................
          r1309738 | davsclaus | 2012-04-05 06:22:58 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5129: Fixed interceptFrom to support property placeholders.
        ................
          r1309781 | davsclaus | 2012-04-05 07:37:52 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5140: bean component - @Handler should take precedence in a bean that implements Predicate
        ................
          r1309820 | davsclaus | 2012-04-05 08:30:20 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5141: camel-jms - Allow to configure frequency of timeout checker when doing request/reply over JMS
        ................
          r1309948 | davsclaus | 2012-04-05 13:06:21 -0400 (Thu, 05 Apr 2012) | 1 line
          
          CAMEL-5137: Fixed timer component suspend/resume issue.
        ................
          r1309950 | dkulp | 2012-04-05 13:10:02 -0400 (Thu, 05 Apr 2012) | 2 lines
          
          Pull some stuff back from trunk to allow testing 2.9.x with CXF 2.6.0-SNAPSHOT
        ................
          r1310426 | davsclaus | 2012-04-06 12:00:09 -0400 (Fri, 06 Apr 2012) | 1 line
          
          CAMEL-5146: Marked method as @deprecated which is removed in Camel 2.10 onwards.
        ................
          r1310691 | davsclaus | 2012-04-07 03:58:18 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-5148: Aggregate EIP now supports TimeoutAwareAggregationStrategy.
        ................
          r1310700 | davsclaus | 2012-04-07 04:43:30 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-4693: Added support for httpContext option. Thanks to Jeff Segal for the patch.
        ................
          r1310711 | davsclaus | 2012-04-07 04:56:13 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-4693: Added support for httpContext option. Thanks to Jeff Segal for the patch.
        ................
          r1310727 | davsclaus | 2012-04-07 06:38:47 -0400 (Sat, 07 Apr 2012) | 1 line
          
          CAMEL-5149: The default injector should perform bean post processing to setup @Produce and the likes on the bean
        ................
          r1310991 | davsclaus | 2012-04-08 08:52:17 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-5150: Some cleanup in camel-netty according to Netty docs.
        ................
          r1310993 | davsclaus | 2012-04-08 08:54:55 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-4556: Netty producer now reuses connection.
        ................
          r1311002 | davsclaus | 2012-04-08 09:49:18 -0400 (Sun, 08 Apr 2012) | 1 line
          
          CAMEL-4960: Pipeline factories is now stateless and thread-safe.
        ................
          r1311157 | davsclaus | 2012-04-09 04:06:28 -0400 (Mon, 09 Apr 2012) | 1 line
          
          CAMEL-5149: The default injector should perform bean post processing to setup @Produce and the likes on the bean
        ................
          r1311584 | davsclaus | 2012-04-10 02:07:24 -0400 (Tue, 10 Apr 2012) | 1 line
          
          CAMEL-5154: Simple language - OGNL - Invoking explicit method with no parameters should not cause ambiguous exception for overloaded methods
        ................
          r1311791 | hadrian | 2012-04-10 11:29:19 -0400 (Tue, 10 Apr 2012) | 1 line
          
          CS fix
        ................
          r1324569 | davsclaus | 2012-04-11 01:49:51 -0400 (Wed, 11 Apr 2012) | 1 line
          
          CAMEL-5136: File component now explicit forces a flush when files have been written.
        ................

        Show more

          People

          • Assignee:
            Christian Müller
            Reporter:
            Claus Ibsen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development