2013-07-17 42 views
0

我正在尝试开发一个可由其用户配置的应用程序。我需要通过安装/更新/停止/卸载软件包来完成配置。所有这些当然都应该在应用程序运行时动态完成。Apache Felix FileInstall适用于应用程序的动态配置吗?

我找到了一个很好的框架,它是Apache Felix FileInstall,它提供了一个目录,当你在目录中添加包文件(更新和删除包类似)时,它似乎添加了一个包。

但我可以看到,这种方法不适用于我的情况。我需要在目录中有捆绑包,但要停止或甚至通过我的应用程序卸载它们。我想在适当的时候安装它们。这是我期待我的应用程序的配置完成。

我试图实现Apache FileInstall的支持吗?我对这个框架有任何错误的假设吗?如果Apache FileInstall不够用,其他可能的方式会对我有什么帮助?谢谢。

回答

2

为此,您不需要FileInstall,只需使用OSGi API即可。您特别提到了安装,更新,停止和卸载;这些都是用下面的API调用分别支持:

  • BundleContext.installBundle
  • Bundle.update
  • Bundle.stop
  • Bundle.uninstall

顺便说一下这些正是由FileInstall打电话来实现相同的方法,其基于目录的捆绑管理。

+0

你是说我不需要在运行应用程序之前最初添加我的包?我的意思是,我可以让我的应用程序安装一个新的软件包,或使用这些方法动态替换现有的软件包? –

+0

是的。当然,管理其他软件包的软件包*需要最初安装并启动。我们通常将这种捆绑称为“管理代理”。 FileInstall也是一个管理代理。 –

+0

谢谢。我一直在寻找很多如何使用这些方法以及将它们放在代码中的位置?你有任何可以引导我的链接吗? –

相关问题