Karaf教程第3部分 使用OSGi Metatype服务和Felix Webconsole改善配置编辑

Karaf教程第3部分 使用OSGi Metatype服务和Felix Webconsole改善配置编辑

 

    Karaf教程第2部分使用Configuration Admin服务一节,我们学习了如何使用简单的配置来配置我们的Bundle

    在这一部分,我们将学习如何使用Metatype服务Felix Webconsole来简化创建和编辑这些配置。

 

3.1 使用Webconsole编辑无类型化的配置

当在第2部分Karaf容器已经运行,配置已经存在的时候,我们就可以使用Felix Webconsole来编辑配置。

 

打开浏览器,访问http://localhost:8181/system/console/configMgr。你将看到config admin服务知道的配置列表:

 

3.2 无类型的配置

我们想要看到第一个东西是无类型的配置。要想看这个配置,可以从给git源代码中复制ConfigApp.cfg文件到Karafetc目录。现在它应该在上面的列表中被列出。如果你点击edit按钮,你会看到下面的界面:

 

你现在得到一个自由格式的编辑器,内容是当前的配置。你可以编辑和保存这个配置。在config admin服务中的配置发生了改变,并在内部持久化但没有写到etc目录(在当然的karaf版本)。

现在,再次从etc目录删除这个文件。列表中将不再显示该配置。

 

3.3 类型化的配置

现在我们将看一看类型化的配置。Felix Webconsole可以创建类型化的配置,也可以在编辑器中友好的显示他们。

为了实现这个功能,我们需要在bundle创建一个OSGiMetatype信息。只需要在OSGI-INF/metatype目录中简单地创建一个文件即可。

对于我们的configapp示例,相应的配置如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<MetaData xmlns="http://www.osgi.org/xmlns/metadata/v1.0.0"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="

 http://www.osgi.org/xmlns/metadata/v1.0.0 http://www.osgi.org/xmlns/metatype/v1.1.0/metatype.xsd

 ">

 <OCD description="Configured Example Application" name="ConfigApp" id="ConfigApp">

 <AD name="Title" id="title" required="true" type="String" default="Default Title" description="Title for the Application"/>

 </OCD>

 <Designate pid="ConfigApp">

 <Object ocdref="ConfigApp"/>

 </Designate>

</MetaData>

 

这只是一个具有Metatype命名空间的xml文件而已。对象类定义(OCD)元素表示配置。

属性

描述

id

在designate元素中引用的id

description

在编辑器中显示的很长的描述

name

在编辑器中显示的用户友好的名称

 

属性定义(AD)表示一个熟悉:

属性

描述

id

用于编程时获取属性

name

在编辑器中显示的用户友好的名称

description

在编辑器中显示的很长的描述

required

(true或no)决定这个熟悉是否必须被填写

type

(String | Long | Double | Float | Integer | Byte |Char |Boolean | Short)

default

如果属性值不存在时的默认值

 

3.4 测试类型化的配置

    现在我们使用mvn install命令构建configapp工程。将configapp.jar复制到Karafdeploy目录。Webconsole现在应该会在configurations标签上显示出ConfigApp元素,即使该配置不存在。

你可以点击edit按钮,应该可以如下所示的界面:


我们了一个良好的格式来编辑我们的配置,如果我们创建一个新的配置,也会得到默认的值。点击Save,将会在config admin服务中创建或更新这个配置,bundle也会对这个改变做出反应。

为了看大更大的示例,你可以编辑felix fileinstall bundle的配置,你会看到如下的界面:

 

3.5 总结

    在本教程中我们学习了如何使用Felix Webconsole编辑类型化和无类型化的配置,如何定义配置元数据。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值