Module RelayOSGi runtime fieldbook
OSGi · Dynamic Module SystemsView Markdown source

Configuration Admin, Metatype, and Configurator

Configuration Admin (ConfigAdmin) stores and delivers configuration dictionaries to managed services and DS components.

PID and factory PID

A PID identifies one configuration. A factory PID creates many named configurations and therefore many component instances. Keep PIDs stable like an API; renaming them breaks operations and upgrades.

Typed configuration

@ObjectClassDefinition(name = "Charger connector")
public @interface ConnectorConfig {
  String endpoint();
  int timeout_ms() default 3000;
  boolean enabled() default true;
}

Metatype annotations describe configuration, types, defaults, labels, and validation hints. DS can map configuration directly to this interface.

Update behavior

An update may modify an active component, deactivate/reactivate it, or create a new factory instance. Understand the component's modified method and whether a half-applied configuration is possible.

Configurator

The OSGi Configurator specification defines JSON resources that seed configurations with ranking and ownership rules. This is useful for immutable application assembly while still allowing controlled runtime overrides.

Karaf configuration

Karaf commonly materializes ConfigAdmin data through files under etc/, shell commands, environment/property substitution, or external provisioning. FileInstall watches changes. Treat configuration files as managed state: version, secure, back up, and test their update semantics.

Secrets

ConfigAdmin is not automatically a secret vault. Avoid printing secret values in Web Console, shell output, logs, support snapshots, or source control. Resolve short-lived secrets through a dedicated service where feasible.

Feynman check

Configuration is input to a component, not the component itself. Explain why a configuration update may make one component disappear and another appear.

Module RelayIndependent study material · verify runtime details in official project documentation