Apache Felix: framework and subprojects
Apache Felix is a compact OSGi Framework implementation and a family of independently released OSGi service implementations and tools.
Framework
Felix Framework 7.0.5 implements the OSGi R8 framework APIs. It can
run as a distribution or be embedded via the standard
FrameworkFactory API.
ServiceLoader.load(FrameworkFactory.class)
.findFirst()
.orElseThrow()
.newFramework(configuration);Embedding makes lifecycle, storage, parent class loading, and shutdown your application's responsibility.
Important subprojects
- SCR: Declarative Services runtime;
- Config Admin, Metatype, Configurator;
- Gogo runtime/shell/commands;
- FileInstall: watches deployment/configuration directories;
- Web Console: administrative plugins;
- HTTP Service and Whiteboard implementations;
- Resolver, Repository, Converter, Health Checks, Inventory;
- Maven Bundle Plugin and related bnd-based build tooling.
Versions are independent. Read each release note and compatibility range.
Framework configuration
Choose a persistent storage directory, storage-clean policy, beginning start level, boot delegation only when required, and system package extras only for deliberate host APIs. Give each test/runtime its own cache.
Gogo
Gogo is a small command processor used by Felix and Karaf. Commands are OSGi services, so they appear dynamically. Treat remote shells as privileged administration surfaces.
Web Console
Web Console is excellent for inspecting bundles, services, DS, configuration, logs, and system information. In production, require strong authentication, TLS, network restriction, auditing, and plugin minimization.
Feynman check
Felix Framework is the engine. Felix SCR, HTTP, ConfigAdmin, and Web Console are replaceable parts installed around it. Explain why their versions differ.