package de.ugoe.cs.eventbench.jfcmonitor; import java.awt.AWTEvent; import java.awt.Toolkit; import java.awt.event.AWTEventListener; import java.awt.event.FocusEvent; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.util.Arrays; /** *

* Start-up class of the application. *

*

* Launches the application under test in the same JVM. *

* * @author Steffen Herbold * @version 1.0 */ public class Runner { /** *

* Debugging variable. If set to true, the logging is also written to the * console. *

*/ private final static boolean stdOutputWrite = true; /** *

* Main method of the application. *

* * @param args * the first parameter defines the Jar file that contains the * start-up information of the application under test. The * remaining parameters are passed on the toe application under * test. */ public static void main(String[] args) { String logfileName = "jfcmonitor_" + System.currentTimeMillis() + ".log"; FileOutputStream fis; OutputStreamWriter writer; try { // the writer is not closed explicitly! fis = new FileOutputStream(logfileName, true); writer = new OutputStreamWriter(fis, "UTF-16"); } catch (IOException e) { System.err.println("JFCMONITOR -- failure opening logfile: " + e.getMessage()); return; } AWTEventListener listenerFile = new JFCListener(writer); Toolkit.getDefaultToolkit().addAWTEventListener(listenerFile, AWTEvent.KEY_EVENT_MASK); Toolkit.getDefaultToolkit().addAWTEventListener(listenerFile, AWTEvent.MOUSE_EVENT_MASK); Toolkit.getDefaultToolkit().addAWTEventListener(listenerFile, FocusEvent.FOCUS_EVENT_MASK); Toolkit.getDefaultToolkit().addAWTEventListener(new WindowMonitor(), AWTEvent.WINDOW_EVENT_MASK); if (stdOutputWrite) { AWTEventListener listenerStdOut; try { listenerStdOut = new JFCListener(new OutputStreamWriter( System.out, "UTF-8")); Toolkit.getDefaultToolkit().addAWTEventListener(listenerStdOut, AWTEvent.KEY_EVENT_MASK); Toolkit.getDefaultToolkit().addAWTEventListener(listenerStdOut, AWTEvent.MOUSE_EVENT_MASK); } catch (UnsupportedEncodingException e) { System.err .println("JFCMONITOR -- failure to create OutputStreamWriter with UTF-8 encoding to System.out"); } } JarLauncher launcher = new JarLauncher(args[0], Arrays.copyOfRange( args, 1, args.length)); launcher.exec(); } }