Apache Felix
The OSGi framework hosts the runtime’s bundles and services. Project extensions join that framework rather than creating a separate application stack.
INSIDE THE RUNTIME
ContentLIBRE brings its runtime together in one operating-system process. The boundaries are explicit, so your extensions have somewhere clear to belong.
The diagram combines the common foundation in the architecture and README with the typed API described as built in API-DESIGN.md. It does not imply clustering or a second publication repository.
THE FOUNDATION
The OSGi framework hosts the runtime’s bundles and services. Project extensions join that framework rather than creating a separate application stack.
Resources, servlet resolution and HTL rendering connect content to HTTP. The stock content surface remains distinct from the typed API.
One repository holds the content. Repository permissions remain important even when a request is admitted at the HTTP boundary.
| Assembly | Repository store | Important boundary |
|---|---|---|
| libre-tar | SegmentNodeStore / TAR | The default assembly described in the project documents. |
| libre-mongo | DocumentNodeStore / MongoDB | A separate aggregate; validate its boot and operating behavior against the selected release. |
| libre-base | No NodeStore | A downstream foundation for choosing storage; not a runnable storage configuration on its own. |
Do not combine the TAR and Mongo storage features. Moving an existing deployment between them requires transferring and validating repository and binary content. It is not a configuration toggle.
Feature analysis checks package imports, capabilities, duplicate bundle names and repoinit syntax.
A feature can resolve without every service activating. A cold boot and integration tests answer a different question from the analyzer.
Installed code is trusted. OSGi modularity is not a sandbox, and fewer bundles alone are not a security guarantee.
Keep additions explicit, document their dependencies and verify the resulting assembly.