在OSGi中加载XML配置文件

时间:2011-07-29 20:21:37

标签: xml configuration osgi

我想在OSGi环境中加载捆绑包的配置数据(FUSE ESB 4.3.1)。 Spring DM提供了Configuration Admin的抽象,允许读取etc文件夹中的属性文件。

我想要实现的是加载XML文件,因为我需要比简单属性文件更复杂的配置。一个例子可能是:

<measurements>
  <measurementsList name="First">
    <measurement>First-1</measurement>
    <measurement>First-2</measurement>
  </measurementsList>
  <measurementsList name="Second">
    <measurement>Second-1</measurement>
    <measurement>Second-2</measurement>
    <measurement>Second-3</measurement>
    <measurement>Second-4</measurement>
  </measurementsList>
   ...
</measurements>

然后解析它以获取Map&gt;其中键是measurementsList的名称,value是测量名称的列表。

我怎样才能在OSGi中完成?我需要在哪里放置文件才能从某个捆绑包中访问它?

祝福, 斯蒂芬

2 个答案:

答案 0 :(得分:0)

将配置保存在单独的XML文件中。将文件名或URL作为字符串值传递到Configuration Admin管理的属性中。在可配置对象中,打开文件并在那里读取/处理XML内容。

答案 1 :(得分:0)

我会将XML文件放在servicemix下的etc文件夹中,并在spring DM config admin中传递相对路径。

<bean ...>
    <osgix:managed-properties persistent-id="com.sample.your.config.location.path" />
    <property name="config-path" value="etc/config.xml"/> 
</bean>

relative path相对于servicemix目录工作