在 Equinox 中运行 Arquillian

Posted

技术标签:

【中文标题】在 Equinox 中运行 Arquillian【英文标题】:Running Arquillian in Equinox 【发布时间】:2012-05-01 05:43:14 【问题描述】:

我正在尝试在 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】:

尝试Pax Exam 进行 OSGi 测试。您可以在嵌入式和远程使用(本机测试容器与分叉测试容器)之间进行选择。

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

【讨论】:

我知道 Pax Exam,但我想专门评估 Arquillian 发帖者专门询问了 Arquillian。

以上是关于在 Equinox 中运行 Arquillian的主要内容,如果未能解决你的问题,请参考以下文章

Persistence.xml 和 OSGi (Equinox)

如何设置捆绑开发环境(Eclipse Equinox Maven)

关闭 OSGi 容器的最佳方法(特别是 Equinox)

如何在 Equinox 中获取捆绑包的类加载器?

在OSGI容器Equinox中嵌入HttpServer

CQRS架构下Equinox开源项目分析