This bundle contains the UserAdmin service implementation and SPI as well as the extender logic that creates the UserAdmin service instances whenever a new StorageProvider service is detected.
UserAdmin service implementation
The UserAdmin service is a straightforward implementation of the OSGi UserAdmin specification. View source code here.
It forwards all data manipulation requests to a configurable StorageProvider service and provides tools to manage data across StorageProvider implementations.
The StorageProvider SPI is an interface that must be implemented by storage provider services in order to be detected by the UserAdmin bundles extender logic.
The Pax UserAdmin project contains two default StorageProvider implementations:
The preferences provider bundle contains an implementation that uses the OSGi Preferences service as backend storage.
The LDAP provider bundle contains an implementation that uses a LDAP server as backend storage.
The extender pattern is implemented in the bundle activator using the OSGi ServiceTrackerCustomizer: every time a service implementing the StorageProvider interface is detected a new UserAdmin service is created unless a UserAdmin for that provider type already exists.