...
- Dynamic Module System for Java (with accompanying service portfolios)
- Provides a mechanism to break an application into modules for which:
- dependencies are explicitly defined and must be provided
- the services provided by the module are explicitely explicitly defined
- versions of dependencies and services are understood
- configuration and other services are managed by the framework
- Applications run inside of an OSGi container framework which performs all of the dependency checking
- Three major interoperable containersframeworks: Equinox, Apache Felix, Knopflerfish
- Many containers available which provide OSGi framework services using a selection of these frameworks: Apache Karaf, JBoss AS, Glassfish, IBM WebSphere, Eclipse Virgo, etc... virtually all JEE containers now contain OSGi frameworks as their kernel.
- Dynamic
- Applications/modules can be installed, uninstalled, started, and stopped on-the-fly
- An OSGi bundle is simply a standard Java jar with the addition of a Manifest which specifies the services that the module provides as well as the modules dependencies (among other things)
...
- Allows for the creation of OSGi bundles through the use of Spring xml
- Provides a way to support OSGi without your code needing to be aware of OSGi (or Spring)
- OSGi services can be injected into application-wired Spring-beans
- Application services can be deployed as OSGi services
- Especially useful if you intend to take advantage of Spring for other purposes within your application
Tools
- PAX Construct provides scripts which handle some of the setup/configuration of an OSGi project
- Maven plugins for creating bundle artifacts
- JUnit integration test support
Misc
- Web Application support
- Tomcat
- Jetty
- Bundle configuration (fragments)
References
- http://www.osgi.org/download/r4v41/r4.core.pdf
- http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html
- http://www.javaworld.com/javaworld/jw-04-2008/jw-04-osgi2.html
- http://static.springsource.org/osgi/docs/1.2.0/reference/html-single/
- http://www.springsource.com/repository/app/bundle
- http://www.parleys.com/display/PARLEYS/Home#slide=13;talk=13041700;title=OSGi%20with%20Spring
- http://wiki.ops4j.org/display/ops4j/Open+Participation+Software+for+Java