in src/main/java/com/googlesource/gerrit/plugins/verifystatus/GlobalModule.java [52:101]
protected void configure() {
bind(CapabilityDefinition.class)
.annotatedWith(Exports.named(AccessCiDatabaseCapability.ID))
.to(AccessCiDatabaseCapability.class);
bind(CapabilityDefinition.class)
.annotatedWith(Exports.named(SaveReportCapability.ID))
.to(SaveReportCapability.class);
List<Module> modules = new ArrayList<>();
modules.add(
new LifecycleModule() {
@Override
protected void configure() {
// For bootstrap we need to retrieve the ds type first
CiDataSourceTypeGuesser guesser =
injector
.createChildInjector(new CiDataSourceModule())
.getInstance(Key.get(CiDataSourceTypeGuesser.class));
// For the ds type we retrieve the underlying implementation
CiDataSourceType dst =
injector
.createChildInjector(new CiDataSourceModule())
.getInstance(
Key.get(
CiDataSourceType.class, Names.named(guesser.guessDataSourceType())));
// Bind the type to the retrieved instance
bind(CiDataSourceType.class).toInstance(dst);
bind(CiDataSourceProvider.Context.class)
.toInstance(CiDataSourceProvider.Context.MULTI_USER);
bind(Key.get(DataSource.class, Names.named("CiDb")))
.toProvider(CiDataSourceProvider.class)
.in(SINGLETON);
listener().to(CiDataSourceProvider.class);
}
});
modules.add(new CiDatabaseModule());
for (Module module : modules) {
install(module);
}
install(
new RestApiModule() {
@Override
protected void configure() {
get(CONFIG_KIND, "config").to(GetConfig.class);
put(CONFIG_KIND, "config").to(PutConfig.class);
get(REVISION_KIND, "verifications").to(GetVerifications.class);
post(REVISION_KIND, "verifications").to(PostVerification.class);
}
});
}