Yes. You need to use the correct property name: <refname>.cardinality.minimum. See 112.6.2.2 in the DS spec.
 
 
@ObjectClassDefinition
@interface MyConfiguration {
    String name;
    // this will make a property named stuff.cardinality.minimum
        // which is the minimum cardinality for the reference named "stuff".
    int stuff_cardinality_minimum default 3;
}
 
@Designate(ocd = MyConfiguration)
@Component(configurationPid = 'configurable')
class ConfigurableTest {
  @Reference(
    cardinality = ReferenceCardinality.MULTIPLE,
    policy = ReferencePolicy.DYNAMIC,
    policyOption = ReferencePolicyOption.GREEDY
  )
volatile List<IStuff> stuff
 
--

BJ Hargrave
Senior Technical Staff Member, IBM // office: +1 386 848 1781
OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788
hargr...@us.ibm.com
 
 
----- Original message -----
From: Thomas Driessen <thomas.driessen...@gmail.com>
Sent by: osgi-dev-boun...@mail.osgi.org
To: OSGi Developer Mail List <osgi-dev@mail.osgi.org>
Cc:
Subject: [osgi-dev] Configuring reference.cardinality.minimum / reference.target via Metatypes
Date: Thu, Apr 13, 2017 9:24 AM
 
Hi,
 
I was wondering if one can configure the @Reference cardinality.minimum property of a service vie Metatypes somehow?
 
In my example (written in Xtend) I'd like to configure the minimum cardinality of 'stuff'. So is there a magic property name/pattern (like in the commented code below) that I can use in MyConfiguration  in order to achieve that?
 
@ObjectClassDefinition
annotation MyConfiguration{
        String name
        // String stuffCardinalityMinimum
}
 
@Designate(ocd = MyConfiguration)
@Component(configurationPid = 'configurable')
class ConfigurableTest{
@Reference(
cardinality = ReferenceCardinality.MULTIPLE,
policy = ReferencePolicy.DYNAMIC,
policyOption = ReferencePolicyOption.GREEDY
)
volatile List<IStuff> stuff
 
@Activate
private def void activate(MyConfiguration config){
println('''Activated: «config.name»''')
}
 
@Modified
private def void update(MyConfiguration config){
println('''Updated: «config.name»''')
}
 
@Deactivate
private def void deactivate(){
println('''Deactivated''')
}
}
 
@Component
class Stuff implements IStuff{}
 
interface IStuff{}
 
Any advice is appreciated :)
 
Kind regards,
Thomas
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
 

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to