@Override
public ConfigurationFactory build(ConfigurationSource configurationSource) throws ConfigurationException {
TypeCoercingProperties props = LaunchConfigsInternal.consolidatePropertiesFromGlobalProperties(
StandardSystemProperty.USER_DIR.value(), classLoader, configurationSource.getOverrideProperties(), configurationSource.getDefaultProperties());
try {
Class<ConfigurationFactory> configurationFactoryClass = props.asClass(CONFIGURATION_FACTORY, ConfigurationFactory.class);
if (configurationFactoryClass != null) {
return configurationFactoryClass.newInstance();
}
} catch (ReflectiveOperationException ex) {
throw new ConfigurationException("Could not instantiate specified configuration factory class " + props.asString(CONFIGURATION_FACTORY, null), ex);