第三方库和类装入
由于 OSGi 使用多个类装入程序,所以,要在 Eclipse 中透明地使用可扩展/可配置第三方库,就需要使用称为“伙伴装入”的 Eclipse 特有机制。此机制允许 bundle 在它的先决条件中找不到类或资源时指示它需要辅助才能装入类或资源。注意,我们将需要查找由用户代码(例如 log4j 记录器机制和冬眠等等)提供的类或资源的库称为“可扩展库”。
要指示需要进行“伙伴装入”,bundle 必须修改它的清单并添加下面这个头:
Eclipse-BuddyPolicy: <value>
<value> 指的是用来查找类的策略。支持的策略如下所示:
- registered - 指示伙伴机制将查询已向其注册的 bundle。愿意向特定 bundle 注册的 bundle 在它们的清单中添加“Eclipse-RegisterBuddy: <bundleSymbolicName>”。
- dependent - 指示将在 bundle 的所有依赖项中以传递方式查找类/资源;
- global - 指示将在导出的包的全局池中查找类/资源;
- app - 指示将查询应用程序类装入程序;
- ext - 指示将查询扩展类装入程序;
- boot - 指示将查询引导类装入程序。