295.2. SCR 中的 AbstractCamelRunner 的生命周期
-
当组件的配置策略和强制引用满足 SCR 调用
activate ()时。这会通过以下调用链创建并设置 CamelContext:activate ()prepare ()createCamelContext ()setupPropertiesComponent ()configure ()setupCamelContext ()。最后,上下文在AbstractCamelRunner.START_DELAY中定义的延迟后启动,并带有runWithDelay ()。 -
当在 OSGi 中注册 Camel 组件(组件
Resolver服务,为了准确)时,SCR 调用会得到CamelComponent'(),其重新排期/延迟了 CamelContext 的相同AbstractCamelRunner.START_DELAY。这种效果会导致 CamelContext 等待,直到载入所有 Camel 组件或它们之间有足够差距。同一逻辑将告知在我们添加更多 Camel 组件时再次尝试失败的 CamelContext。 -
当 Camel 组件取消注册时,SCR 调用
lostCamelComponent'()'。此调用什么都不做。 -
当导致调用
激活()的要求之一时,SCR 将调用deactivate ()。这将关闭 CamelContext。
在(non-OSGi)单元测试中,您应该使用 prepare () run () stop 而不是 () activate () 进行更精细的控制。另外,这使我们可以避免在测试中可能出现 SCR 特定操作。