package org.openslx.taskmanager; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.config.Configurator; import org.apache.logging.log4j.core.config.DefaultConfiguration; import org.openslx.taskmanager.api.Environment; import org.openslx.taskmanager.main.Taskmanager; import org.openslx.taskmanager.network.NetworkHandlerTcp; import org.openslx.taskmanager.network.NetworkHandlerUdp; import org.openslx.taskmanager.network.RequestParser; /** * Hello world! * */ public class App { private static final Logger log = LogManager.getLogger( App.class ); public static void main( String[] args ) throws InterruptedException, IOException { Configurator.initialize( new DefaultConfiguration() ); if (Global.PORT_UDP == -1 && Global.PORT_TCP == -1) { log.fatal( "Neither UDP nor TCP configured" ); System.exit( 1 ); } // Load all task plugins Environment.load( "config/environment" ); List threads = new ArrayList<>(); Taskmanager tm = new Taskmanager(); RequestParser parser = new RequestParser( tm ); NetworkHandlerUdp udp = null; NetworkHandlerTcp tcp = null; if (Global.PORT_UDP != -1) { udp = new NetworkHandlerUdp( Global.PORT_UDP, Global.LISTEN_ADDRESS, parser ); threads.add( new Thread( udp, "UDP:" + Global.PORT_UDP ) ); } if (Global.PORT_TCP != -1) { tcp = new NetworkHandlerTcp( Global.PORT_TCP, Global.LISTEN_ADDRESS, parser ); threads.add( new Thread( tcp, "TCP:" + Global.PORT_TCP ) ); } threads.add( new Thread( tm, "Taskmanager" ) ); // Wait for everything for (Thread t : threads) { t.start(); } for (Thread t : threads) { t.join(); } } }