Hi,

The DependencyModel is the parent class of all the iPOJO's service 
dependencies.  So, the easiest way is to access to your service dependency:

InstanceManager im = (InstanceManager) componentInstance;
DependencyHandler handler = im.getHandler("org.apache.felix.ipojo:requires");
Dependencies[] deps = handler.getDependencies();
// Lookup your dependency from deps (by id, by specification…)
dep.setFilter(filter);

Regards,

Clement




On 28 nov. 2012, at 13:09, Bengt Rodehav <[email protected]> wrote:

> Thanks for you reply Clement,
> 
> So, the following should work (in principal)?
> 
> *  @Property(name = "myProperty" mandatory = true)*
> *  public void setMyPropertey(String theProperty) {*
> *    // Calculate new filter based on myProperty*
> *    String filter = ....*
> *
> *
> *    // How do I get an instance of "DependencyModel"?*
> *    DependencyModel.setFilter(filter);*
> *  }*
> 
> I've never used the DependencyModel class before. How do I gain access to
> the correct instance? What maven artifact do I need for this?
> 
> /Bengt
> 
> 
> 2012/11/28 Clement Escoffier <[email protected]>
> 
>> Hi,
>> 
>> Using the iPOJO API you can use 'setFilter' to update the LDAP filter of a
>> dependency (DependencyModel.setFilter). When changed the set of bound
>> services is recomputed. Be aware that it may lead to an invalidation of the
>> instance if no providers match the new filter.
>> 
>> What we did in the past is to develop a handler receiving the new
>> properties, computing the new filter and applying it to the targeted
>> dependency.
>> 
>> Regards,
>> 
>> Clement
>> 
>> On 27 nov. 2012, at 11:41, Bengt Rodehav <[email protected]> wrote:
>> 
>>> I'm using the latest iPOJO version. I'm trying to use configuration
>>> properties (via config admin) to make my service wiring dynamic.
>>> 
>>> I have handler services that expose service properties (that tells the
>>> world what they can handle). The consumer of these services uses @Require
>>> with an LDAP filter to specify what needs to be handled and thus limit
>> what
>>> handlers can be used.
>>> 
>>> But, I want the LDAP filter to be dynamic so that I can wire up service
>>> providers with service consumers by configuration properties on the
>>> consumers and providers.
>>> 
>>> I've tried to buld the LDAP filter dynamically (using a configurable
>>> property) but I get the compilation error:
>>> 
>>> *  The value for annotation attribute Requires.filter must be a constant
>>> expression*
>>> 
>>> I was hoping that if I changed a configuration property, iPOJO would
>>> refresh its list of provider services to match the changed LDAP filter.
>>> 
>>> How can I accomplish what I want? Is there a best practice?
>>> 
>>> /Bengt
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to