2011-06-07 99 views
3

如何控制对我的捆绑包的访问。我有一套软件包,通过导出MANIFEST.MF。暴露的软件包应该只在我的软件包中使用。不应该允许其他外部软件包使用“导入软件包”来使用这些软件包。管理对OSGI捆绑包的访问

有什么办法可以强加这些限制吗?

+1

你能解释为什么你不希望其他软件包能够导入你的软件包吗? – 2011-06-07 10:06:53

回答

3

首先,是否有人导入你的软件包?除非你正在导出没有人应该看到的实现(在这种情况下,你应该重新考虑你的分区),通常没有什么问题可以让一些软件包围绕其他人导入或不导入。

如果您确定需要隐藏某些软件包,则没有简单的方法。浮现在脑海中有些东西是

  • 使用ResolverHook来限制你的包的可见性(仅限4.3),
  • embedded framework运行你的包,只露出你想从共享包该框架给主持人。

但是,这些都是相当笨手笨脚的方法,我会远离他们,除非你是例如。建立你自己的应用服务器。

4

你可以看看OSGi Security(2.Security Layer OSGi Core Spec)来管理对各种资源(包,包,服务等)的限制。

在你的情况下,你可以设置PackagePermission IMPORT/EXPORT操作到你的包。其他软件包将无权导入您的软件包。