On Wed, Jan 19, 2011 at 2:26 PM, Scott Came <[email protected]> wrote:
> OK I'm confused...  I have Fuse ESB 4.3.0-03-00 installed.  From the log 
> messages I included in my message yesterday, it looks like my install 
> includes Camel Fuse 2.4.0.fuse-02-00.  (Reference log message:  >>>> 
> 16:52:10,680 | INFO  | @qtp-727842206-0 | DefaultTypeConverter | 
> l.converter.DefaultTypeConverter  397 | 72 - org.apache.camel.camel-core - 
> 2.4.0.fuse-02-00 | Loaded 0 type  converters in 0.003 seconds.)
>
> Do I need Camel Fuse 2.4.0.fuse-03-00 to get the fix, and if so is that now 
> available in the Fuse ESB 4.3.0-03-00 download (I just installed ESB 
> 4.3.0-03-00 late last week)?
>
> If not, is there something else that's causing the type converters not to get 
> loaded?
>

Its this bug which was fixed dec-20-2010
http://fusesource.com/issues/browse/MR-392

And -03 hasn't been released yet.


> Thanks for all your help...
> --Scott
>
> -----Original Message-----
> From: Claus Ibsen [mailto:[email protected]]
> Sent: Wednesday, January 19, 2011 5:14 AM
> To: [email protected]
> Subject: Re: Large(ish) message issue (CXFBC and Camel)
>
> On Wed, Jan 19, 2011 at 1:59 PM, Scott Came <[email protected]> wrote:
>> Fuse ESB 4.3.0-03-00 is what I'm using...it contains Camel 2.4.  If I 
>> understand Claus correctly, I need Camel 2.6...
>>
>
> No the bug is fixed in FUSE Camel 2.4. (latest version of FUSE 2.4 version).
> At Apache the bug is only to be fixed in the upcoming Camel 2.6 release.
>
>
>> -----Original Message-----
>> From: Willem Jiang [mailto:[email protected]]
>> Sent: Wednesday, January 19, 2011 2:02 AM
>> To: [email protected]
>> Subject: Re: Large(ish) message issue (CXFBC and Camel)
>>
>> Why don't you just download the Fuse ESB 4.3.0-fuse-03-00?
>> You don't need to build the component yourself.
>>
>> On 1/19/11 10:34 AM, Scott Came wrote:
>>> I've actually succeeded in building the 2011.01-SNAPSHOT version of 
>>> servicemix-camel that's in SVN.   I have the component .jar and installer 
>>> .zip in my local maven repository now.
>>>
>>> Any reason why I shouldn't be able to install that in 
>>> servicemix-4.3.0-fuse-03-00?  Do I just drop the zip file in the deploy 
>>> directory?  Do I need to be worried about conflicts with the currently 
>>> installed version of Camel (i.e., should I uninstall)?
>>>
>>> Excuse the newbie questions...is there a way to deploy this snapshot via 
>>> the features mechanism?
>>>
>>> Anyway, if I can get this going I'd be happy to testdrive the 
>>> 2011.01-SNAPSHOT build of servicemix-camel...
>>>
>>> Thanks.
>>> --Scott
>>>
>>> -----Original Message-----
>>> From: Scott Came [mailto:[email protected]]
>>> Sent: Tuesday, January 18, 2011 12:33 PM
>>> To: [email protected]
>>> Subject: RE: Large(ish) message issue (CXFBC and Camel)
>>>
>>> Thanks, Claus.  Is there anything I can do in the meantime?  Is the fix in 
>>> a current Camel build?  If so, are there docs on how to update the Camel 
>>> components in SM?
>>>
>>> --Scott
>>>
>>> -----Original Message-----
>>> From: Claus Ibsen [mailto:[email protected]]
>>> Sent: Tuesday, January 18, 2011 7:56 AM
>>> To: [email protected]
>>> Subject: Re: Large(ish) message issue (CXFBC and Camel)
>>>
>>> On Tue, Jan 18, 2011 at 4:54 PM, Claus Ibsen<[email protected]>  wrote:
>>>> On Tue, Jan 18, 2011 at 4:18 PM, Scott Came<[email protected]>  wrote:
>>>>> Thanks, Claus.
>>>>>
>>>>> I grepped my logs for AnnotationTypeConverterLoader and see a line like 
>>>>> this:
>>>>>
>>>>> 16:52:10,678 | INFO  | @qtp-727842206-0 |
>>>>> AnnotationTypeConverterLoader    | er.AnnotationTypeConverterLoader
>>>>> 66 | 72 - org.apache.camel.camel-core - 2.4.0.fuse-02-00 | Found 3
>>>>> packages with 0 @Converter classes to load
>>>>>
>>>>> Grepped for DefaultTypeConverter and see this:
>>>>>
>>>>> 16:52:10,680 | INFO  | @qtp-727842206-0 | DefaultTypeConverter
>>>>> | l.converter.DefaultTypeConverter  397 | 72 -
>>>>> org.apache.camel.camel-core - 2.4.0.fuse-02-00 | Loaded 0 type
>>>>> converters in 0.003 seconds
>>>>>
>>>>> I'm guessing that's not good.  I am running the current release version 
>>>>> of FUSE ESB (apache-servicemix-4.3.0-fuse-03-00).  I'm not sure what 
>>>>> version of Camel is included, but I haven't done anything to update Camel 
>>>>> outside of the stock FUSE ESB distro.  It looks from the above log 
>>>>> message like it's Camel 2.4.0.fuse-02-00.
>>>>>
>>>>
>>>> Yeah it should be fixed in FUSE ESB 4.3.1 which includes Camel
>>>> 2.4.0-fuse-03-00 which has the fix.
>>>>
>>>
>>> Correction, that would be the next FUSE ESB 4.3.0 release.
>>>
>>> I think there is a ESB 4.3.1 planned later this month/next month which will 
>>> ship with Camel 2.6 (currently in progress).
>>>
>>>
>>>>  From Camel 2.6 onwards we actually now will throw an exception on
>>>> starting Camel if this situation happens again.
>>>> Then it should be much easier for end user to spot something is wrong.
>>>>
>>>>
>>>>
>>>>
>>>>> Thanks for your help.
>>>>> --Scott
>>>>>
>>>>> -----Original Message-----
>>>>> From: Claus Ibsen [mailto:[email protected]]
>>>>> Sent: Monday, January 17, 2011 10:05 PM
>>>>> To: [email protected]
>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel)
>>>>>
>>>>> What versions of the products are you using? SMX / Camel?
>>>>> And how do you startup the SMX container?
>>>>>
>>>>> I think there was a bug when using JBI with SMX 4.x that could lead to 
>>>>> Camel not being able to load type converters on startup (race condition 
>>>>> when using OSGi). This should be fixed in upcoming Apache SMX 4.3 release 
>>>>> and already in the latest FUSE ESB release.
>>>>>
>>>>> You should see something like this at INFO level logged by Camel on
>>>>> startup (requires Camel 2.3 or better)
>>>>>
>>>>> 2011-01-18 07:05:00,519 [main           ] INFO
>>>>> AnnotationTypeConverterLoader  - Found 3 packages with 19
>>>>> @Converter classes to load
>>>>> 2011-01-18 07:05:00,567 [main           ] INFO
>>>>> DefaultTypeConverter
>>>>>         - Loaded 150 type converters in 1.038 seconds
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Jan 18, 2011 at 5:42 AM, Scott Came<[email protected]>  wrote:
>>>>>> Hi Freeman, thanks for the suggestion.
>>>>>>
>>>>>> I tried that and am seeing the same results.  After consulting the Camel 
>>>>>> documentation about stream caching at 
>>>>>> http://camel.apache.org/stream-caching.html I tried various flavors of 
>>>>>> specifying it (e.g., specifying streamCache="true" on camelContext and 
>>>>>> streamCaching="true" and streamCache="true" on route)...none of those 
>>>>>> helped.
>>>>>>
>>>>>> I also tried removing the<to>  element for the log message, and that 
>>>>>> didn't help either.
>>>>>>
>>>>>> It's like in the case of both<to uri="log...">  and<to uri="file...">  
>>>>>> the stream from the jbi: endpoint is getting cut off after 1000-2000 
>>>>>> bytes.  Very strange.
>>>>>>
>>>>>> I set the log level to DEBUG, and I get a big nested stack trace at the 
>>>>>> expected place, with this as the last exception listed:
>>>>>>
>>>>>> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected end of
>>>>>> input block in start tag
>>>>>>      at [row,col {unknown-source}]: [51,20]
>>>>>>       at
>>>>>> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOB(StreamScanner.java:
>>>>>> 69
>>>>>> 6)
>>>>>>       at
>>>>>> com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.ja
>>>>>> v
>>>>>> a
>>>>>> :1
>>>>>> 062)
>>>>>>       at
>>>>>> com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.
>>>>>> j
>>>>>> av
>>>>>> a:807)
>>>>>>       at
>>>>>> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.
>>>>>> ja
>>>>>> va:2892)
>>>>>>       at
>>>>>> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:
>>>>>> 2783)
>>>>>>       at
>>>>>> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1048
>>>>>> )
>>>>>>       at
>>>>>> org.apache.servicemix.soap.util.stax.FragmentStreamReader.next(Fra
>>>>>> g
>>>>>> m
>>>>>> en
>>>>>> tStreamReader.java:68)
>>>>>>       at
>>>>>> org.apache.servicemix.cxfbc.interceptors.StaxJbiWrapper.next(StaxJ
>>>>>> b
>>>>>> i
>>>>>> Wr
>>>>>> apper.java:166)
>>>>>>       at
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource.parse(StaxSource.java:
>>>>>> 116)
>>>>>>       ... 54 more
>>>>>>
>>>>>> Incidentally, the first exception (top of the stack) is this:
>>>>>>
>>>>>> org.apache.camel.InvalidPayloadException: No body available of type:
>>>>>> java.lang.String but has value:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207 of type:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource on: Message:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207. Caused by:
>>>>>> No type converter available to convert from type:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource to the required type:
>>>>>> java.lang.String with value
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207.
>>>>>> Exchange[Message:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207]. Caused by:
>>>>>> [org.apache.camel.NoTypeConversionAvailableException - No type
>>>>>> converter available to convert from type:
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource to the required type:
>>>>>> java.lang.String with value
>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207]
>>>>>>       at
>>>>>> org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSuppo
>>>>>> r
>>>>>> t
>>>>>> .j
>>>>>> ava:103)
>>>>>>       at
>>>>>> org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBod
>>>>>> y
>>>>>> P
>>>>>> ro
>>>>>> cessor.java:57)
>>>>>>       at
>>>>>> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$Proces
>>>>>> s
>>>>>> o
>>>>>> rT
>>>>>> oAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(Dele
>>>>>> g
>>>>>> a
>>>>>> te
>>>>>> AsyncProcessor.java:98)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Delegate
>>>>>> A
>>>>>> s
>>>>>> yn
>>>>>> cProcessor.java:89)
>>>>>>       at
>>>>>> org.apache.camel.management.InstrumentationProcessor.process(Instr
>>>>>> u
>>>>>> m
>>>>>> en
>>>>>> tationProcessor.java:68)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(Dele
>>>>>> g
>>>>>> a
>>>>>> te
>>>>>> AsyncProcessor.java:98)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Delegate
>>>>>> A
>>>>>> s
>>>>>> yn
>>>>>> cProcessor.java:89)
>>>>>>       at
>>>>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(Tr
>>>>>> a
>>>>>> c
>>>>>> eI
>>>>>> nterceptor.java:99)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(Dele
>>>>>> g
>>>>>> a
>>>>>> te
>>>>>> AsyncProcessor.java:98)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Delegate
>>>>>> A
>>>>>> s
>>>>>> yn
>>>>>> cProcessor.java:89)
>>>>>>       at
>>>>>> org.apache.camel.management.InstrumentationProcessor.process(Instr
>>>>>> u
>>>>>> m
>>>>>> en
>>>>>> tationProcessor.java:68)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHand
>>>>>> l
>>>>>> e
>>>>>> r(
>>>>>> RedeliveryErrorHandler.java:290)
>>>>>>       at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(Redelive
>>>>>> r
>>>>>> y
>>>>>> Er
>>>>>> rorHandler.java:202)
>>>>>>       at
>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:
>>>>>> 256)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
>>>>>>       at
>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
>>>>>>       at
>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkP
>>>>>> r
>>>>>> o
>>>>>> ce
>>>>>> ssor.java:99)
>>>>>>       at
>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorH
>>>>>> e
>>>>>> l
>>>>>> pe
>>>>>> r.java:70)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(Dele
>>>>>> g
>>>>>> a
>>>>>> te
>>>>>> AsyncProcessor.java:98)
>>>>>>       at
>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Delegate
>>>>>> A
>>>>>> s
>>>>>> yn
>>>>>> cProcessor.java:89)
>>>>>>       at
>>>>>> org.apache.camel.management.InstrumentationProcessor.process(Instr
>>>>>> u
>>>>>> m
>>>>>> en
>>>>>> tationProcessor.java:68)
>>>>>>       at
>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint$1.call(CamelProv
>>>>>> i
>>>>>> d
>>>>>> er
>>>>>> Endpoint.java:109)
>>>>>>       at
>>>>>> org.apache.servicemix.camel.JbiBinding.runWithCamelContextClassLoa
>>>>>> d
>>>>>> e
>>>>>> r(
>>>>>> JbiBinding.java:116)
>>>>>>       at
>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint.handleActiveProv
>>>>>> i
>>>>>> d
>>>>>> er
>>>>>> Exchange(CamelProviderEndpoint.java:107)
>>>>>>       at
>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint.process(CamelPro
>>>>>> v
>>>>>> i
>>>>>> de
>>>>>> rEndpoint.java:85)
>>>>>>       at
>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBas
>>>>>> e
>>>>>> L
>>>>>> if
>>>>>> eCycle.java:651)
>>>>>>       at
>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(As
>>>>>> y
>>>>>> n
>>>>>> cB
>>>>>> aseLifeCycle.java:606)
>>>>>>       at
>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInT
>>>>>> x
>>>>>> (
>>>>>> As
>>>>>> yncBaseLifeCycle.java:501)
>>>>>>       at
>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLif
>>>>>> e
>>>>>> C
>>>>>> yc
>>>>>> le.java:370)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolE
>>>>>> x
>>>>>> e
>>>>>> cu
>>>>>> tor.java:886)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>>>>>> java:908)
>>>>>>       at java.lang.Thread.run(Thread.java:680)
>>>>>>
>>>>>> Any other ideas?
>>>>>>
>>>>>> Thanks.
>>>>>> --Scott
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Freeman Fang [mailto:[email protected]]
>>>>>> Sent: Monday, January 17, 2011 7:08 PM
>>>>>> To: [email protected]
>>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel)
>>>>>>
>>>>>>
>>>>>> On 2011-1-18, at 上午10:41, Scott Came wrote:
>>>>>>
>>>>>>> I am seeing some strange behavior when using Camel to route from
>>>>>>> a JBI endpoint (cxfbc) to a file using the Camel file component.
>>>>>>>
>>>>>>> Here is the scenario.
>>>>>>>
>>>>>>> I have created a JBI CXFBC service unit with WSDL.  I have also
>>>>>>> created a Camel service unit, with a very simple route:  it
>>>>>>> routes from the CXFBC endpoint to a file with a route that looks like 
>>>>>>> this:
>>>>>>>
>>>>>>> <camelContext id="camel" xmlns="http://camel.apache.org/schema/
>>>>>>> spring">
>>>>>>>     <route>
>>>>>>>       <from
>>>>>>> uri="jbi:endpoint:http://it.ojp.gov/global/services/tsc-encounter
>>>>>>> - r ou t er/RouterService/RouterServiceEndpoint
>>>>>>> "/>
>>>>>>>       <to
>>>>>>> uri="log:gov.ojp.it.TSCEncounterRouterLog?showBody=false"/>
>>>>>>>       <convertBodyTo type="java.lang.String"/>
>>>>>>>       <to uri="file:/Users/scott/Desktop/router-output"/>
>>>>>>>     </route>
>>>>>>>   </camelContext>
>>>>>>>
>>>>>>> I bundle these to SUs into an SA and deploy.  Everything deploys fine.
>>>>>>>
>>>>>>> I then use SOAPUI to send test messages.
>>>>>>>
>>>>>>> If I send a very small message...say, no bigger than a couple
>>>>>>> hundred bytes, to the RouterServiceEndpoint, everything works fine.
>>>>>>> I see the log message in the log, and the file gets written to my
>>>>>>> router-output directory.
>>>>>>>
>>>>>>> However, when I increase the message size beyond a certain point
>>>>>>> (not sure exactly where it is...somewhere around 2000-3000 bytes)
>>>>>>> I start getting messages like:
>>>>>>>
>>>>>>> Unexpected end of input block in start tag at [row,col {unknown-
>>>>>>> source}]: [51,20]
>>>>>>>
>>>>>>> The underlying exception seems to be a
>>>>>>> com.ctc.wstx.exc.WstcEOFException.
>>>>>>>
>>>>>>> If I try subsequent invocations of the service, I get a similar
>>>>>>> error, though the referenced place in the stream is often a
>>>>>>> little different (e.g., [51, 25] or [55, 10]).  So it seems like
>>>>>>> the parser is getting to a different place in the stream each time 
>>>>>>> before it fails.
>>>>>>>
>>>>>>> I have put TCPMon in the middle and verified that the entire
>>>>>>> message is getting to the server, although the server side is not
>>>>>>> closing the connection when the exception occurs.
>>>>>>>
>>>>>>> I am 100% sure the content being sent is valid XML.
>>>>>>>
>>>>>>> Interestingly, if I take out the<to>  part of the route to the
>>>>>>> file component, everything works fine...I get the simple log
>>>>>>> message (note that I am not logging the body content), and the
>>>>>>> connection closes in TCPMon.  However, if I switch to logging the
>>>>>>> body content (i.e., take off the ?showBody=false option), I get
>>>>>>> similar errors as when I try to write out the file.
>>>>>> This looks like a stream already get consumed issue for me, how
>>>>>> about you just
>>>>>>
>>>>>> How about you just change your router like<camelContext id="camel"
>>>>>> xmlns="http://camel.apache.org/schema/spring";>
>>>>>>     <route  streamCache="true">
>>>>>>       <from
>>>>>> uri="jbi:endpoint:http://it.ojp.gov/global/services/tsc-encounter-
>>>>>> r o ut er/RouterService/RouterServiceEndpoint
>>>>>> "/>
>>>>>>       <to
>>>>>> uri="log:gov.ojp.it.TSCEncounterRouterLog?showBody=false"/>
>>>>>>       <convertBodyTo type="java.lang.String"/>
>>>>>>       <to uri="file:/Users/scott/Desktop/router-output"/>
>>>>>>     </route>
>>>>>>   </camelContext>
>>>>>>
>>>>>> Freeman
>>>>>>
>>>>>>> I have tried taking out the<convertBodyTo...>  element, but that
>>>>>>> results in a different exception...something about no appropriate
>>>>>>> converter being found.
>>>>>>>
>>>>>>> It would be somewhat difficult for me to attach a full example,
>>>>>>> as the content of the large message is somewhat
>>>>>>> sensitive/proprietary, but I could do that if I absolutely needed
>>>>>>> to.  I'm hoping there is some simple configuration setting I need
>>>>>>> to tweak to handle bigger messages (though a 2K or 3K message is
>>>>>>> by no means large...)
>>>>>>>
>>>>>>> Thanks for any help you can offer.
>>>>>>>
>>>>>>> --Scott
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Freeman Fang
>>>>>>
>>>>>> ------------------------
>>>>>>
>>>>>> FuseSource: http://fusesource.com
>>>>>> blog: http://freemanfang.blogspot.com
>>>>>> twitter: http://twitter.com/freemanfang Apache
>>>>>> Servicemix:http://servicemix.apache.org
>>>>>> Apache Cxf: http://cxf.apache.org
>>>>>> Apache Karaf: http://karaf.apache.org Apache Felix:
>>>>>> http://felix.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> -----------------
>>>>> FuseSource
>>>>> Email: [email protected]
>>>>> Web: http://fusesource.com
>>>>> Twitter: davsclaus
>>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action:
>>>>> http://www.manning.com/ibsen/
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> -----------------
>>>> FuseSource
>>>> Email: [email protected]
>>>> Web: http://fusesource.com
>>>> Twitter: davsclaus
>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action:
>>>> http://www.manning.com/ibsen/
>>>>
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> FuseSource
>>> Email: [email protected]
>>> Web: http://fusesource.com
>>> Twitter: davsclaus
>>> Blog: http://davsclaus.blogspot.com/
>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>
>>
>>
>> --
>> Willem
>> ----------------------------------
>> FuseSource
>> Web: http://www.fusesource.com
>> Blog:    http://willemjiang.blogspot.com (English)
>>          http://jnn.javaeye.com (Chinese)
>> Twitter: willemjiang
>>
>>
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [email protected]
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to