2012-12-04 83 views
5

當您將命令輸入到gogo shell時,它會首先在默認範圍內查找該命令的匹配項。你如何配置這個默認範圍是什麼?例如,如果使用gogo啓動Felix框架,它將使用felix範圍作爲默認值。但是,如果啓動equinox 3.8.1,現在使用felix shell作爲默認值,則默認使用equinox範圍。如何更改Felix gogo shell中的默認命令範圍?

主要刺激的是,當我鍵入:

g! help 

我從equinox:help的結果,而不是felix:help,所以我想使felix範圍默認。

是否有OSGi框架屬性來配置此?

+0

據我所知,除了發現_first_命令被執行之外,並沒有在任何地方指定此搜索。不幸的是,這也不是OSGi規範的一部分,所以也沒有關於這個東西的詳細文檔。我想這是每個人開始制定自己的標準時會發生的事情。你可以在這裏用felix項目提交一個bug:http://issues.apache.org/jira/browse/Felix我認爲它們相對有響應。 – drozzy

+0

你是否使用SSH或Telnet連接到gogo shell,甚至透明?看起來像這裏,equinox默認默認使用EQUINOX_SCOPE。 https://github.com/eclipse/rt.equinox.bundles/search?q=EQUINOX_SCOPE&type=Code 修補包似乎很簡單,但它看起來可能會限制Equinox如何使用felix CommandSession這兩者都沒有提供使用默認範圍的可配置方式。 –

回答

3

gogo shell在啓動時會嘗試查找啓動腳本。默認情況下,它會查找該文件夾中(相對於你的啓動目錄):

etc/gosh_profile 

如果它沒有找到一個腳本在那裏,(內org.apache.felix.gogo.shell)的默認腳本時,其中包含以下行:

SCOPE = gogo:* 

因此,要更改默認範圍,請提供您自己的腳本。