ConcurrentHashMap<String, GenericConfiguration> configs = extensionConfiguration.getSubConfigs();
for (Entry<String, GenericConfiguration> e : configs.entrySet()) {
String indexExtensionName = e.getKey();
IndexExtension instance = null;
CRConfig extensionConfig = new CRConfigUtil(e.getValue(), INDEX_EXTENSIONS_KEY + "."
+ indexExtensionName);
try {
Class<?> extensionClassGeneric = Class
.forName(extensionConfig.getString(INDEX_EXTENSION_CLASS_KEY));
Class<? extends IndexExtension> extensionClass = extensionClassGeneric
.asSubclass(IndexExtension.class);
Constructor<? extends IndexExtension> extensionConstructor = extensionClass
.getDeclaredConstructor(new Class[] { CRConfig.class, IndexLocation.class });
instance = extensionConstructor.newInstance(new Object[] { extensionConfig, this });