2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.bck2brwsr.launcher;
20 import java.io.Closeable;
22 import java.io.IOException;
23 import java.net.URLClassLoader;
24 import org.apidesign.vm4brwsr.Bck2Brwsr;
26 /** An abstraction for executing tests in a Bck2Brwsr virtual machine.
27 * Either in JavaScript engine, or in external browser.
29 * @author Jaroslav Tulach <jtulach@netbeans.org>
31 public abstract class Launcher {
36 abstract MethodInvocation addMethod(Class<?> clazz, String method, String html) throws IOException;
38 public abstract void initialize() throws IOException;
39 public abstract void shutdown() throws IOException;
40 public MethodInvocation invokeMethod(Class<?> clazz, String method, String html) throws IOException {
41 return addMethod(clazz, method, html);
46 public static Launcher createJavaScript() {
47 final JSLauncher l = new JSLauncher();
48 l.addClassLoader(Bck2Brwsr.class.getClassLoader());
52 public static Launcher createBrowser(String cmd) {
53 final Bck2BrwsrLauncher l = new Bck2BrwsrLauncher(cmd);
54 l.addClassLoader(Bck2Brwsr.class.getClassLoader());
58 public static Closeable showURL(URLClassLoader classes, String startpage) throws IOException {
59 Bck2BrwsrLauncher l = new Bck2BrwsrLauncher(null);
60 l.addClassLoader(classes);
64 public static Closeable showDir(File directory, String startpage) throws IOException {
65 Bck2BrwsrLauncher l = new Bck2BrwsrLauncher(null);
66 l.showDirectory(directory, startpage);