Hi

I do wonder if we can come up with a better name for the setter/getter
of synchronous on ProducerTemplate.

Otherwise great work. The Java 8 API makes the code easier when you
can compose the futures with the thenApply.

Just a note that we must/should ensure that existing Camel users can
take their code as-is and compile with Java 8 and Camel 2.18
dependencies without having to change their source code.

Down the road we should also look at if some of this makes sense to
add to the newer and simpler FluentProducerTemplate. But lets first
get this new stuff working well on ProducerTemplate.




On Mon, Sep 12, 2016 at 1:33 AM, Vitalii Tymchyshyn <v...@tym.im> wrote:
> Hi, all
>
> I've finished first draft of async support for ProducerTemplate. Please
> review and comment.
> Primary features:
>  * All async* methods of ProducerTemplate now return CompletableFuture
> instead of regular Future. It makes a bridge from Camel pipelines to plain
> Java 8 CompletableFuture engine.
>  * Async engine is employed. Previously async* methods were just calling
> regular sync engine from a thread pool. Thus there was no clean way to
> employ async engine when calling camel routes from Java code.
>  * New parameter was added to DefaultProducerTemplate allowing to skip
> thread pool while still using async engine. It should allow very efficient
> reactive non-blocking programming with camel.
>
> P.S. Honestly I like using camel in reactive programming much. It provides
> a lot of non-blocking endpoints and make debug much easier with route
> statistics & in-flight repository. As soon as this features will be in core
> I am going to write an blog post highlighting all value added over regular
> CompletableFuture.
>
> Best regards, Vitalii Tymchyshyn
>
> Нд, 11 вер. 2016 о 19:27 tivv <g...@git.apache.org> пише:
>
>> GitHub user tivv opened a pull request:
>>
>>     https://github.com/apache/camel/pull/1167
>>
>>     CAMEL-10308
>>
>>     Provide a way to use async engine from ProducerTemplate
>>
>> You can merge this pull request into a Git repository by running:
>>
>>     $ git pull https://github.com/tivv/camel j8-producer-template
>>
>> Alternatively you can review and apply these changes as the patch at:
>>
>>     https://github.com/apache/camel/pull/1167.patch
>>
>> To close this pull request, make a commit to your master/trunk branch
>> with (at least) the following in the commit message:
>>
>>     This closes #1167
>>
>> ----
>> commit 5daf4fa79a8cfa74e0d3253d07e8548c844de3a9
>> Author: Vitalii Tymchyshyn <v...@tym.im>
>> Date:   2016-09-11T23:25:42Z
>>
>>     CAMEL-10308
>>     Provide a way to use async engine from ProducerTemplate
>>
>> ----
>>
>>
>> ---
>> If your project is set up for it, you can reply to this email and have your
>> reply appear on GitHub as well. If your project does not have this feature
>> enabled and wishes so, or if the feature is enabled but not working, please
>> contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
>> with INFRA.
>> ---
>>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to