Улучшена передача контекста (не нарушается принцип ответственности), добавлено логгирование, переработан Boot который собирает все древо приложения, улучшен протокол

This commit is contained in:
RoyceDa
2026-02-03 20:11:37 +02:00
parent 695ec9c520
commit cb5cafb8f6
12 changed files with 188 additions and 106 deletions

View File

@@ -1,44 +1,81 @@
package com.rosetta.im;
import com.rosetta.im.event.EventManager;
import com.rosetta.im.executors.Executor0Handshake;
import com.rosetta.im.listeners.ServerStopListener;
import com.rosetta.im.logger.Logger;
import com.rosetta.im.logger.enums.Color;
import com.rosetta.im.logger.enums.LogLevel;
import com.rosetta.im.packet.Packet0Handshake;
import io.orprotocol.packet.PacketManager;
/**
* Boot отвечает за инициализацию всех пакетов и их обработчиков,
* а так же событий приложения. Этот Boot отвечает за приложение, а не за протокол.
*/
public class Boot {
private PacketManager packetManager;
private EventManager eventManager;
private Logger logger;
public Boot() {
this.packetManager = new PacketManager();
this.eventManager = new EventManager();
this.logger = new Logger(LogLevel.INFO);
}
/**
* Получить менеджер пакетов приложения
* @return PacketManager
*/
public PacketManager getPacketManager() {
return this.packetManager;
}
/**
* Инициализация всех пакетов и их обработчиков
* Получить менеджер событий приложения
* @return EventManager
*/
public EventManager getEventManager() {
return this.eventManager;
}
/**
* Получить логгер приложения
* @return Logger
*/
public Logger getLogger() {
return this.logger;
}
/**
* Регистрация пакетов, обработчиков, событий приложения
* @return Boot
*/
public Boot bootstrap() {
this.registerAllPackets();
this.registerAllExecutors();
this.registerAllEvents();
this.printBootMessage();
return this;
}
private void registerAllEvents() {
this.eventManager.registerListener(new ServerStopListener(this.logger));
}
private void registerAllPackets() {
this.packetManager.registerPacket(0, Packet0Handshake.class);
}
private void registerAllExecutors() {
this.packetManager.registerExecutor(0, Executor0Handshake.class);
this.packetManager.registerExecutor(0, new Executor0Handshake(this.eventManager));
}
private void printBootMessage() {
System.out.println("Bootstrapping completed. All packets and executors are registered.");
System.out.println("Total packets registered: " + this.packetManager.totalPackets());
System.out.println("Total executors registered: " + this.packetManager.totalExecutors());
this.logger.log(LogLevel.INFO, Color.GREEN + "Boot successful complete");
}
}