Yeah this is for 3.0 :) Posted so I won't forget --- Luca Burgazzoli
On Fri, Sep 8, 2017 at 11:02 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Fri, Sep 8, 2017 at 10:38 AM, Luca Burgazzoli <lburgazz...@gmail.com> > wrote: >> Hi, >> >> I was thinking if instead we could have the camel context have its own >> registry and end users can add their own "bean repository", like >> >> context.addBeanRepository(new SpringBeanRepository()) >> context.addBeanRepository(new JNDIRepositoy()) >> >> Then when asking the registry to lookup beans, it will go through the >> repositories according to their order and if it does not find any its >> internal repositories which can then be used to add internal stuffs >> like rest/service-call/etc configurations and so on. >> >> Would that make sense ? >> > > Maybe can we talk about this later. > We have a 2.20.0 release to get done first. > > >> >> --- >> Luca Burgazzoli >> >> >> On Mon, Feb 6, 2017 at 10:41 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> Hi >>> >>> Yeah the idea of having it internal and named as containerRegistry, or >>> maybe better named as contextRegistry or internalRegistry or >>> camelInternalRegistry to make it stand out its not for Camel end users >>> per see. >>> >>> A side bonus can be that we could make this internal registry >>> available for unit testing Camel where users sometimes have a little >>> trouble adding beans to the registry when using spring / cdi / java / >>> karaf et all. There is a couple of JIRAs about this. Then the APIs on >>> camel-test could offer a way to register custom beans that take >>> priority over the regular registry. >>> >>> >>> >>> >>> >>> >>> On Mon, Feb 6, 2017 at 10:13 AM, Luca Burgazzoli <lburgazz...@gmail.com> >>> wrote: >>>> Well, what we have as today is just fine but sometime it requires a >>>> little bit of additional work and maintenance even it is not strictly >>>> needed. >>>> Let's take as example hystrix and service call stuffs we added recently: >>>> >>>> 1. hystrix configuration is retrieved from the registry but work in >>>> spring only as blueprint and cdi support is not implemented and would >>>> require additional work, even the spring support is a little limited. >>>> 2. service call configurations can be retrieved from the camel context >>>> (via getter method) or from the registry but configurations you add to >>>> the camel context element are added to the context, not the registry >>>> so the behavior is a little different and it pollute the camel context >>>> with additional methods. >>>> 3. Add support for service-call to spring & co may require to write a >>>> custom bean factory >>>> 4. hystrix and service-call configurations are not supposed to be used >>>> outside the camel context, so having them available for DI in >>>> spring/blueprint/cdi does not make much sense >>>> >>>> The proposed solution aim to harmonize such things by adding them to a >>>> camel contex own registry. >>>> Of course the container specific registry can still be used to >>>> configure hystrix/service-call and it is used first, something like: >>>> >>>> registry.lookupByName(String name, Class type) { >>>> Object answer = containerRegistry.lookupByName(name); >>>> if (answer == null) { >>>> answer = contextRegistry,.lookupByName(name); >>>> } >>>> >>>> return answer; >>>> } >>>> >>>> >>>> >>>> --- >>>> Luca Burgazzoli >>>> >>>> >>>> On Fri, Feb 3, 2017 at 4:27 PM, Paul Gale <paul.n.g...@gmail.com> wrote: >>>>> Luca, >>>>> >>>>> Can you outline either some particular business problem that you're trying >>>>> to solve or some current impediment to a solution that would be remedied >>>>> by >>>>> your proposed design change? >>>>> >>>>> Perhaps a few use case scenarios might help demonstrate the need. Just a >>>>> thought. >>>>> >>>>> Thanks, >>>>> Paul >>>>> >>>>> On Fri, Feb 3, 2017 at 8:39 AM, Luca Burgazzoli <lburgazz...@gmail.com> >>>>> wrote: >>>>> >>>>>> Yes an easy way to register beans that are not really meaningful >>>>>> outside the camel context and maybe beans we do not want to make >>>>>> available through dependency injection so they can't be easily >>>>>> modified outside. >>>>>> The hierarchical nature is only to make it transparent for consumer >>>>>> i.e. a service call / hystrix implementation would search in the >>>>>> registry and do not care were the bean come from. >>>>>> >>>>>> Indeed I'm not sure it is the best option, still need to experiment about >>>>>> it. >>>>>> >>>>>> --- >>>>>> Luca Burgazzoli >>>>>> >>>>>> >>>>>> On Fri, Feb 3, 2017 at 2:11 PM, Claus Ibsen <claus.ib...@gmail.com> >>>>>> wrote: >>>>>> > Hi >>>>>> > >>>>>> > So are you referring to some configuration for service call / hystrix >>>>>> etc? >>>>>> > >>>>>> > The problem with the registry being hierarchical is that its backed by >>>>>> > different implementations and then the user experience is different >>>>>> > depending on which beans you get. For example CDI/spring has all kind >>>>>> > of dependency injection magic, where as a basic map registry cannot do >>>>>> > anything. >>>>>> > >>>>>> > So it sounds more like you are looking for an internal generic >>>>>> > registry? >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > On Thu, Feb 2, 2017 at 6:21 PM, Luca Burgazzoli <lburgazz...@gmail.com> >>>>>> wrote: >>>>>> >> Hello everyone, >>>>>> >> >>>>>> >> I'm wondering if it would make sense to have a sort of hierarchical >>>>>> >> registry where the root registry is always created by the CamelContext >>>>>> >> then the specific container registry adds its own registry on top and >>>>>> >> the lookup would be top down. >>>>>> >> >>>>>> >> The motivation is that there are some beans that are only used by >>>>>> >> camel and the registry is always involved so it does not make much >>>>>> >> sense to have them available also on the container, i.e. the >>>>>> >> ServiceCall and Hystrix configured through XML. >>>>>> >> >>>>>> >> This would reduce the complexity to add new definitions to the XML as >>>>>> >> one do not need to create a container specific parser (blueprint, >>>>>> >> spring, cdi) for object that are strictly camel-context related. >>>>>> >> >>>>>> >> What do you think ? >>>>>> >> >>>>>> >> --- >>>>>> >> 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