18,6 → 18,8 |
|
public class Configurator |
{ |
public static final int CONFIG_VERSION = 1; |
|
private static final Logger logger = Logger.getLogger(Configurator.class); |
|
private InputStream defaultStream; |
33,6 → 35,17 |
this.userStream = userStream; |
} |
|
private void checkConfigVersion(String name, ConfigRoot config) |
throws ModelException |
{ |
if(config.getVersionMajor() == 0) |
throw new ModelException("Cannot get version of " + name + " config"); |
|
if(config.getVersionMajor() != CONFIG_VERSION) |
throw new ModelException("Version " + CONFIG_VERSION + " of " + name |
+ " config is required but " + config.getVersionMajor() + " found"); |
} |
|
public void configure() |
throws ModelException |
{ |
41,9 → 54,11 |
// get config |
ConfigRoot defaultConfig = readConfig(defaultStream); |
logger.debug("Default:\n" + defaultConfig); |
checkConfigVersion("default", defaultConfig); |
|
ConfigRoot userConfig = readConfig(userStream); |
logger.debug("User:\n" + userConfig); |
checkConfigVersion("user", userConfig); |
|
config = defaultConfig.merge(userConfig); |
logger.debug("Result:\n" + config); |