# HG changeset patch # User Jaroslav Tulach # Date 1356453981 -3600 # Node ID 269d99fd64214a4c1e24317acc22ea9ea187d391 # Parent 88ed1f51eb220bdcbb16e9b1fe3a3bd1bd0c490a Keeping single instance of LaunchSetup diff -r 88ed1f51eb22 -r 269d99fd6421 vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/Bck2BrwsrCase.java --- a/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/Bck2BrwsrCase.java Tue Dec 25 15:31:58 2012 +0100 +++ b/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/Bck2BrwsrCase.java Tue Dec 25 17:46:21 2012 +0100 @@ -21,6 +21,7 @@ import java.util.Map; import java.util.WeakHashMap; import javax.script.Invocable; +import org.apidesign.bck2brwsr.launcher.Launcher; import org.apidesign.bck2brwsr.launcher.MethodInvocation; import org.testng.ITest; import org.testng.annotations.Test; @@ -31,7 +32,7 @@ */ public final class Bck2BrwsrCase implements ITest { private final Method m; - private final LaunchSetup l; + private final Launcher l; private final String type; Object value; private Invocable code; @@ -39,7 +40,7 @@ private static final Map compiled = new WeakHashMap<>(); private Object inst; - Bck2BrwsrCase(Method m, String type, LaunchSetup l) { + Bck2BrwsrCase(Method m, String type, Launcher l) { this.l = l; this.m = m; this.type = type; diff -r 88ed1f51eb22 -r 269d99fd6421 vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java --- a/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java Tue Dec 25 15:31:58 2012 +0100 +++ b/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java Tue Dec 25 17:46:21 2012 +0100 @@ -24,6 +24,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import org.apidesign.bck2brwsr.launcher.Launcher; import org.testng.Assert; import org.testng.ITest; import org.testng.annotations.Factory; @@ -59,7 +60,7 @@ Method[] arr = clazz.getMethods(); List ret = new ArrayList<>(); - final LaunchSetup l = LaunchSetup.javaScript(); + final LaunchSetup l = LaunchSetup.INSTANCE; ret.add(l); String[] brwsr; @@ -78,13 +79,13 @@ continue; } final Bck2BrwsrCase real = new Bck2BrwsrCase(m, "Java", null); - final Bck2BrwsrCase js = new Bck2BrwsrCase(m, "JavaScript", l); + final Bck2BrwsrCase js = new Bck2BrwsrCase(m, "JavaScript", l.javaScript()); ret.add(real); ret.add(js); ret.add(new CompareCase(m, real, js)); for (String b : brwsr) { - final LaunchSetup s = LaunchSetup.brwsr(b); + final Launcher s = l.brwsr(b); ret.add(s); final Bck2BrwsrCase cse = new Bck2BrwsrCase(m, b, s); ret.add(cse); diff -r 88ed1f51eb22 -r 269d99fd6421 vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java --- a/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Tue Dec 25 15:31:58 2012 +0100 +++ b/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Tue Dec 25 17:46:21 2012 +0100 @@ -21,7 +21,6 @@ import java.util.LinkedHashMap; import java.util.Map; import org.apidesign.bck2brwsr.launcher.Launcher; -import org.apidesign.bck2brwsr.launcher.MethodInvocation; import org.testng.annotations.AfterGroups; import org.testng.annotations.BeforeGroups; @@ -30,39 +29,40 @@ * @author Jaroslav Tulach */ public final class LaunchSetup { - private static final LaunchSetup JS = new LaunchSetup(Launcher.createJavaScript()); - private static final Map BRWSRS = new LinkedHashMap<>(); + static LaunchSetup INSTANCE = new LaunchSetup(); - private final Launcher launcher; + private final Launcher js = Launcher.createJavaScript(); + private final Map brwsrs = new LinkedHashMap<>(); - private LaunchSetup(Launcher l) { - launcher = l; + private LaunchSetup() { } - public static LaunchSetup javaScript() { - return JS; + public Launcher javaScript() { + return js; } - public static synchronized LaunchSetup brwsr(String cmd) { - LaunchSetup s = BRWSRS.get(cmd); + public synchronized Launcher brwsr(String cmd) { + Launcher s = brwsrs.get(cmd); if (s == null) { - s = new LaunchSetup(Launcher.createBrowser(cmd)); - BRWSRS.put(cmd, s); + s = Launcher.createBrowser(cmd); + brwsrs.put(cmd, s); } return s; } @BeforeGroups("run") public void initializeLauncher() throws IOException { - launcher.initialize(); + js.initialize(); + for (Launcher launcher : brwsrs.values()) { + launcher.initialize(); + } } @AfterGroups("run") public void shutDownLauncher() throws IOException, InterruptedException { - launcher.shutdown(); - } - - public MethodInvocation invokeMethod(Class clazz, String name) throws IOException { - return launcher.invokeMethod(clazz, name); + js.shutdown(); + for (Launcher launcher : brwsrs.values()) { + launcher.shutdown(); + } } }