package codeine; import codeine.CodeineDirectoryModule.MysqlHostSelectorProvider; import codeine.command_peer.NodesCommandExecuterProvider; import codeine.configuration.IConfigurationManager; import codeine.db.IStatusDatabaseConnector; import codeine.db.ProjectsConfigurationConnector; import codeine.db.mysql.MysqlHostSelector; import codeine.db.mysql.connectors.ProjectsConfigurationMysqlConnector; import codeine.db.mysql.connectors.StatusMysqlConnector; import codeine.jsons.peer_status.PeersProjectsStatus; import codeine.jsons.peer_status.PeersProjectsStatusInWebServer; import codeine.servlet.PrepareForShutdown; import codeine.servlet.UsersManager; import codeine.statistics.IMonitorStatistics; import codeine.statistics.MonitorsStatisticsProvider; import codeine.version.VersionsMapping; import codeine.version.VersionsMappingProvider; import codeine.version.VersionsMappingStore; import com.google.inject.AbstractModule; import com.google.inject.Scopes; public class ServerModule extends AbstractModule { @Override protected void configure() { bind(ProjectsConfigurationConnector.class).to(ProjectsConfigurationMysqlConnector.class); bind(IStatusDatabaseConnector.class).to(StatusMysqlConnector.class); bind(MysqlHostSelector.class).toProvider(MysqlHostSelectorProvider.class).in(Scopes.SINGLETON); bind(PeersProjectsStatus.class).to(PeersProjectsStatusInWebServer.class).in(Scopes.SINGLETON); bind(ConfigurationManagerServer.class).in(Scopes.SINGLETON); bind(IConfigurationManager.class).to(ConfigurationManagerServer.class); bind(ProjectConfigurationInPeerUpdater.class).in(Scopes.SINGLETON); bind(UsersManager.class).in(Scopes.SINGLETON); bind(NodesCommandExecuterProvider.class).in(Scopes.SINGLETON); bind(IMonitorStatistics.class).toProvider(MonitorsStatisticsProvider.class).in(Scopes.SINGLETON); bind(VersionsMappingStore.class).in(Scopes.SINGLETON); bind(VersionsMapping.class).toProvider(VersionsMappingProvider.class).in(Scopes.SINGLETON); bind(PrepareForShutdown.class).in(Scopes.SINGLETON); } }