我正在跑步
- SerivceMix 6.1.2
- 骆驼2.16.3
- PaxExam 4.10
- @Configure将activeMQ 5.12.3嵌入ServiceMix作为一项功能,以模拟外部功能
当我测试具有AMQ端点的Camel路由并且测试方法完成时,AMQ会比Camel路由更早地关闭。导致路由端点抛出很多丢失的连接异常,尤其是在进行飞行时。 AMQ的起始级别比我的路线低得多。我如何确保关机顺序: -路线 -amq, -服务组合 ?
指定让您的骆驼路线(或测试捆绑包)取决于ActiveMQ代理服务。当捆绑软件被关闭时,它们将以相反的依赖关系顺序关闭,并且代理(不依赖于您的任何编码服务)应该在最后关闭。
<bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory"
init-method="start" destroy-method="stop">
...
</bean>
已更新:
这使OSGi可以基于显式依赖性与任意性(您现在拥有的)或数字顺序约定确定性地配置正确的启动和关闭。
<camelContext depends-on="activemq-broker">
</camelContext>
<reference id="activemq-broker"
availability="mandatory"
timeout="5000"
interface="org.osgi.service.cm.ManagedService"
filter="(service.pid=org.apache.servicemix.activemq.service)"/>