Reposting to dev since this is a development question. I can get a patch in for this pretty soon once the direction agreed upon.
---------- Forwarded message ---------- From: Carl Hall <[email protected]> Date: Thu, Jan 27, 2011 at 7:35 PM Subject: Re: correct syntax for multi-valued properties in fileinstall cfg files? To: [email protected] What if the syntax that is used by the config admin is used for this? The processing in ConfigurationHandler can be abstracted and fileinstall already has a dependency on config admin. The code has been used in Felix for a while, so we would get free testing with it. :) The syntax is this: value = type ( "[" values "]" | "(" values ")" | simple ) . values = value { "," value } . simple = "{" stringsimple "}" . type = // 1-char type code . stringsimple = // quoted string representation of the value . Examples of this, * ["thing1","thing2"] => String[2] * i[10,250,365] => int[3] I would like to add this feature, so any discussion on how best to proceed is greatly welcomed. On Thu, 18 Mar 2010 13:19:36 -0700 Justin Edelson said, Ah, so the > header ::= <header> ( ':' | '=' ) <value> ( '\<nl> <value> ) * part is saying that a single value can be split over multiple lines... gotcha. I think the scr javadoc annotation way is reasonable, although it's not backwards-compatible. Justin On 3/18/10 4:03 PM, Chris Custine wrote: > OK, I see what you are after now :-) The fileinstall config handler > doesn't currently support multivalue properties, so whatever you set on > a property value gets parsed as a single string (the code simply uses > load(inputstream) from the Properties class). This functionality could > probably be added, but we would have to decide on a way to differentiate > between scalar values and arrays ("this, is, one, string" vs. String[] > property = {"this","is","one","string"} ). Another option would be to > support syntax similar to the scr javadoc annotations and munge the > properties into an array (value.1="this", value.2="is", etc > become String[] property = {"this","is", etc} ). If you are interested > in that feature, please create a Jira and someone will take a look. > http://issues.apache.org/jira/browse/FELIX > > Until then, you could either add your own config admin code to do > something like this, or you can add a method with a single string > argument to accept the property and then parse and process into your > component after it is set by scr from the config admin. > > Thanks, > Chris > > -- > Chris Custine > FUSESource :: http://fusesource.com > My Blog :: http://blog.organicelement.com > Apache ServiceMix :: http://servicemix.apache.org > Apache Felix :: http://felix.apache.org > Apache Directory Server :: http://directory.apache.org > > > On Thu, Mar 18, 2010 at 10:11 AM, Justin Edelson > <[email protected] <mailto:[email protected]>> wrote: > > Thanks Chris. > > I was actually referring to the configuration files (with .cfg > extension) which is described here: > > http://felix.apache.org/site/apache-felix-file-install.html#ApacheFelixFileInstall-Configurations > > I would like to set a property to a String array. With scr qdox > annotations, this would look like this: > /** > * @scr.property values.1="/foo" values.2="/bar" > */ > > I saw this line in the documentation: > header ::= <header> ( ':' | '=' ) <value> ( '\<nl> <value> ) * > > which implied to me that the syntax I used below would work. > > If no one knows, I'll look through the code. Maybe this isn't possible. > > Justin > > > On 3/17/10 11:37 PM, Chris Custine wrote: > > There really aren't any config properties for fileinstall that accept > > multiple values as far as I know. If you need to monitor multiple > > directories you can create multiple config files as shown in the > > fileinstall docs > > here: > > http://felix.apache.org/site/apache-felix-file-install.html#ApacheFelixFileInstall-WatchingmultipledirectorieswithFileInstall > > > > Chris > > > > <http://felix.apache.org/site/apache-felix-file-install.html#ApacheFelixFileInstall-WatchingmultipledirectorieswithFileInstall> > > -- > > Chris Custine > > FUSESource :: http://fusesource.com > > My Blog :: http://blog.organicelement.com > > Apache ServiceMix :: http://servicemix.apache.org > > Apache Felix :: http://felix.apache.org > > Apache Directory Server :: http://directory.apache.org > > > > > > On Wed, Mar 17, 2010 at 7:07 PM, Justin Edelson > <[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>> > wrote: > > > > What is the correct syntax for multi-valued properties in a > fileinstall > > cfg file? I tried a few variations on: > > > > name=value1 \ > > value2 \ > > value3 > > > > but they didn't work. > > > > Thanks, > > Justin > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> > > For additional commands, e-mail: [email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
