Untangle charging station info from charging station template data
[e-mobility-charging-stations-simulator.git] / src / charging-station / Bootstrap.ts
index 3701b1706616522a7e23f9cc129ddffabb8c2891..54fcb6dba0712bd75bf485ac5774c22ccb493fc2 100644 (file)
@@ -6,13 +6,16 @@ import {
   ChargingStationWorkerMessageEvents,
 } from '../types/ChargingStationWorker';
 
+import { AbstractUIServer } from './ui-server/AbstractUIServer';
+import { ApplicationProtocol } from '../types/UIProtocol';
+import { ChargingStationUtils } from './ChargingStationUtils';
 import Configuration from '../utils/Configuration';
 import { StationTemplateUrl } from '../types/ConfigurationData';
 import Statistics from '../types/Statistics';
 import { Storage } from '../performance/storage/Storage';
 import { StorageFactory } from '../performance/storage/StorageFactory';
+import UIServerFactory from './ui-server/UIServerFactory';
 import { UIServiceUtils } from './ui-server/ui-services/UIServiceUtils';
-import UIWebSocketServer from './ui-server/UIWebSocketServer';
 import Utils from '../utils/Utils';
 import WorkerAbstract from '../worker/WorkerAbstract';
 import WorkerFactory from '../worker/WorkerFactory';
@@ -24,7 +27,7 @@ import { version } from '../../package.json';
 export default class Bootstrap {
   private static instance: Bootstrap | null = null;
   private workerImplementation: WorkerAbstract<ChargingStationWorkerData> | null = null;
-  private readonly uiServer!: UIWebSocketServer;
+  private readonly uiServer!: AbstractUIServer;
   private readonly storage!: Storage;
   private numberOfChargingStations: number;
   private readonly version: string = version;
@@ -40,7 +43,7 @@ export default class Bootstrap {
     );
     this.initWorkerImplementation();
     Configuration.getUIServer().enabled &&
-      (this.uiServer = new UIWebSocketServer({
+      (this.uiServer = UIServerFactory.getUIServerImplementation(ApplicationProtocol.WS, {
         ...Configuration.getUIServer().options,
         handleProtocols: UIServiceUtils.handleProtocols,
       }));
@@ -100,11 +103,13 @@ export default class Bootstrap {
               `Charging stations simulator ${
                 this.version
               } started with ${this.numberOfChargingStations.toString()} charging station(s) and ${
-                Utils.workerDynamicPoolInUse()
+                ChargingStationUtils.workerDynamicPoolInUse()
                   ? `${Configuration.getWorkerPoolMinSize().toString()}/`
                   : ''
               }${this.workerImplementation.size}${
-                Utils.workerPoolInUse() ? `/${Configuration.getWorkerPoolMaxSize().toString()}` : ''
+                ChargingStationUtils.workerPoolInUse()
+                  ? `/${Configuration.getWorkerPoolMaxSize().toString()}`
+                  : ''
               } worker(s) concurrently running in '${Configuration.getWorkerProcess()}' mode${
                 this.workerImplementation.maxElementsPerWorker
                   ? ` (${this.workerImplementation.maxElementsPerWorker} charging station(s) per worker)`