Pax Exam: пакет подготовки со всеми зависимостями

В настоящее время, чтобы настроить конфигурацию Pax Exam, мне нужно включить все зависимости. Например. что-то типа

@Configuration
public Option[] сonfig() {
    MavenArtifactProvisionOption commonsDbcp = mavenBundle("commons-dbcp",
            "commons-dbcp");
    MavenArtifactProvisionOption commonsPool = mavenBundle("commons-pool",
            "commons-pool");
    ...
    return options(
            felix(),
            provision(commonsDbcp, commonsPool));
}

Но поскольку commons-dbcp зависит от commons-pool, это похоже на дублирование информации. Может ли Pax Exam определить, что требуется commons-dbcp, не добавляя его явно?


person Alexey Romanov    schedule 25.04.2012    source источник


Ответы (1)


Не совсем...

  • Не каждая зависимость пакета OSGi от Maven является пакетом OSGi.
  • Зависимость может быть только для интерфейса, и во время выполнения вместо этого вы хотите предоставить пакет реализации.

Явное перечисление всех пакетов — единственный безопасный способ инициализации вашей инфраструктуры. По крайней мере, вы можете использовать метод опции versionAsInPom(), чтобы избежать дублирования версий артефакта.

person Harald Wellmann    schedule 02.06.2012