package com.hubspot.blazar.guice;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.multibindings.Multibinder;
import com.hubspot.blazar.discovery.BuildConfigDiscovery;
import com.hubspot.blazar.discovery.ModuleDiscovery;
import com.hubspot.blazar.util.BlazarServiceLoader;
public class DiscoveryModule implements Module {
private static final Logger LOG = LoggerFactory.getLogger(DiscoveryModule.class);
@Override
public void configure(Binder binder) {
Multibinder<ModuleDiscovery> multibinder = Multibinder.newSetBinder(binder, ModuleDiscovery.class);
for (Class<? extends ModuleDiscovery> moduleDiscovery : BlazarServiceLoader.load(ModuleDiscovery.class)) {
LOG.info("Found module discovery: " + moduleDiscovery);
multibinder.addBinding().to(moduleDiscovery);
}
binder.bind(BuildConfigDiscovery.class);
}
}