Regarding _SearchConfiguration_, I am wondering whether _getProvidedServices_ makes really sense. Is it even used? IMO it makes more sense to provide services explicitly via _getIndexManagerFactory_ and _getClassLoaderService_. Internally we would then manage them as a set of provided services (compared to services discovered via the _ServiceLoader_ mechanism)