Thanks a lot!

Am Mi., 15. Mai 2019 um 21:14 Uhr schrieb David Jencks
<[email protected]>:
>
> for instance, from R7 cmpn…
>
> 112.3.10 Selecting Target Services
>
> …
>         • The filter is manifested as a component property called the target 
> property. The target property can also be set by property and properties 
> elements, see Property and Properties Elements on page 339. The deployer can 
> also set the target property by establishing a configuration for the 
> component which sets the value of the target property. This allows the 
> deployer to override the target property in the component description. See 
> Target Property on page 357 for more information.
>
> also 112.6.2.1
>
>  Hope this helps
>
> David Jencks
>
> > On May 15, 2019, at 10:28 AM, Markus Rathgeb <[email protected]> wrote:
> >
> > Hi Tim,
> >
> > can you point me to the part of the spec that states that service 
> > configuration properties can be used to set such fields (e.g. target 
> > filter)?
> > I just know that it works ;)
> >
> > Best regards,
> > Markus
> >
> > Tim Ward <[email protected]> schrieb am Mi., 15. Mai 2019, 15:45:
> > Declarative Services is amazing, so this is trivially easy to do. In this 
> > case you should add the configuration property
> >
> > service.target
> >
> > to your configuration dictionary with the value being an LDAP filter 
> > selecting the service you want to inject.
> >
> > Note that “service” is the name of your reference (it defaults to the field 
> > name) and that if your reference has a different name (e.g. if you change 
> > the name of the field) then the name of the property will change too.
> >
> > For example:
> >
> > service.target=(foo=bar)
> >
> > Inject me with a MyInterfaceB which has the service property foo equal to 
> > bar.
> >
> > All the best,
> >
> > Tim
> >
> >> On 15 May 2019, at 14:35, Matthias Leinweber 
> >> <[email protected]> wrote:
> >>
> >> Hello Karaf Experts,
> >>
> >> i am trying to isolate services from each other.
> >>
> >> For Example you have a component:
> >>
> >> @Component(
> >>     configurationPid = "MyInterfacA.factory",
> >>     configurationPolicy = ConfigurationPolicy.REQUIRE,
> >> public Class MyInterfaceAImpl implements MyInterfacA{
> >>
> >> @Reference
> >> MyInterfaceB service;
> >>
> >>  ...}
> >>
> >> During runtime I create multiple services from type MyInterfaceB and 
> >> multiple componentes of MyInterfaceAImpl with configadmin.
> >> Depending on the configuration of MyInterfaceAImpl I want to filter which 
> >> MyInterfaceB implementation is injected.
> >>
> >> I thought about FindHook but there I dont see a way how to get the 
> >> information which service from the bundle is requesting the reference.
> >>
> >> Is there any chance to do this, or do I have to go for an alternative 
> >> design. Or a better way to isolate services from another?
> >>
> >>
> >> Best regards,
> >> Matthias
> >
>

Reply via email to