Администратор экзамена и настройки PAX

Я пытаюсь настроить тест для пакета с помощью PAX Exam.

В методе, аннотированном Configuration, я устанавливаю различные пакеты, которые должны быть загружены перед запуском моего теста. Однако тестируемый пакет также ожидает, что конфигурация будет предоставлена ​​через службу Config Admin.

Вне Eclipse я использую фреймворк Apache Felix с Config Admin и File Install, чтобы пакеты + конфигурации загружались автоматически.

Как предоставить информацию о конфигурации с помощью экзамена PAX?

Спасибо, Микаэль.


person Mickael Marrache    schedule 19.02.2014    source источник


Ответы (2)


Это довольно просто, просто позвольте службе администрирования конфигурации быть внедренной в ваш тест и настройте ее в своем методе установки. Рабочий пример для этого можно найти в веб-проекте pax. Взгляните на этот ссылка

person Achim Nierbeck    schedule 19.02.2014
comment
Привет @AchimNierbeck, этот пример кажется хорошим и очень помог мне, но если я хочу внедрить службу (используя DS), которую я разработал, и эта служба берет конфигурацию из файла, то как я могу предоставить конфигурацию с помощью ConfigurationAdmin в PAX-Exam ? - person Umesh Rajani; 27.02.2017

К сожалению, eclipse не публикует свои пакеты в репозитории maven. Что вы можете сделать, так это поискать их в центральном репозитории maven или, если вы не найдете их, установить необходимые пакеты, поставляемые с вашей Eclipse IDE, внутри вашего локального репозитория maven, а затем обратиться к ним в конфигурации pax-exam. то же самое:

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"));
}
person Cristiano    schedule 20.02.2014