如何使用GoGo Shell更改OSGi中的默认命令范围并为自定义命令强制实施自定义范围?

问题描述 投票:2回答:1

我有一个在equinox上运行的OSGi环境。为了执行自定义命令,我使用gogo shell(org.apache.felix.gogo.command,org.apache.felix.gogo.shell)。

默认情况下,命令范围设置为equinox,因此help命令不会打印任何内容。如果我使用felix:help它会打印所有可用的命令。

如何将默认命令范围切换到felix?有没有办法给系统一个启动脚本来设置它?

另外,如何强制用户使用我在组件属性中引入的作用域,如下所示:

property = {
        "osgi.command.scope=myScope",
        "osgi.command.function=myFunc"
    }

=>我希望用户必须将myScope:myFunc写入shell。无论如何这可能吗?

谢谢你的帮助 :-)

osgi apache-felix equinox gogo-shell
1个回答
2
投票

你可以制作自己的命令,因为Gogo有关闭。

Welcome to Apache Felix Gogo

g! 
g! h = { felix:help }
felix:help
g! h
felix:bundlelevel
felix:cd
felix:frameworklevel 
...

g! $h
felix:help

您可以在./etc/gosh_profile中放置一个启动脚本,其中.是当前的工作目录。

SCOPE变量设置用于搜索范围的冒号分隔路径。

g! SCOPE='felix:*'

Gogo比我认识的每个人都认为更强大。 Gogo基本上可以用shell语法调用任何Java函数。你可以在这里看到一些例子:https://v2archive.enroute.osgi.org/appnotes/gogo.html

© www.soinside.com 2019 - 2024. All rights reserved.