Will fix them today
---
Luca Burgazzoli

On Wed, Jun 1, 2016 at 8:56 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> Hi
>
> Looks good there is only a few spots I have some comments.
>
> - There is some code that has not null check for load balancer /
> server list strategy. The kubernetes component can do without that
> when you use ENV or DNS as lookup.
>
> - There was a place where you do some logging and it says Consul when
> its in fact generic
>
> - You have label("ServiceCall") but that label name seems wrong. eg
> notice that label is like a "tag" not a leading label in a UI form
> etc. Yeah we should maybe have named it "tag" or "group" instead.
>
> - In the Java DSL we often have it return Type so you do not change
> the type and makes the fluent easier to use. Only if you need to do
> some more advanced configuration then we have other methods that
> return the ServiceCallDefinition type so you can call specialized
> method on that in the Java DSL.
>
>
>
>    serviceCall().name("foo").loadBalancer("random").end()
>    // here you have the ServiceCallDefinition in the DSL to call
> specialized methods. But have to call end() to end it
>
>   And then with short hand that just return type
>
>    serviceCall("foo")
>    // here the Type is not changed and you just want to call the
> service foo, and NOT do any other configuration. Then you do not need
> the end()
>
>
>
>
>
> On Tue, May 31, 2016 at 4:54 PM, Luca Burgazzoli <lburgazz...@gmail.com> 
> wrote:
>> I've committed some more code to my branch [2], it is not yet complete
>> (i.e. I still have to make ribbon code to use the new common classes
>> and some APIs are not clean enough) but a feedback would be really
>> welcome.
>>
>> ---
>> Luca Burgazzoli
>>
>>
>> On Mon, May 30, 2016 at 10:55 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>> On Mon, May 30, 2016 at 10:49 AM, Luca Burgazzoli <lburgazz...@gmail.com> 
>>> wrote:
>>>> So like serviceCall("myServiceCall").configurationRef("myConf") ?
>>>
>>> Yeah there is already a DSL for that named 
>>> serviceCallConfiguration("myConf")
>>>
>>>
>>>
>>>
>>>> ---
>>>> Luca Burgazzoli
>>>>
>>>>
>>>> On Mon, May 30, 2016 at 10:26 AM, Claus Ibsen <claus.ib...@gmail.com> 
>>>> wrote:
>>>>> On Mon, May 30, 2016 at 10:16 AM, Luca Burgazzoli <lburgazz...@gmail.com> 
>>>>> wrote:
>>>>>> do you mean something like serviceCallRef("myServiceCall") ?
>>>>>> ---
>>>>>
>>>>> No you need to provide
>>>>>
>>>>> - a) name of service to call
>>>>> - b) reference to configuration of service
>>>>>
>>>>> a = mandatory
>>>>> b = optional. As if there is only 1 configuration then use that.
>>>>>
>>>>>
>>>>>
>>>>>> Luca Burgazzoli
>>>>>>
>>>>>>
>>>>>> On Sun, May 29, 2016 at 9:42 AM, Claus Ibsen <claus.ib...@gmail.com> 
>>>>>> wrote:
>>>>>>> On Thu, May 26, 2016 at 7:30 PM, Luca Burgazzoli 
>>>>>>> <lburgazz...@gmail.com> wrote:
>>>>>>>> ---
>>>>>>>> Luca Burgazzoli
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, May 26, 2016 at 7:06 PM, Claus Ibsen <claus.ib...@gmail.com> 
>>>>>>>> wrote:
>>>>>>>>> Hi Luca
>>>>>>>>>
>>>>>>>>> Yeah its good to get more eyes on this new set of code. When I created
>>>>>>>>> kubernetes and ribbon there was sure some overlap of code that could
>>>>>>>>> be shared, but I didn't push for much default/abstract code in
>>>>>>>>> camel-core because there its new code and I also wanted to see what
>>>>>>>>> consul, etcd, zookeeper and other distributed systems may
>>>>>>>>> need/require.
>>>>>>>>>
>>>>>>>>> I like the idea of the impl.remote package to have some base
>>>>>>>>> implementation there.
>>>>>>>>>
>>>>>>>>> Your current branch [2] has a good set of reusable code although its
>>>>>>>>> tied to consul currently, so that would need to be made abstract so it
>>>>>>>>> can be reuse by kuernetes and maybe also ribbon as well (where it
>>>>>>>>> makes sense).
>>>>>>>>
>>>>>>>> I've removed some consul specific stuffs that I left by mistake, 
>>>>>>>> should be
>>>>>>>> a little tidy now.
>>>>>>>>
>>>>>>>> An aspect to take into account is how to make it easy to configure
>>>>>>>> ServiceCallServerListStrategy in case we use 
>>>>>>>> DefaultServiceCallProcessor
>>>>>>>> maybe something like:
>>>>>>>>
>>>>>>>> serviceCall()
>>>>>>>>     .name("my-service")
>>>>>>>>     .roundRobinLoadBalancer()
>>>>>>>>     .consulServerListStrategy()
>>>>>>>>             .type(Strategy.ON_DEMAND)
>>>>>>>>             .url("http://consul-host:8500";)
>>>>>>>>             .dc("west")
>>>>>>>>         .end()
>>>>>>>>
>>>>>>>> Too ugly ?
>>>>>>>>
>>>>>>>
>>>>>>> Yeah possible - its always tricky to find the right balance.
>>>>>>>
>>>>>>> I wonder if you may want to do this in the configuration, and then in
>>>>>>> the routes with serviceCall you then just need to refer to the service
>>>>>>> name / url to be used - then all the round robin, service list, and so
>>>>>>> on are configured outside the route in the configuration.
>>>>>>>
>>>>>>> We could also leave those in the route DSLs as well so you can
>>>>>>> override the configuration, so you can use
>>>>>>>
>>>>>>> serviceCall().name("foo").consulConfiguraiton().dc("west").end()
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> But then on the other hand if you just want to call a single service
>>>>>>> you may want to do it all in the route without the configuration.  But
>>>>>>> if we look at rest-dsl then it separates the configuration from the
>>>>>>> REST endpoint.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>
>>>>>>>>> An aspect we haven't added yet could be to find out if we can expose
>>>>>>>>> some JMX attributes and operations for thise service call EIP as well?
>>>>>>>>> And then maybe some Camel commands so you can manage/list it from
>>>>>>>>> karaf and other CLIs. But this part is more "nice to have" and a bit
>>>>>>>>> "eye candy" but still somewhat cool.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, May 26, 2016 at 4:13 PM, Luca Burgazzoli 
>>>>>>>>> <lburgazz...@gmail.com> wrote:
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> I'm playing a little bit with the new ServiceCall EIP by adding 
>>>>>>>>>> support for
>>>>>>>>>> consul service discovery and I've committed some code in my own 
>>>>>>>>>> branch [1].
>>>>>>>>>>
>>>>>>>>>> I borrowed most of the code from camel-kubernetes and as it ended up 
>>>>>>>>>> being
>>>>>>>>>> almost a clone, I've tried to make some base/default classes as what 
>>>>>>>>>> really
>>>>>>>>>> make the difference is the implementation of 
>>>>>>>>>> ServiceCallServerListStrategy
>>>>>>>>>> and ServiceCallLoadBalancer so to add a simple discovery engine you 
>>>>>>>>>> only
>>>>>>>>>> need to implement your own ServiceCallServerListStrategy and 
>>>>>>>>>> eventually your
>>>>>>>>>> own ServiceCallLoadBalancer (i.e. for ribbon).
>>>>>>>>>>
>>>>>>>>>> Does it make sense ?
>>>>>>>>>>
>>>>>>>>>> [1] https://github.com/lburgazzoli/apache-camel/tree/CAMEL-9989
>>>>>>>>>> [2] 
>>>>>>>>>> https://github.com/apache/camel/compare/master...lburgazzoli:CAMEL-9989?expand=1
>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> Luca Burgazzoli
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Claus Ibsen
>>>>>>>>> -----------------
>>>>>>>>> http://davsclaus.com @davsclaus
>>>>>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Claus Ibsen
>>>>>>> -----------------
>>>>>>> http://davsclaus.com @davsclaus
>>>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> -----------------
>>>>> http://davsclaus.com @davsclaus
>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> http://davsclaus.com @davsclaus
>>> Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to