The BND documentation¹ states that a Service-Component reference with a lowercase name provokes a bean-style "set" method to be mentioned in the generated XML resource:
,----[ Service-Component Header section ] | In that case the reference is augmented with a set<Name> method | according to the standard bean rules. An unset<Name> method is added | when the name appears in the list that is given to the dynamic | directive. `---- Note the second sentence, which says that a corresponding "unset" method will be mentioned if the reference is noted as being of "dynamic" policy. Later the document states that the default policy is "static": ,---- | The defaults are therefore aligned with the SCR: a cardinality of | 1..1, and static policy. `---- However, I notice that with a maven-bundle-plugin directive like this: <Service-Component>com.foo.impl.BarImpl; provide:=com.foo.Bar; quux=com.foo.Quux</Service-Component> The resulting OSGI-INF/com.foo.impl.BarImpl.xml file contains a "reference" element like so: <reference name='quux' interface='com.foo.Quux' bind='setQuux' unbind='unsetQuux'/> Note the presence of the "unbind" attribute. This conflicts with the documentation above that states that the unbind method will only be mentioned for "dynamic" policies. Am I missing something, or is this a bug in BND? Footnotes: ¹ http://www.aqute.biz/Code/Bnd -- Steven E. Harris