在Equinox中运行Arquillian

时间:2012-04-19 16:36:05

标签: osgi equinox apache-felix jboss-arquillian

我正在尝试在OSGi容器中运行集成测试,即嵌入在Eclipse中的Equinox容器,在远程模式下使用Arquillian。

我关注了JBoss OSGI网站上的the instructions。所以我开始通过添加这些文物(我通过浏览jboss repository找到)来配置我的目标平台:

<dependency>
    <groupId>org.jboss.arquillian.osgi</groupId>
    <artifactId>arquillian-osgi-bundle</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <!-- required by arquillian-osgi-bundle -->
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.1.0.GA</version>
</dependency>
<dependency>
    <groupId>org.jboss.osgi.jmx</groupId>
    <artifactId>jboss-osgi-jmx</artifactId>
    <version>1.0.10</version>
</dependency>

当我尝试验证捆绑包时,我从jboss-osgi-jmx获得了不满意的导入:

  • 缺少包org.jboss.osgi.spi.capability
  • 缺少包org.jboss.osgi.testing

显然,丢失的包属于这些工件(再次通过浏览找到):

<!-- osgi.spi : this one ?-->
<dependency>
    <groupId>org.jboss.osgi</groupId>
    <artifactId>jboss-osgi-spi</artifactId>
    <version>1.0.10</version>
</dependency>
<!-- or that one ?-->
<dependency>
    <groupId>org.jboss.osgi.spi</groupId>
    <artifactId>jbosgi-spi</artifactId>
    <version>1.0.26</version>
</dependency>

<!-- osgi.testing -->
<dependency>
    <groupId>org.jboss.osgi.testing</groupId>
    <artifactId>jbosgi-testing</artifactId>
    <version>1.0.4</version>
</dependency>

但这些工件都不是OSGI包,所以我坚持使用未解决的约束。

所以,我的问题是:

  • 我搞砸了我的平台配置吗?
  • 是否有人已成功在非JBoss中使用Arquillian 远程模式的osgi容器(普通的felix会没问题)?

1 个答案:

答案 0 :(得分:-1)

尝试Pax Exam进行OSGi测试。您可以选择嵌入式和远程使用(Native Test Container vs. Forked Test Container)。

Pax Exam支持所有符合OSGI 4.2标准的框架。它在Equinox,Felix和Knopflerfish上进行了回归测试。