Hello, everyone!
I have successfully managed to start Apache Felix from code and register an own Bundle.
Following relation between OSGI-projects is needed:
[OsgiInterface]
-- provides interfaces.
[OsgiModuleA]
-- (bundle) provides an implementation of those interfaces.
knows [OsgiInterface]
[OsgiUsage]
-- makes use of one or more bundle.
knows [OsgiInterface]
and [OsgiModuleA]
Now I have problems registering a service which implements an interface.
I would guess that my entries in manifest.mf
files are wrong.
Additional information
It would be very kind, if someone could look at the code in my previous question
Let me refer to this question:
I tried to create a third project OsgiInterfaces, which provides an interface SomeInterface
in the package interfaces
. This project is known by both OsgiModuleA and OsgiUsage.
OsgiModuleA: manifest.mf
has now an additional value interfaces
for the entry Import-Package:
. Furthermore, there is an instance of SomeInterface
provided to the activator.
When the bundle is started, an NoClassDefFoundError
occurs: the interface SomeInterface
is not known.
EDIT:
Now, that the error is fixed, I can tell, that the most important part was:
map.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,
"my.interfaces; version=1.0.0");
Without this, I got ClassCastException
.