Carsten Ziegeler
Mon, 08 Feb 2010 01:08:13 -0800
Daniel Bimschas wrote:
> Hi list!
>
> I've posted this question on osgi-...@mail.osgi.org, too, but as this list is
> more active by far I thought I would also give it a try :-).
>
> I'm writing an application that uses Configuration Admin to be configured at
> runtime. Now, for one of my DS components I have a more complex configuration
> requirement. Assume e.g. I want to configure the component to create a set of
> TCP connections. Using XML configuration I would use something like this
> snippet:
>
> <connections>
> <connection>
> <host>somehost.com</host>
> <port>1234</port>
> </connection>
> <connection>
> <host>someotherhost.com</host>
> <port>4321</port>
> </connection>
> </connections>
>
> My question now is if there's an elegant way to map such a set of complex
> configuration objects to Configuration Admins properties file format? Maybe I
> don't see the wood for the trees but I can't think of a nice way (so that I
> could also use the Metatype Service specification), except this suboptimal
> one:
>
> connection.host = {somehost.com,someotherhost.com}
> connection.port = {1234,4321}
>
> where each entry of the string array of the property 'connection.host' key
> must have an according entry 'connection.port' with the same index. However,
> that solution will make editing the configuration files very error prone and
> unintuitive.
>
> I can think of another alternative, which is using a component factory that
> creates one instance of my service per connection configuration. But I have
> other use cases for which this approach would not be feasible.
>
We usually solve such problems by using this mentioned alternative: a
component factory for connections and some kind of manager service that
holds all connections.
I think there are usually two different problems involved: a) a list of
configurations (like in your connections example) and b) a structured
configuration for a single component. While you can solve a) with the
factory approach, b) is more difficult. For b) we sometimes use special
string constructs like if you want to a configuration like:
<server>
<name/>
<port/>
</server>
we have a single config property "server" with a value like "name|port".
HTH
Carsten
--
Carsten Ziegeler
cziege...@apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
For additional commands, e-mail: users-h...@felix.apache.org