package org.openslx.imagemaster; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.openslx.imagemaster.serverconnection.ConnectionHandler; import org.openslx.imagemaster.serverconnection.ImageProcessor; import org.openslx.imagemaster.thrift.server.BinaryListener; import org.slf4j.LoggerFactory; public class App { private static Logger log = Logger.getLogger( App.class ); private static List servers = new ArrayList<>(); static { // TODO: // This is a temporary workaround for this annoying log4j error msg. // It's initializing the logger before anything else is done. LoggerFactory.getLogger("ROOT"); } public static void main( String[] args ) { // Init logging log.info( "Starting Application" ); // Load properties try { Globals.loadProperties(); if ( !Globals.propertiesValid() ) { log.error( "Config file contains errors." ); System.exit( 1 ); } } catch ( IOException e ) { log.error( "Could not load config file. Quitting." ); System.exit( 1 ); } log.info( "Loaded config file" ); ImageProcessor.checkUploading(); // Create binary listener Thread t; t = new Thread( new BinaryListener(), "BinaryListener" ); servers.add( t ); t.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..." ); } }