"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const rabbit_1 = require("./rabbit"); const wrapperManager_1 = require("./wrapperManager"); const wrapperRegistry_1 = require("./wrapperRegistry"); const serverRegistry_1 = require("./serverRegistry"); const serverManager_1 = require("./serverManager"); const portManager_1 = require("./portManager"); const serverStatusManager_1 = require("./serverStatusManager"); const serverLifecycle_1 = require("./serverLifecycle"); const logger_1 = require("./logger"); const logger = (0, logger_1.getLogger)("Index"); const wrapperRegistry = new wrapperRegistry_1.WrapperRegistry(); const serverRegistry = new serverRegistry_1.ServerRegistry(); const portManager = new portManager_1.PortManager(); async function main() { const rabbit = new rabbit_1.Rabbit(); await rabbit.connect(); logger.info("RabbitMQ-Verbindung hergestellt"); await portManager.init(); logger.info("Persistenz initialisiert"); await wrapperRegistry.init(); logger.debug("WrapperRegistry initialisiert"); await serverRegistry.init(); logger.debug("ServerRegistry initialisiert"); const wrapperManager = new wrapperManager_1.WrapperManager(rabbit, wrapperRegistry, serverRegistry); await wrapperManager.start(); logger.info("WrapperManager erfolgreich gestartet"); const serverManager = new serverManager_1.ServerManager(rabbit, wrapperRegistry, serverRegistry, portManager); const lifecycle = new serverLifecycle_1.ServerLifecycle(serverRegistry, serverManager); lifecycle.start(); logger.debug("ServerLifecycle gestartet"); const statusManager = new serverStatusManager_1.ServerStatusManager(rabbit, serverRegistry); await statusManager.start(); logger.info("Manager gestartet"); } main();