这些OSGi命令真正做了什么?

时间:2011-12-07 05:52:04

标签: osgi equinox apache-felix

使用Felix / Equinox,以下内容有什么作用?

osgi:install
osgi:refresh
osgi:resolve
osgi:restart
osgi:update

是否有某个状态机图或更简洁的文档?

2 个答案:

答案 0 :(得分:19)

最好的文档是OSGi Core Specification。以下部分和页码参考规范的第4.3版(2011年4月)。

osgi:install表示从文件或流安装捆绑包,并映射到API中的BundleContext.installBundle方法。请参阅第90页的第4.4.3节。

osgi:refresh执行“刷新包”操作,允许在安装或更新一组包后重新连接导出/导入。例如,当前连接到包的特定导出器的捆绑包可以重新连接到导出相同包的新安装的捆绑包。见第7.6.1节,第148页。

osgi:resolve类似于刷新,但它只连接当前处于INSTALLED状态的bundle。即它将重新连接属于RESOLVED状态的捆绑包的现有电线。

osgi:restart停止并重新启动特定的捆绑包。这不会导致更新bundle实现,它只是停止并启动。见第49页第4.4.5节和第95页第4.4.7节。

osgi:update请求更新单个包(即从其原始位置重新加载)。这可能涉及停止,重新解析和启动捆绑包,具体取决于更新前的状态。见第95页第4.4.9节。

所有OSGi捆绑状态的状态图在第90页的4.4.2节(图4.4)中。

答案 1 :(得分:2)

有关Felix shell命令的详细信息,您可以在http://svn.apache.org/repos/asf/felix/trunk/shell/src/main/java/org/apache/felix/shell/impl/查看其源代码 - 其中大多数都是简短的。