OSGi
OSGi is a Java technology that provides a dynamic module system and service platform. It enables developers to break applications into bundles, which are Java ARchives with extra metadata defined in their manifest. Bundles declare dependencies through headers such as Import-Package and Export-Package and may require other bundles. The OSGi framework runs these bundles, resolves their dependencies, and offers a service registry where bundles can publish and consume services. Services are plain Java objects registered under a service interface and discovered by other bundles at runtime.
The alliance behind OSGi, originally the Open Services Gateway Initiative, standardizes the core framework and service
Architecturally, an OSGi environment consists of the framework, a set of bundles, and the services they expose.
OSGi has a broad ecosystem of reference implementations and runtimes, such as Equinox, Apache Felix, and Knopflerfish.