Jahia and OSGi
October 8, 2024
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 |
For administrators
- Modules can be fully undeployed at run-time (including module libraries)
- No writing inside web a
pplication/modules
directory 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
For developers
- Undeploy and redeploy any module code changes without restarting Jahia server
- Deploy-free Coding for JSPs, static files (CSS, Javascript, images, ...) loads updates directly from module source code!
- 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!