Map<String, String> configToUse = suppliedConfig;
// Check db config properties for provider
String provider = null;
IndexImplementation indexProvider = null;
if ( configToUse == null )
{
provider = getDefaultProvider( indexName, dbConfig );
indexProvider = getIndexProvider( provider );
configToUse = indexProvider.fillInDefaults( MapUtil.stringMap( KEY_INDEX_PROVIDER, provider ) );
}
else
{
provider = configToUse.get( KEY_INDEX_PROVIDER );
provider = provider == null ? getDefaultProvider( indexName, dbConfig ) : provider;
indexProvider = getIndexProvider( provider );
}
configToUse = injectDefaultProviderIfMissing( cls, indexName, dbConfig, configToUse );
// Do they match (stored vs. supplied)?
if ( storedConfig != null )
{
if ( suppliedConfig != null && !indexProvider.configMatches( storedConfig, suppliedConfig ) )
{
throw new IllegalArgumentException( "Supplied index configuration:\n" +
suppliedConfig + "\ndoesn't match stored config in a valid way:\n" + storedConfig +
"\nfor '" + indexName + "'" );
}