Моя цель - удалить зависимости от OSGi из моих пакетов. Я использую felix (v 4.2.1) в качестве реализации и запускаю его встраиваемым. Я устанавливаю пакет org.apache.felix.scr
(v. 1.6.2), чтобы иметь поддержку среды выполнения сервисных компонентов. Но когда я бегу
ServiceReference ref = bundleContext().getServiceReference(ScrService.class.getName());
ScrService s = (ScrService) bundleContext().getService(ref);
Я получаю ClassCastException: org.apache.felix.scr.impl.ComponentRegistry cannot be cast to org.apache.felix.scr.ScrService
.
Хорошо. Я изменю системные пакеты.
config.put(Constants.FRAMEWORK_SYSTEMPACKAGES, "org.apache.felix.scr");
Теперь я получаю
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.felix.scr [1]: Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=org.osgi.framework)(version>=1.4.0)(!(version>=2.0.0)))
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
at com.copyright.rup.communications.felix.Felix.addBundle(Felix.java:86)
... 28 more
Как я могу это решить?