package org.openslx.taskmanager; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; 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 = Logger.getLogger( App.class ); public static void main( String[] args ) throws InterruptedException, IOException { BasicConfigurator.configure(); 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 ) ); } if (Global.PORT_TCP != -1) { tcp = new NetworkHandlerTcp( Global.PORT_TCP, Global.LISTEN_ADDRESS, parser ); threads.add( new Thread( tcp ) ); } threads.add( new Thread( tm ) ); // Wait for everything for (Thread t : threads) { t.start(); } for (Thread t : threads) { t.join(); } } }