在NetBeans平台之外使用Lookup API
|
我正在尝试评估我们的商店是否适合在没有整个NetBeans平台的情况下使用NetBeans Lookup API。
到目前为止,我设法用以下代码创建了一个项目:
for (SomeInterface si : Lookup.getDefault().lookupAll(SomeInterface.class)) {
si.doSomething();
}
我还创建了几个其他项目,每个项目都有一个实现SomeInterface的AnImplementation类,以及随附的文件META-INF / services / path.to.SomeInterface,其中包含引用该类的行(例如\“ other.path.to.AnImplementation \“)。
当我将这些实现项目添加到NetBeans IDE中主项目的库(依赖项)时,它可以正常工作,并且我可以从这两种实现中看到doSomething()的连续结果。
我的问题是如何在不引用主项目中的子项目的情况下进行该工作;子项目的jar不会在构建时包含在主项目的生成jar中,并且可以随意添加或删除它们,从而更改上述代码的结果。
如果我没有记错的话,这就是Lookup API文档中公布的行为。
提前致谢。
编辑:就目前而言,我的结论是,如果没有NetBeans平台(或OSGi吗?),就无法检测启动时存在的服务提供商。您需要在类路径中引用它们的jar,从而在启动之前对其进行标识。随时证明我错了。
没有找到相关结果
已邀请:
2 个回复
寇剩
焙恍挝厂熄
的用途有限。