GlassFish V3 comes with an OSGI Web Container, which provides the support for development of hybrid applications.
A hybrid application is a combination of Java EE and OSGI. More information about developing a simple hybrid application can be found here.
This blog entry describes about a REST based Web Application Bundle to control OSGI Framework.
Steps for the setup:
1. Download and install latest nightly build of glassfish-v3 from here.
2. Start the server using : asadmin start-domain
3. Download the OSGI Web Container bundle form here.
Install it by copying the downloaded jar file to glassfishv3/glassfish/domains/domain1/autodeploy-bundles directory.
4. Get the ready to install REST based OSGI Framework controller OR
The complete netbeans project is available here. The project built with
netbeans generates a plain war file, to make it an OSGI bundle, we need
to update the MANIFEST.MF entry. Update the generated war by using the following command:
jar -uvfm REST_WAB.war MANIFEST.MF
5. Install the application by copying it to
glassfishv3/glassfish/domains/domain1/autodeploy-bundles directory.
Server log will indicate the success of installation.
6. Use your browser to access the URL : http://localhost:8080/REST_WAB
Click on View Bundles to get the status of modules in GlassFish
v3. The framework controller allows for the install/uninstall,
start/stop of the OSGI bundles.
Getting the OSGI Framework Bundle Context in a REST Application:
-- get the servlet context as:
@Context ServletContext ctx;
-- getting the org.osgi.framework.BundleContext:
BundleContext bundleContext = (BundleContext) ctx.getAttribute("osgi-bundlecontext");
The bundleContext can be used for running the OSGI Framework related commands.




