from("direct:A")
.process(//processing here)
.recipientList(//expression that return two recipients [direct:B, direct:C] )
from("direct:B")
.process(//processing here)...
from("direct:C")
.process(//processing here)...
.from("direct:A")
behaves like a java method i.e the thread that calls it will continue to process()
.
So what will happen in above case ?
Let say Thread t1
calls from("direct:A")
then
t1
will continue to process()
and then t1
will enter into recipientList()
Now from here on-wards will t1
call from("direct:B")
and then call from("direct:C")
synchronously
or
direct:b
and direct:c
will be called in two new thread asynchronously.