295.2. SCR 中的 AbstractCamelRunner 的生命周期


  1. 当组件的配置策略和强制引用满足 SCR 调用 activate () 时。这会通过以下调用链创建并设置 CamelContext: activate () prepare () createCamelContext () setupPropertiesComponent () configure () setupCamelContext ()。最后,上下文被调度到在 AbstractCamelRunner.START_DELAY 中使用 runWithDelay () 定义的延迟后启动。
  2. 当 Camel 组件(ComponentResolver 服务、要准确)注册时,SCR 调用 gotCamelComponent'()',后者通过同样的 AbstractCamelRunner.START_DELAY 进一步调度/延迟 CamelContext 启动。这样做会导致 CamelContext 等待所有 Camel 组件被加载,或者它们之间有足够差距。相同的逻辑会导致在我们添加更多 Camel 组件时再次尝试失败到启动 CamelContext。
  3. 当 Camel 组件取消注册 SCR 调用 lostCamelComponent'()' 时。这个调用什么都不做。
  4. 当导致调用 activate () 的要求之一时,SCR 将调用 deactivate ()。这将关闭 CamelContext。

在(非 OSGi)单元测试中,您应该使用 prepare () run () stop () 而不是 activate () deactivate () 来进行更精细的控制。另外,这允许我们在测试中避免可能的 SCR 特定操作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat