crafterm 2003/01/20 12:36:59
Modified: src/java/org/apache/cocoon/components/flow/javascript
JavaScriptInterpreter.java
Log:
Applied enhancement that allows the Rhino debugger to use separate source
windows when debugging a flow application that has more than one flow script,
rather than one (large) source window with all the script combined.
Submitted by: Christopher Oliver <[EMAIL PROTECTED]>
Revision Changes Path
1.14 +25 -16
xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java
Index: JavaScriptInterpreter.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- JavaScriptInterpreter.java 9 Jan 2003 03:40:24 -0000 1.13
+++ JavaScriptInterpreter.java 20 Jan 2003 20:36:59 -0000 1.14
@@ -47,9 +47,11 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
+import java.io.InputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.avalon.framework.activity.Initializable;
@@ -103,7 +105,7 @@
*/
protected long lastTimeCheck = 0;
JSGlobal scope;
- Script compiledScript;
+ List compiledScripts = new ArrayList();
JSErrorReporter errorReporter;
boolean enableDebugger = false;
org.mozilla.javascript.tools.debugger.Main debugger;
@@ -184,7 +186,7 @@
scope.put("log", scope, log);
}
catch (Exception e) {
- Context.exit();
+ context.exit();
e.printStackTrace();
throw e;
}
@@ -317,8 +319,10 @@
((JSCocoon)cocoon).setScope(thrScope);
thrScope.put("cocoon", thrScope, cocoon);
- if (compiledScript != null) {
- compiledScript.exec(context, thrScope);
+ Iterator iter = compiledScripts.iterator();
+ while (iter.hasNext()) {
+ Script compiledScript = (Script)iter.next();
+ compiledScript.exec(context, thrScope);
}
} else {
cocoon = (JSCocoon)thrScope.get("cocoon", thrScope);
@@ -340,10 +344,10 @@
{
JSCocoon cocoon = (JSCocoon)thrScope.get("cocoon", thrScope);
cocoon.invalidateContext();
- Context.exit();
+ Context.getCurrentContext().exit();
}
- public void readScripts(Environment environment, ListInputStream is)
+ public void readScripts(Environment environment, List sources)
throws Exception
{
Scriptable thrScope = null;
@@ -354,11 +358,17 @@
try {
thrScope = enterContext(environment);
- Reader reader = new BufferedReader(new InputStreamReader(is));
- Context context = Context.getCurrentContext();
-
- compiledScript = context.compileReader(thrScope, reader,
- "(combined)", 1, null);
+ Iterator iter = sources.iterator();
+ while (iter.hasNext()) {
+ Source src = (Source)iter.next();
+ InputStream is = src.getInputStream();
+ Reader reader = new BufferedReader(new InputStreamReader(is));
+ Context context = Context.getCurrentContext();
+ Script compiledScript = context.compileReader(thrScope, reader,
+ src.getSystemId(),
+ 1, null);
+ compiledScripts.add(compiledScript);
+ }
}
catch (Exception ex) {
ex.printStackTrace();
@@ -425,10 +435,9 @@
scripts.add(src);
}
needResolve.clear();
-
- ListInputStream is = new ListInputStream(scripts);
- errorReporter = new JSErrorReporter(is.getSourceInfo());
- readScripts(environment, is);
+ //ListInputStream is = new ListInputStream(scripts);
+ //errorReporter = new JSErrorReporter(is.getSourceInfo());
+ readScripts(environment, scripts);
}
// Update the time of the last check. If an exception occurs, this
@@ -574,7 +583,7 @@
throw ex;
}
finally {
- Context.exit();
+ context.exit();
}
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]