...
- 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)
...