您的位置:首页 > Web前端

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

2017-10-08 08:42 816 查看
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文件到Karaf的etc目录。现在它应该在上面的列表中被列出。如果你点击edit按钮,你会看到下面的界面:

 


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

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

 

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

为了实现这个功能,我们需要在bundle中创建一个OSGi的Metatype信息。只需要在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复制到Karaf的deploy目录。Webconsole现在应该会在configurations标签上显示出ConfigApp元素,即使该配置不存在。

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



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

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

 

3.5 总结
    在本教程中我们学习了如何使用Felix Webconsole编辑类型化和无类型化的配置,如何定义配置元数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐