protected void initJavaScript() throws Exception { // Initializes the thread model org.mozilla.javascript.Context jsContext = org.mozilla.javascript.Context.enter(); try { ScriptableObject rootScope = jsContext.initStandardObjects(); ScriptableObject.defineClass(rootScope, HttpCookieStore.class); jsContext.evaluateString( rootScope, "var cookies = new HttpCookieStore();", "cookies", 1, null); HttpCookieStore cookies = (HttpCookieStore) rootScope.get("cookies", rootScope); cookies.putAll(this.cookies); this.cookies = cookies; ScriptableObject.defineClass(rootScope, JavaScriptThreadModel.class); jsContext.evaluateString( rootScope, "var threadModel = new JavaScriptThreadModel(this);", "threadModel", 1, null); threadModel = (ThreadModel) rootScope.get("threadModel", rootScope); threadModel.init(); ScriptableObject.defineClass(rootScope, XMLHttpRequestClient.class); ScriptableObject.defineClass(rootScope, XMLHttpRequestExchange.class); jsContext.evaluateString( rootScope, "var xhrClient = new XMLHttpRequestClient(2);", "xhrClient", 1, null); xhrClient = (XMLHttpRequestClient) rootScope.get("xhrClient", rootScope); xhrClient.start(); } finally { org.mozilla.javascript.Context.exit(); } }
protected void destroyJavaScript() throws Exception { wsClientFactory.stop(); xhrClient.stop(); threadModel.destroy(); }