package art.servers; import art.library.gui.FlatGUI; import art.library.gui.flat.FlatDialog; import art.library.interop.serialization.Serialization; import art.servers.gost.access.Shared; import art.servers.gost.access.configuration.Configuration; import art.servers.gost.access.configuration.ConfigurationDetail; import art.servers.gost.access.configuration.ConfigurationDetail_Cleaner; import art.servers.gost.access.controller.Controller_Cleaner; import art.servers.gost.access.controller.Controller_Detections; import art.servers.gost.access.controller.FactoryController; import art.servers.gost.access.controller.ListenerImplementation; import art.servers.gost.access.types.DatabasePoolConnection; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; public class AccessServer extends art.servers.Server { public static void main(String[] args) { try { FlatGUI.initialise(); Shared.setApplicationCode("PeL62haxJD8929Y5brBbFssGTSGVurnm"); Shared.setApplicationName("art.servers.gost-access-server"); preinitialise(args, Configuration.class); Shared.model = new art.servers.gost.access.Model(Shared.configuration); postinitialise(args); ListenerImplementation listenerImplementation = new ListenerImplementation(); if (Shared.controllerListenerHttps != null) Shared.controllerListenerHttps.setListenerImplementation(listenerImplementation); if (Shared.controllerListener != null) Shared.controllerListener.setListenerImplementation(listenerImplementation); // Configuration detail Configuration configuration = ((Configuration)Shared.configuration); ConfigurationDetail configurationDetail = (ConfigurationDetail)Serialization.deserialize(ConfigurationDetail.class, new File(Shared.getApplicationName() + ".detail.json")); configuration.detail = configurationDetail; // Database Pool Shared.databaseDetections1 = new DatabasePoolConnection(Shared.getMessage("Database detections"), configuration.detail.databaseDetections); Shared.databaseDetections2 = new DatabasePoolConnection(Shared.getMessage("Database detections"), configuration.detail.databaseDetections); // Factory controller Shared.factory = new FactoryController(); Shared.factory.start(); // Controller detections Shared.isKielce = existParameter(args, "-kielce"); Shared.controllerDetections = new Controller_Detections(Shared.databaseDetections1); if (Shared.isKielce == false) Shared.controllerDetections.start(); // Controller cleaner if (configuration.detail.cleaners != null) { for (ConfigurationDetail_Cleaner configurationCleaner : configuration.detail.cleaners) { Controller_Cleaner cleaner = new Controller_Cleaner(configurationCleaner); Shared.controllerCleaners.add(cleaner); cleaner.start(); } } } catch (Exception exception) { exception.printStackTrace(); StringWriter sw = new StringWriter(); exception.printStackTrace(new PrintWriter(sw)); FlatDialog.showDialog(null, Shared.getMessage("Error"), exception.getMessage() + "\n\n" + sw.toString(), true, FlatDialog.DIALOG_INFORMATION); System.exit(0); } } }