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