in src/main/java/com/microsoft/dhalion/HealthManager.java [81:127]
private HealthManager(CommandLine cmd) throws ClassNotFoundException {
this.configDir = getOptionValue(cmd, CliArgs.CONFIG_DIR);
AbstractModule module = new AbstractModule() {
@Override
protected void configure() {
bind(String.class)
.annotatedWith(Names.named(CONF_DIR))
.toInstance(configDir);
}
};
injector = Guice.createInjector(module);
//Read healthmgr.yaml and create a hashmap with the configurations
ConfigBuilder confBuilder = new ConfigBuilder(configDir);
confBuilder.loadConfig(Paths.get(configDir, (String) Key.HEALTHMGR_CONF.getDefault()));
Map<String, Object> conf = confBuilder.getKeyValues();
ConfigBuilder cb = injector.getInstance(ConfigBuilder.class);
cb.loadConfig(conf).loadPolicyConf();
config = cb.build();
//Read the MetricsProvider class
String metricsProviderClass = (String) conf.get(Key.METRICS_PROVIDER_CLASS.value());
Class<MetricsProvider> mpClass
= (Class<MetricsProvider>) this.getClass().getClassLoader().loadClass(metricsProviderClass);
injector = injector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
bind(Config.class).toInstance(config);
bind(mpClass).in(Singleton.class);
}
});
metricsProvider = injector.getInstance(mpClass);
injector = injector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
bind(MetricsProvider.class).toInstance(metricsProvider);
}
});
initializePolicies();
}