forked from External/mage
[app-wiring-refactor]: Apply review comments:
- Add reference to original library in `FluentBuilder`. - Change `I<Name>` notation to `<Name>Impl` notation. - Move error config to test resources - Add comment with config instruction - Add config to the documentation
This commit is contained in:
parent
e8bb8ae24b
commit
6e3750d50a
41 changed files with 171 additions and 146 deletions
|
|
@ -1,118 +1,124 @@
|
|||
package mage.server;
|
||||
|
||||
import mage.server.draft.DraftManager;
|
||||
import mage.server.game.GameManager;
|
||||
import mage.server.game.GamesRoomManager;
|
||||
import mage.server.game.ReplayManager;
|
||||
import mage.server.draft.DraftManagerImpl;
|
||||
import mage.server.game.GameManagerImpl;
|
||||
import mage.server.game.GamesRoomManagerImpl;
|
||||
import mage.server.game.ReplayManagerImpl;
|
||||
import mage.server.managers.*;
|
||||
import mage.server.tournament.TournamentManager;
|
||||
import mage.server.util.ThreadExecutor;
|
||||
import mage.server.tournament.TournamentManagerImpl;
|
||||
import mage.server.util.ThreadExecutorImpl;
|
||||
|
||||
public class MainManagerFactory implements ManagerFactory {
|
||||
|
||||
private final IConfigSettings configSettings;
|
||||
private final IThreadExecutor threadExecutor;
|
||||
private final IChatManager chatManager;
|
||||
private final IDraftManager draftManager;
|
||||
private final IGameManager gameManager;
|
||||
private final IGamesRoomManager gamesRoomManager;
|
||||
private final IMailClient mailClient;
|
||||
private final IMailClient mailgunClient;
|
||||
private final IReplayManager replayManager;
|
||||
private final ISessionManager sessionManager;
|
||||
private final ITableManager tableManager;
|
||||
private final IUserManager userManager;
|
||||
private final ITournamentManager tournamentManager;
|
||||
private final ConfigSettings configSettings;
|
||||
private final ThreadExecutor threadExecutor;
|
||||
private final ChatManager chatManager;
|
||||
private final DraftManager draftManager;
|
||||
private final GameManager gameManager;
|
||||
private final GamesRoomManager gamesRoomManager;
|
||||
private final MailClient mailClient;
|
||||
private final MailClient mailgunClient;
|
||||
private final ReplayManager replayManager;
|
||||
private final SessionManager sessionManager;
|
||||
private final TableManager tableManager;
|
||||
private final UserManager userManager;
|
||||
private final TournamentManager tournamentManager;
|
||||
|
||||
|
||||
public MainManagerFactory(IConfigSettings configSettings) {
|
||||
public MainManagerFactory(ConfigSettings configSettings) {
|
||||
this.configSettings = configSettings;
|
||||
this.threadExecutor = new ThreadExecutor(configSettings);
|
||||
this.mailClient = new MailClient(configSettings);
|
||||
this.mailgunClient = new MailgunClient(configSettings);
|
||||
this.chatManager = new ChatManager(this);
|
||||
this.draftManager = new DraftManager(this);
|
||||
this.gameManager = new GameManager(this);
|
||||
this.replayManager = new ReplayManager(this);
|
||||
this.sessionManager = new SessionManager(this);
|
||||
this.tournamentManager = new TournamentManager(this);
|
||||
final GamesRoomManager gamesRoomManager = new GamesRoomManager(this);
|
||||
final TableManager tableManager = new TableManager(this);
|
||||
final UserManager userManager = new UserManager(this);
|
||||
// ThreadExecutorImpl, MailClientImpl and MailGunClient depend only on the config, so they are initialised first
|
||||
this.threadExecutor = new ThreadExecutorImpl(configSettings);
|
||||
this.mailClient = new MailClientImpl(configSettings);
|
||||
this.mailgunClient = new MailgunClientImpl(configSettings);
|
||||
// Chat, Draft, Game, Replay, Session and Tournament managers only require access to the ManagerFactory
|
||||
// but do not use them in initialisation
|
||||
this.chatManager = new ChatManagerImpl(this);
|
||||
this.draftManager = new DraftManagerImpl(this);
|
||||
this.gameManager = new GameManagerImpl(this);
|
||||
this.replayManager = new ReplayManagerImpl(this);
|
||||
this.sessionManager = new SessionManagerImpl(this);
|
||||
this.tournamentManager = new TournamentManagerImpl(this);
|
||||
// GamesRoom, Table, User managers depend on the ManagerFactory and have an initialisation block which is delayed
|
||||
// to the end of the construction
|
||||
final GamesRoomManagerImpl gamesRoomManager = new GamesRoomManagerImpl(this);
|
||||
final TableManagerImpl tableManager = new TableManagerImpl(this);
|
||||
final UserManagerImpl userManager = new UserManagerImpl(this);
|
||||
this.gamesRoomManager = gamesRoomManager;
|
||||
this.tableManager = tableManager;
|
||||
this.userManager = userManager;
|
||||
// execute the initialisation block of the relevant manager (they start the executor services)
|
||||
startThreads(gamesRoomManager, tableManager, userManager);
|
||||
}
|
||||
|
||||
private void startThreads(GamesRoomManager gamesRoomManager, TableManager tableManager, UserManager userManager) {
|
||||
private void startThreads(GamesRoomManagerImpl gamesRoomManager, TableManagerImpl tableManager, UserManagerImpl userManager) {
|
||||
userManager.init();
|
||||
tableManager.init();
|
||||
gamesRoomManager.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IChatManager chatManager() {
|
||||
public ChatManager chatManager() {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IDraftManager draftManager() {
|
||||
public DraftManager draftManager() {
|
||||
return draftManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGameManager gameManager() {
|
||||
public GameManager gameManager() {
|
||||
return gameManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGamesRoomManager gamesRoomManager() {
|
||||
public GamesRoomManager gamesRoomManager() {
|
||||
return gamesRoomManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMailClient mailClient() {
|
||||
public MailClient mailClient() {
|
||||
return mailClient;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMailClient mailgunClient() {
|
||||
public MailClient mailgunClient() {
|
||||
return mailgunClient;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IReplayManager replayManager() {
|
||||
public ReplayManager replayManager() {
|
||||
return replayManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ISessionManager sessionManager() {
|
||||
public SessionManager sessionManager() {
|
||||
return sessionManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITableManager tableManager() {
|
||||
public TableManager tableManager() {
|
||||
return tableManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IUserManager userManager() {
|
||||
public UserManager userManager() {
|
||||
return userManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConfigSettings configSettings() {
|
||||
public ConfigSettings configSettings() {
|
||||
return configSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IThreadExecutor threadExecutor() {
|
||||
public ThreadExecutor threadExecutor() {
|
||||
return threadExecutor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITournamentManager tournamentManager() {
|
||||
public TournamentManager tournamentManager() {
|
||||
return tournamentManager;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue