在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?
Posted
技术标签:
【中文标题】在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?【英文标题】:In the reference implementation of the JAX-RS Whiteboard for OSGi, what calls createWhiteboard(..)?在用于 OSGi 的 JAX-RS 白板的参考实现中,什么调用 createWhiteboard(..)? 【发布时间】:2021-01-09 09:51:09 【问题描述】:OSGi 的 JAX-RS 白板的参考实现称为Aries JAX-RS Whiteboard。
我的问题是,Whiteboard.class
的工厂方法是如何以及何时被调用的?
public static Whiteboard createWhiteboard(
Dictionary<String, ?> configuration)
return new Whiteboard(configuration);
例如,如果我将 jar 放入 Apache Felix 实例中?
我在整个项目中搜索createWhiteboard
符号,但没有找到任何调用它的东西。我知道是 OSGi 运行时执行此操作,但是如何,在哪里?
【问题讨论】:
【参考方案1】:好的,所以我回答了我自己的问题。
Whiteboard.class
由实现标准化 OSGi 回调接口的单独“激活器”类调用,BundleActivator
:CxfJaxrsBundleActivator
line 76。这类似于程序的entry point。然后,在line 105,调用runWhiteboard
方法,它抽象出对createWhiteboard
的调用,使用的方法可能比从line 198 开始要复杂得多。
堆栈中按自下而上顺序的主要调用将是:
createWhiteboard(configuration)
runWhiteboard(bundleContext, configuration)
start(BundleContext bundleContext) throws Exception
【讨论】:
以上是关于在用于 OSGi 的 JAX-RS 白板的参考实现中,啥调用 createWhiteboard(..)?的主要内容,如果未能解决你的问题,请参考以下文章