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]

Reply via email to