{
checkState(!initialized, "Already initialized");
initialized = true;
// initialize configuration
ConfigurationFactoryBuilder builder = new ConfigurationFactoryBuilder();
if (applicationDefaults != null) {
builder = builder.withApplicationDefaults(applicationDefaults);
}
if (requiredConfigurationProperties == null) {
log.info("Loading configuration");
builder = builder
.withFile(System.getProperty("config"))
.withSystemProperties();
}
else {
builder = builder.withRequiredProperties(requiredConfigurationProperties);
}
ConfigurationFactory configurationFactory = builder.build();
if (logging != null) {
// initialize logging
log.info("Initializing logging");
LoggingConfiguration configuration = configurationFactory.build(LoggingConfiguration.class);