BB/Server/BesenBoincServer/src/Core/Starter.java

51 lines
1.6 KiB
Java
Executable File

package Core;
import java.util.Scanner;
import Comunication.Server;
import Job.JobManager;
public class Starter {
public static void main(String[] args) throws ClassNotFoundException {
System.out.println("Starting BesenBoincServer...");
String classname = "Test";//load programm
if(args.length >= 1) {
classname = args[0];
}
Program prog = null;
prog = loadProgram(classname);
Server server = (new Server()).setProgram(prog).open();//start server
boolean run = true;
Scanner s = new Scanner(System.in);
while(run) {
String in = s.nextLine();
if(in.equalsIgnoreCase("stop")) {
System.out.println("Stopping Server...");
Server.getServer().close();
run = false;
} else if(in.equalsIgnoreCase("stats")) {
JobManager jmanager = server.getProgram().jobmanager;
System.out.println("\nStats:\nTasks done : " + jmanager.jobs_done() + "\nTasks compiled: " + jmanager.jobs_compiled() + "/" + jmanager.jobs_compiledtarget() + "\nTasks enqued : " + jmanager.jobs_enqued() + "\n--------------------\ntotal : " + jmanager.jobs_total()+ "\n");
}else {
System.out.println("unknown Command.");
}
}
s.close();
}
public static Program loadProgram(String classname) throws ClassNotFoundException{
System.out.println("Try to load class: " + classname);
Program prog = null;
try {
prog = (Program) Class.forName(classname).newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
e.printStackTrace();
}
if(prog == null)
throw new ClassNotFoundException("Could not load Programm called: " + classname);
return prog;
}
}