【问题标题】:How to start and shut down a second OSGi container in pax exam如何在 pax 考试中启动和关闭第二个 OSGi 容器
【发布时间】:2016-10-24 02:58:31
【问题描述】:

我正在使用 pax 考试测试远程服务。

为此,我需要启动两个容器。一个本地运行我的测试调用消费者,另一个运行服务、Aries RSA 和 zookeeper。

我设法通过在@Configuration 方法中调用它来启动外部容器。这似乎不属于那里,但它是我发现的唯一在 OSGi 之外执行代码的地方。

见https://github.com/apache/aries-rsa/blob/master/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/tcp/TestRoundTrip.java#L47-L51

现在我需要在测试关闭时调用第二个钩子,然后我可以关闭容器。 @After 或 @AfterClass 似乎都不能在 OSGi 中运行。

我也很高兴有一种更简洁的方式来启动外部容器,因为我觉得在 @Configuration 中添加它并不合适。

【问题讨论】:

    标签: osgi pax-exam


    【解决方案1】:

    我现在找到了解决方案,但我仍然希望有一些开箱即用的方法。

    我创建了一个新的 Pax 跑步者 TwoContainerPaxExam。它会查找带有 @ServerConfiguration 注释的第二个配置,在测试之前启动它并在测试之后将其关闭。

    所以我的测试现在看起来像这样TestRoundTrip。如果没有开箱即用的东西,我会尝试将此解决方案放入 pax 考试中。

    【讨论】:

      猜你喜欢
      • 2015-03-18
      • 2014-03-17
      • 2015-05-22
      • 2013-02-10
      • 2014-11-18
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      相关资源
      最近更新 更多