package org.gbif.checklistbank.ws.guice;
import org.gbif.checklistbank.config.MetricModule;
import org.gbif.checklistbank.index.guice.SearchModule;
import org.gbif.checklistbank.service.mybatis.guice.ChecklistBankServiceMyBatisModule;
import org.gbif.checklistbank.ws.resources.SpeciesResource;
import org.gbif.utils.file.properties.PropertiesUtil;
import org.gbif.ws.app.ConfUtils;
import org.gbif.ws.server.guice.GbifServletListener;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
import com.google.common.collect.Lists;
import com.google.inject.Injector;
import com.google.inject.Module;
public class ChecklistBankWsModule extends GbifServletListener {
public static final String APP_CONF_FILE = "checklistbank.properties";
public ChecklistBankWsModule() throws IOException {
this(PropertiesUtil.readFromFile(ConfUtils.getAppConfFile(APP_CONF_FILE)));
}
public ChecklistBankWsModule(Properties properties) {
super(properties, SpeciesResource.class.getPackage().getName(), false);
}
@Override
protected List<Module> getModules(Properties properties) {
List<Module> modules = Lists.newArrayList();
modules.add(new MetricModule(properties));
modules.add(new ChecklistBankServiceMyBatisModule(properties));
modules.add(new SearchModule(properties, true));
return modules;
}
@Override
/**
* Only overriden to be able to test it in ChecklistBankWsModuleTest, doesnt do anything new.
*/
protected final Injector getInjector() {
return super.getInjector();
}
}