---
title: "Apache Felix: framework and subprojects"
chapter: "12"
---

# 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.

```java
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.
