A different (better) route would be to use CDI (Contexts and Dependency Injection) and utilize @Inject annotations instead of @Resource and @EJB for injecting the resources.
For this to work, there must be a 'beans.xml' file present. According to the docs:
An application that uses CDI must have a file named beans.xml. The file can be completely empty (it has content only in certain limited situations), but it must be present.
To make this possible in our bundles, added a 'META-INF' directory to the 'src' dir, with an empty 'beans.xml' file underneath.
Then in our bnd definition file (which builds the OSGi bundle for us), we define the resource to be included in our bundle:
Include-Resource: META-INF/beans.xml=src/META-INF/beans.xml
With this in place, we no longer need to reference the 'com.sun.ejb.containers, com.sun.ejb.spi.io' libraries in our 'Import-Package' entry (since we are not using the ManagedBean annotation directly).
We can now replace all the @EJB and @Resource calls to @Inject.