package codeine;
import codeine.api.NodeAggregator;
import codeine.command_peer.CommandFileWriter;
import codeine.command_peer.NodesCommandExecuterProvider;
import codeine.configuration.IConfigurationManager;
import codeine.jsons.global.GlobalConfigurationJsonStore;
import codeine.jsons.peer_status.PeersProjectsStatus;
import codeine.jsons.peer_status.PeersProjectsStatusInWebServer;
import codeine.permissions.GroupsManager;
import codeine.permissions.PluginGroupsManager;
import codeine.plugins.DiscardOldCommandsPlugin;
import codeine.servlet.PrepareForShutdown;
import codeine.servlet.UsersManager;
import codeine.servlet.manage_statistics.ManageStatisticsCollector;
import codeine.statistics.IMonitorStatistics;
import codeine.statistics.MonitorsStatisticsProvider;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
public class WebServerModule extends AbstractModule
{
@Override
protected void configure()
{
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(PrepareForShutdown.class).in(Scopes.SINGLETON);
bind(ManageStatisticsCollector.class).in(Scopes.SINGLETON);
bind(GroupsManager.class).to(PluginGroupsManager.class).in(Scopes.SINGLETON);
bind(DiscardOldCommandsPlugin.class).in(Scopes.SINGLETON);
bind(CommandFileWriter.class).in(Scopes.SINGLETON);
bind(NodeAggregator.class).in(Scopes.SINGLETON);
bind(GlobalConfigurationJsonStore.class).in(Scopes.SINGLETON);
}
}