Я пытаюсь создать тест с помощью Pax Exam, где некоторые из пакетов, которые я загружаю для теста, зависят от пакета «org.apache.felix.ipojo».Загрузка ipojo Maven Bundle в Pax Exam Test
Если бы я выйти из линии ЗАГРУЗКА этот пакет в конфигурации экзамен Pax, например:
@Configuration
public Option[] config() throws MalformedURLException{
return options(
junitBundles(),
BUNDLES OTHER THAN(org.apache.felix.ipojo),
...
Тогда я получаю сообщение об ошибке, указывающее, что этот пакет является недостающим зависимость:
ERROR: Bundle com.N.A [35] Error starting mvn:com.N/com.N.A (org.osgi.framework.BundleException: Unresolved constraint in bundle com.N.A [35]: Unable to resolve 35.0: missing requirement [35.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.ipojo)(version>=1.8.0)))
org.osgi.framework.BundleException: Unresolved constraint in bundle com.N.A [35]: Unable to resolve 35.0: missing requirement [35.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.ipojo)(version>=1.8.0))
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3826)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
at java.lang.Thread.run(Thread.java:662)
Однако, если добавить строку, которая включает в себя это:
@Configuration
public Option[] config() throws MalformedURLException{
return options(
junitBundles(),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo")
...
Я получаю сообщение indicatin g a ClassCastException, которое, как я полагаю, связано с тем, что пакет ipojo встроен в Felix.
ERROR: Bundle org.apache.felix.ipojo [34] Error starting mvn:org.apache.felix/org.apache.felix.ipojo (org.osgi.framework.BundleException: Activator start error in bundle org.apache.felix.ipojo [34].)
java.lang.ClassCastException: org.apache.felix.ipojo.Extender cannot be cast to org.osgi.framework.BundleActivator
at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4177)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:1972)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1895)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
at java.lang.Thread.run(Thread.java:662)
Я использую Felix и JUint4TestRunner в качестве бегуна.
Как я могу получить доступ к этой зависимости без конфликта?
Вы решили это еще? Помог ли Климент в вашем случае? Я сталкиваюсь с аналогичными проблемами при попытке интеграции pax-exam и iPojo, и я отчаянно ищу рабочий пример. – benjamin