Hi

On Fri, Mar 18, 2011 at 10:08 PM, Harald Wellmann
<[email protected]> wrote:
> The point is, I don't want to use any Camel APIs in my application code, all
> my service clients and service implementations are Bean endpoints, and all
> the Camel plumbing should happen in the Spring Configuration.
>

See
http://camel.apache.org/using-camelproxy.html



> Example:
>
> public interface Calculator {
>
>    // long running implementation
>    Future<Integer> add(int a, int b);
> }
>
>
> public class CalculatorClient {
>
>    @Inject
>    private Calculator calculatorProxy;
>
>    public void calculate() {
>
>        // returns immediately
>        Future<Integer> sum = calculatorProxy.add(2, 3);
>
>        // do something else
>
>        Integer theSum = sum.get();
>        System.out.println(sum);
> }
>
>
> So the ProducerTemplate and the Future API won't help at all. I'm currently
> trying to create my own FutureComponent, derived from SedaComponent, which
> will allow me to use routes like
>
>  from("bean:calcClient").to("future:calc").to("bean:calcImpl")
>
> or in a client-server scenario with JMS in between:
>
>  // Client VM
>  from("bean:calcClient").to("future:calc").to("jms:queue:calc")
>
>  //  Server VM
>  from("jms:queue:calc").to("bean:calcImpl")
>
>
> I can't help feeling there must be an easier way of doing this, but I just
> don't see how...
>
> Best regards,
> Harald
>
> Am 16.03.2011 08:24, schrieb Willem Jiang:
>>
>> If you are write your own component, you can use the camel async API[1]
>> to do work asynchronously.
>>
>> But as you are using the client API to send the request into the camel
>> route, you need to leverage the Feature API[2]
>>
>> [1]http://camel.apache.org/asynchronous-processing.html
>> [2]http://camel.apache.org/async.html
>>
>>
>



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