/* * launch process config input: className and args */ public void launchProcessConfig(String className, String[] args) throws SecurityException, NoSuchMethodException { try { Class<?> processClass = Class.forName(className); // System.out.print("processClass is " + processClass.toString()); MigratableProcess process; process = (MigratableProcess) processClass.getConstructor(String[].class).newInstance((Object) args); // process = (MigratableProcess) processClass.newInstance(); System.out.println("MP is " + process.toString()); processList.add(process); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } // TestProcess test = new TestProcess(); catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/* * migrate process to slave */ public void migrateProcess(String slaveHost, int slavePort, MigratableProcess process) { Socket socket; ObjectOutputStream os; System.out.println("Master mig to slave " + slaveHost + "with port " + slavePort); try { socket = new Socket(slaveHost, slavePort); os = new ObjectOutputStream(socket.getOutputStream()); os.flush(); System.out.println("Mig " + process.toString()); os.writeObject(process); os.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }