I have a simple web application, which includes a number of OSGi bundles.
Currently the osgi-framework-reference in the weblogic.xml only allows you to directly reference a single bundle, it does provide an option to specify a bundles-directory (see below) but nowhere in the documentation does it tell you whether this bundle directory is a file system location or a location inside the war file. (see below an example taken from the WebLogic developers guide.)
<osgi-framework-reference>
<name>test-osgi-frame</name>
<application-bundle-symbolic-name>com.oracle.weblogic.test.client</application-bundle-symbolic-name>
<bundles-directory>rashi/osgi-lib</bundles-directory>
</osgi-framework-reference>
http://docs.oracle.com/middleware/1212/wls/WLPRG/osgi.htm#WLPRG801
Any hint as to how this attribute is used would be greatly appreciated.
It would appear that the <application-bundle-symbolic-name> is merely used to allow WebLogic place the org.orgi.framework.Bundle instance for the reference symbolic name in the jndi tree.
I ignored the <bundles-directory> option and placed all my bundles in the WEB-INF/osgi-lib, from where they were correctly installed. Be sure to check the server.log to determine that all the bundles have been successfully STARTED, if merely INSTALLED this might indicate that the bundle/jar (especially 3rd party components) doesn't carry any OSGi meta-data in the MANIFEST.MF, in that case you may need to:
I kept the <application-bundle-symbolic-name>, note the bundle referenced in the <application-bundle-symbolic-name> element should be one that gives you access to all the services your WEB or Enterprise application needs from the OSGi Framework instance.