2014-02-19 72 views
1

我正在嘗試爲使用PAX考試的軟件包進行測試。PAX考試和配置管理員

在註解爲Configuration的方法中,我設置了運行測試之前必須加載的不同捆綁包。但是,被測試的捆綁包也期望通過配置管理服務來配置配置。

在Eclipse外部,我使用配置管理員和文件安裝的Apache Felix框架,以便自動加載bundles +配置。

如何使用PAX考試提供配置信息?

謝謝,邁克爾 -

回答

2

這很簡單,只要讓配置管理服務注入到你的測驗,並在你的設置方法配置。這個工作示例可以在pax web項目中找到。 看一看這個link

+0

你好@AchimNierbeck,這個例子似乎很好,幫了我很多,但如果我要注入服務(使用DS),我已經開發和服務需要從配置文件,然後如何在PAX-Exam中使用ConfigurationAdmin提供配置? –

0

不幸的是eclipse不會將它們的包發佈到maven的回購庫中。你可以做的是在maven central repo上搜索它們,或者如果你沒有找到任何在你的本地maven倉庫中安裝隨Eclipse IDE一起提供的必需包,然後在pax-exam配置中引用它們。 samething這樣的:

protected static Option[] baseConfiguration(Option... extraOptions) { 
    Option[] options = options(
      cleanCaches(), 
      when(isEquinox()).useOptions(
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.osgi.services", 
          "3.4.0.v20131120-1328").startLevel(1), 
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.equinox.ds", 
          "1.4.200.v20131126-2331").startLevel(2), 
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.equinox.cm", 
          "1.1.0.v20131021-1936").startLevel(2), .... 

public static boolean isEquinox() { 
    return "equinox".equals(System.getProperty("pax.exam.framework")); 
} 

public static boolean isFelix() { 
    return "felix".equals(System.getProperty("pax.exam.framework")); 
}