我正在开发一个 OSGi 平台,遵循 Pattern Extender 的思想。有一个模块叫Kernel,它验证其他模块的安装,验证Manifest中的元数据。该模块为其他模块提供了一系列接口,并为每个模块注册了 Web 服务和其他内容。我想知道的是是否可以控制依赖模块中HttpServices等服务的使用。内核,在特定的 url 中记录 Servlet 和服务。我喜欢,没有一个模块是平台的一部分,例如 HttpService。这可能吗?
谢谢
如果您想限制捆绑软件查找特定服务的能力,您可以实现一些服务挂钩。见http://www.osgi.org/javadoc/r5/core/index.html?org/osgi/framework/hooks/service/package-summary.html
您可能希望实现一个 FindHook 来防止 bundle 能够在服务注册表中找到服务,还需要实现一个 EventListenerHook 来防止 bundle 接收有关该服务的服务事件。这两个将阻止捆绑包正常获取绑定到服务所必需的服务的 ServiceReference。