throws ConfigurationException {
final CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new SystemConfiguration());
String propertyFile = config.getString(propertiesFileKey);
if (propertyFile != null) {
config.addConfiguration(new PropertiesConfiguration(propertyFile));
}
List<Field> fields = new ArrayList<Field>();
for (Class<?> settings : settingsArg) {
fields.addAll(Arrays.asList(settings.getDeclaredFields()));