class DefaultIndexProviderMap extends LifecycleAdapter implements IndexProviderMap {

    @Override
    public void init()
    {
        Iterable<? extends IndexProvider> indexProviders = dependencies.resolveTypeDependencies( IndexProvider.class );
        for ( IndexProvider provider : indexProviders )
        {
            IndexProviderDescriptor providerDescriptor = provider.getProviderDescriptor();
            requireNonNull( providerDescriptor );
            IndexProvider existing = put( providerDescriptor, provider );
            if ( existing != null )
            {
                throw new IllegalArgumentException( "Tried to load multiple schema index providers with the same provider descriptor " +
                        providerDescriptor + ". First loaded " + existing + " then " + provider );
            }
        }
        initDefaultProvider();
    }

    public  DefaultIndexProviderMap( DependencyResolver dependencies, Config config );

}