列出gogo shell中Config Admin的所有活动配置

时间:2015-07-04 22:09:55

标签: osgi apache-felix gogo-shell

我想通过gogo shell在屏幕上显示Configuration方法返回的org.osgi.service.cm.ConfigurationAdmin.listConfigurations列表。我尝试了以下内容:

g! _sref = $.context getServiceReference "org.osgi.service.cm.ConfigurationAdmin"
g! _srv = $.context getService $_sref
g! $_srv listConfigurations

但它失败并出现以下错误:

gogo: IllegalArgumentException: Cannot coerce listconfigurations() to any of [(String)]

这里的语法是什么?有可能吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用以下shell命令来实现它可能要容易得多:

https://bitbucket.org/pjtr/net.luminis.cmc

其中包括一个叫做的命令:

cm list

答案 1 :(得分:0)

listConfigurations方法采用String参数,这是一个过滤器。如果您只想要一个未过滤的列表,那么您可以传递null,例如:

$_srv listConfigurations null

这将返回一个Configuration对象数组,您可能希望使用each命令迭代它。

然而,对于Gogo脚本来说,这种事情很快变得过于复杂。例如,您并未在任何地方使用ungetService发布服务引用。在Java中构建可重用的Gogo命令作为声明性服务组件可能更好。