There are two kinds of OSGi container/frameworks. One, represented by Apache Felix, might be characterized
as a "pure" OSGi implementation. The other, represented by Eclipse RCP and the equinox framework, is charactereized by
including support to enable "legacy" frameworks (including UIMA) be used in some circumstances, by exploiting
Eclipse-buddy manifest directives.
If users decide to use an OSGi container that supports the Eclipse-buddy directive, then it is possible to create
bundle structures where the annotators do not contain uimaj-core jars, and a common uimaj-ep-runtime bundle contains
the common UIMA framework jars used by the application.
To do this, each annotator bundle will need to have the directive in the MANIFEST.MF
Eclipse-RegisterBuddy: org.apache.uima.runtime
; furthermore, the bundle
uimaj-ep-runtime (having the symbolic name org.apache.uima.runtime) must be the bundle in the container
that will provide the UIMA framework.
Currently, the experimental OSGi builds do not provide this directive.
Apache Felix has stated that they do not support these "buddy" extensions,
as a matter of principle.