Jahia and OSGi

November 14, 2023

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 application/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!