Thanks Carsten! I tried both the options (unbounded=PropertyUnbounded.ARRAY and cardinality=N) independently, but unfortunately it doesn't seem to work. The scr xml still generates <property name="multivalued.property" value="only-single-value"/>
I even upgraded to SCR annotations v1.9.2 and Maven SCR plugin 1.12.0, and still it won't work. Can I have a code sample somewhere, so that I can try it out? Thanks, Thomas Joseph On Fri, May 3, 2013 at 11:44 AM, Carsten Ziegeler <[email protected]>wrote: > Hi, > > unfortunately, the java annotations do not distinguish between a single > value and an array, so it's impossible by looking at {"single value"} if > this is should be a single value or an array. For the tooling inspecting > the annotations "single value" looks exactly the same. Therefore the SCR > plugin assumes a single value to be exactly this: a single value :) > If you just want to specify a single default value for a multi value > property, you can either use cardinality=N if you want to limit the number > of values, or unbounded=PropertyUnbounded.ARRAY. We usually the latter > option. > > Carsten > > > 2013/5/3 Thomas Joseph <[email protected]> > > > Hi All, > > > > I am using Felix SCR annotations v1.7.0 and Maven SCR plugin 1.8.0, and > > declaring a OSGi property as: > > > > @Property(label="Multivalued Property", value={"only-single-value"}) > > private static final String MV_PROPERTY= "multivalued.property"; > > > > And then try to retrieve the property value as: > > > > > > @Activate > > @Modified > > protected void activate(*final ComponentContext context*) throws > Exception > > { > > Object prop = context.getProperties().get(MV_PROPERTY); > > } > > > > > > > > But I observe that the value is retrieved as a String and not a String > > array. The generated SCR xml itself is generated for a String and not a > > String array. > > <property name="multivalued.property" value="only-single-value"/> > > > > However, if I declare the property as below, I get the value as an array. > > > > @Property(label="Multivalued Property", value={"only-single-value"*, > ""*}) > > private static final String MV_PROPERTY= "multivalued.property"; > > > > I Googled around but could not find anything conclusive. Am I missing > > something here? How can I get a String array without a workaround done > > above. > > > > -- > > Thanks, > > /Thomas Joseph > > > > > > -- > Carsten Ziegeler > [email protected] >

