Hi,

No, it isn't allowed. Placholders in blueprint only works as metadata, that 
said, only element which actually is underlying  
org.osgi.service.blueprint.reflect.ValueMetadata could be substituted during 
runtime. Those metadata elements generally are some thing like value="xxx" in 
xml. 

Freeman
-------------
Freeman Fang

FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-7-24, at 下午6:23, Ephemeris Lappis wrote:

> Hello.
> 
> I've tried to define in a blueprint a reference to an OSGi service using a
> filter which value should be a property configured in an external
> configuration file (etc/*.cfg).
> 
> It works as expected and the service is actually found when the filter value
> is just given as a simple string.
> 
>       <reference
>               id="my.db"
>               interface="javax.sql.DataSource"
>               filter="(osgi.jndi.service.name=jdbc/derby)" />
> 
> When I change the filter value using "${my.ds}", it fails, with this logged
> error :
> 
> org.osgi.service.blueprint.container.ComponentDefinitionException:
> org.osgi.framework.InvalidSyntaxException: Invalid operator:
> )(objectClass=javax.sql.DataSource))
> 
> I've checked my properties placeholder logging the property value from a
> camel route, using {{my.ds}}, and the value is actually resolved.
> 
> Somebody knows if property expressions are allowed in this filter attribute
> ?
> 
> Thanks for your help.
> 
> 
> 
> 
> --
> View this message in context: 
> http://servicemix.396122.n5.nabble.com/Property-in-OSGi-service-reference-filter-attribute-tp5713964.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to