Jahia and OSGi
February 2, 2022
Jahia uses OSGi to package and distribute Jahia modules. This means that you can now dynamically deploy and undeploy modules into a Jahia installation, making it easier to manage modules during both development and production phases.
How is it better?
This table show the main differences in traditional extensions development in non-OSGi (competing) systems and Jahia OSGi platform.
|Non OSGi platforms||Jahia (with OSGi)|
|Class or library deployment||Requires web app restart||No restart needed|
|Module is "exploded" on deployment||Yes||No|
|Quick changes to source files don't require deployment||Only works in exploded directory, not module's source||Yes|
|External libraries are deployed into WEB-INF/lib and exposed to all other modules||Yes||No|
|Undeployment cleans up everything immediately||No||Yes|
|Modules depending on others cannot be deployed without their dependency||No||Yes|
|Modules started/stopped after installation||No||Yes|
- Modules can be fully undeployed at run-time (including module libraries)
- No writing inside web a
pplication/modulesdirectory at deployment
- Deploy directly modules from public or private stores
- Tools for module administration & debugging
- Only declared resources are web accessible (closed by default)
- And more
- Undeploy and redeploy any module code changes without restarting Jahia server
- Embed your own versions of libraries if the libraries bundled with Jahia don’t fit your needs
- Expose new services or use services registered by other modules
- New tools to help with OSGi development
- And a lot more!