JBoss.orgCommunity Documentation
The JBoss OSGi Runtime is an OSGi container onto which components, services and applications can be deployed.
Preconfigured profiles, contain OSGi bundles that logically work together. A profile can be bootstrapped either as a standalone server or embedded in some other environment. With a startup time of less than 600ms, the runtime can be easily be bootstrapped from within plain JUnit4 test cases.
The JBoss OSGi Runtime has an integration layer for the underlying OSGi framework.
Through local and remote management capabilities the JBoss OSGi Runtime can be provisioned with new or updated bundles. Similar to JBossAS it supports hot-deployment by dropping bundles into the 'deploy' folder. Management of the runtime is provided through a Web Console
Integration of the JBoss Microcontainer as an OSGi service allows you to write your applications in a POJO programming model without much "pollution" of OSGi specific API - the MC will do the wiring for you. JBoss OSGi also comes with an implementation of Blueprint Service (RFC-124), which standardizes this idea and takes it further.
Great care has been taken about testability of deployed components and services. The Husky Test Framework allows you to write plain JUnit tests that do not have a requirement on a specific test runner nor need to extend any specific test base class. Access to the Runtime has been abstracted sufficiently that you can run the same test case against an embedded (bootstrapped from within the test case) as well as a remote instance of the Runtime. You can run your OSGi tests from Maven, Ant, Eclipse or any other test runner that supports JUnit4.
JBoss OSGi Runtime can be installed as a JBossAS service with abstractions of the available OSGi services. The JBoss OSGi testsuite in fact runs the same set of tests against the embedded, standalone and AS integrated instance of the Runtime
The current JBoss OSGi Runtime feature set includes
A runtime profile is a collection bundles that logically work together. The OSGi runtime configuration contains the list of bundles that are installed/started automatically. You can start create you own profile by setting up a new directory with your specific set of bundles.
A runtime profile can be started using the -c comand line option.
$ bin/run.sh -c minimal
=========================================================================
JBossOSGi Bootstrap Environment
OSGI_HOME: /home/tdiesler/jboss-osgi-1.0.0.Beta8/runtime
JAVA: /usr/java/jdk1.6/bin/java
JAVA_OPTS: -Dprogram.name=run.sh ...
=========================================================================
12:10:48,713 INFO JBossOSGi Core Framework - 1.0.0.Alpha4
12:10:49,089 INFO Bundle INSTALLED: Bundle{osgi.cmpn:4.2.0.200908310645}
12:10:49,188 INFO Bundle INSTALLED: Bundle{org.apache.felix.log:1.0.0}
12:10:49,282 INFO Bundle INSTALLED: Bundle{jboss-osgi-common:1.0.2}
12:10:49,313 INFO Bundle INSTALLED: Bundle{jboss-osgi-hotdeploy:1.0.2}
12:10:50,047 INFO Bundle STARTED: Bundle{jboss-osgi-hotdeploy:1.0.2}
12:10:50,050 INFO Bundle STARTED: Bundle{system.bundle:0.0.0}
12:10:50,076 INFO JBossOSGi Runtime booted in 1.357sec
Minimal ProfileThe 'minimal' profile provides logging and hot-deployment.
The following bundles are installed:
The 'default' profile extends the 'minimal' profile by JNDI and JMX
These additional bundles are installed:
The 'web' profile extends the 'default' profile by HttpService and ConfigAdmin
These additional bundles are installed:
The 'all' profile extends the 'web' profile by SAX/DOM, JAXB, JBossXB and Microcontainer
These additional bundles are installed: