如何使用Gogo Shell更改OSGI中的默认命令范围,并为自定义命令执行自定义范围



我有一个在春分上运行的OSGI环境。为了执行自定义comands,我使用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写入外壳。这可能是吗?

感谢您的帮助: - )

您可以自己制作自己的命令,因为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

最新更新