
com.yammer.dropwizard.config.ConfigurationFactory Maven / Gradle / Ivy
package com.yammer.dropwizard.config;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.yammer.dropwizard.json.Json;
import com.yammer.dropwizard.validation.Validator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.Module;
import org.codehaus.jackson.node.ObjectNode;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
public class ConfigurationFactory {
private static final String PROPERTY_PREFIX = "dw.";
public static ConfigurationFactory forClass(Class klass, Validator validator, Iterable modules) {
return new ConfigurationFactory(klass, validator, modules);
}
public static ConfigurationFactory forClass(Class klass, Validator validator) {
return new ConfigurationFactory(klass, validator, ImmutableList.of());
}
private final Class klass;
private final Json json;
private final Validator validator;
private ConfigurationFactory(Class klass, Validator validator, Iterable modules) {
this.klass = klass;
this.json = new Json();
json.enable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
for (Module module : modules) {
json.registerModule(module);
}
this.validator = validator;
}
public T build(File file) throws IOException, ConfigurationException {
final JsonNode node = parse(file);
for (Map.Entry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy