package org.openslx.imagemaster; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.openslx.imagemaster.thrift.server.BinaryListener; public class App { private static Logger log = Logger.getLogger(App.class); private static List servers = new ArrayList<>(); public static void main(String[] args) { // Init logging log.info("Starting Application"); // Load properties boolean error = false; BufferedInputStream stream = null; try { stream = new BufferedInputStream(new FileInputStream( "config/global.properties")); Globals.properties.load(stream); } catch (IOException e) { log.error("Could not load config file. Quitting."); error = true; } finally { if (stream != null) { try { stream.close(); } catch (IOException e) { } } if (error) System.exit(1); log.info("Loaded config file"); } // Create binary listener Thread t; t = new Thread(new BinaryListener(), "BinaryListener"); servers.add(t); t.start(); // Create Ftp Server Thread f; f = new Thread(Globals.ftpServer, "FtpServer"); servers.add(f); f.start(); // Run more servers // ... // Wait for all servers to die for (Thread wait : servers) { boolean success = false; while (!success) { try { wait.join(); success = true; } catch (InterruptedException e) { // Do nothing... } } } log.info("All Servers shut down, exiting..."); } }