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
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?@ObjectClassDefinitionannotation 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@Activateprivate def void activate(MyConfiguration config){println('''Activated: «config.name»''')}@Modifiedprivate def void update(MyConfiguration config){println('''Updated: «config.name»''')}@Deactivateprivate def void deactivate(){println('''Deactivated''')}}@Componentclass 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