管理对OSGI捆绑包的访问

管理对OSGI捆绑包的访问,osgi,Osgi,如何控制对捆绑包的访问。我有一组包,它们通过MANIFEST.MF中的导出来公开包。公开的包应该只在我的包集合中使用。不允许其他外部捆绑包使用“导入包”使用这些包 有什么办法可以施加这些限制吗?首先,其他人导入您的包是否有问题?除非您正在导出没有人应该看到的实现(在这种情况下,您无论如何都应该重新考虑分区),否则通常没有问题,因为有些包可能存在,而其他包可能存在,也可能不存在 如果您确定需要隐藏某些包,那么没有简单的方法可以做到这一点。我想到的一些事情是 使用a限制程序包的可见性(仅适用于4.

如何控制对捆绑包的访问。我有一组包,它们通过MANIFEST.MF中的导出来公开包。公开的包应该只在我的包集合中使用。不允许其他外部捆绑包使用“导入包”使用这些包


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

首先,其他人导入您的包是否有问题?除非您正在导出没有人应该看到的实现(在这种情况下,您无论如何都应该重新考虑分区),否则通常没有问题,因为有些包可能存在,而其他包可能存在,也可能不存在

如果您确定需要隐藏某些包,那么没有简单的方法可以做到这一点。我想到的一些事情是

  • 使用a限制程序包的可见性(仅适用于4.3)
  • 在中运行捆绑包,并且只将您希望从该框架共享的包公开给主机

但是,这两种方法都非常苛刻,除非您正在构建自己的应用程序服务器,否则我不会使用它们。

您可以查看OSGi安全性(2.Security Layer OSGi Core Spec),以管理对各种资源(捆绑包、包、服务等)的限制


在您的情况下,您可以设置对捆绑包的导入/导出操作。其他捆绑包将没有任何权限导入您的包。

您能解释一下为什么不希望其他捆绑包能够导入您的包吗?