Ugo Cei wrote:
Igor Bukanov wrote:
http://bugzilla.mozilla.org/show_bug.cgi?id=258844 contains a working patch against Rhino CVS from mozilla.org to enable Continuation support there.
What am I supposed to do if I want to play with it?
...
2) Do a cvs checkout and build since your patch is already applied?
Use this option.
Regards, Igor
The attached patch against cocoon-2.1.5.1 simplifies "playing": it changes Rhino bindings to use "org.mozilla.javascript.Function" instead of "org.mozilla.javascript.continuations.Continuation" to refer to script Continuation objects.
In Rhino from mozilla.org Continuation class is package-private and implemented in a very different way compared with Rhino from cocondev.org. On the other hand the class in both versions implements Function interface and since the bindings in Cocoon use only functionality available through this interface the patch minimize the amount of code that has to be modified to use Rhino from mozilla.org.
Regards, Igor
Fri Sep 24 22:40:58 CEST 2004 [EMAIL PROTECTED] tagged divergence
Fri Sep 24 20:22:13 CEST 2004 [EMAIL PROTECTED]
* setSize(Dimension) -> setSize(width, height)
Fri Sep 24 20:04:32 CEST 2004 [EMAIL PROTECTED]
* Continuation -> Function
diff -rN -ud cocoon-2.1.5.1-old/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.java cocoon-2.1.5.1-new/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.java
--- cocoon-2.1.5.1-old/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.java 2004-09-25 00:54:11.000000000 +0200
+++ cocoon-2.1.5.1-new/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.java 2004-09-24 19:29:24.000000000 +0200
@@ -15,10 +15,10 @@
*/
package org.apache.cocoon.forms.flow.javascript;
+import org.mozilla.javascript.Function;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
import org.apache.cocoon.components.flow.javascript.fom.FOM_WebContinuation;
import org.apache.cocoon.environment.Request;
@@ -45,7 +45,7 @@
Object lastContinuation,
int ttl)
throws Exception {
- Continuation kont = (Continuation)unwrap(k);
+ Function kont = (Function)unwrap(k);
FOM_WebContinuation fom_wk =
(FOM_WebContinuation)unwrap(lastContinuation);
FOM_Cocoon cocoon = getCocoon();
diff -rN -ud cocoon-2.1.5.1-old/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_Cocoon.java cocoon-2.1.5.1-new/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_Cocoon.java
--- cocoon-2.1.5.1-old/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_Cocoon.java 2004-09-25 00:54:11.000000000 +0200
+++ cocoon-2.1.5.1-new/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_Cocoon.java 2004-09-24 19:27:38.000000000 +0200
@@ -37,13 +37,13 @@
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Response;
import org.apache.cocoon.environment.Session;
+import org.mozilla.javascript.Function;
import org.mozilla.javascript.JavaScriptException;
import org.mozilla.javascript.Script;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
/**
* Implementation of FOM (Flow Object Model).
@@ -114,7 +114,7 @@
private FOM_WebContinuation forwardTo(String uri, Object bizData,
- Continuation continuation)
+ Function continuation)
throws Exception {
WebContinuation wk = null;
if (continuation != null) {
@@ -151,7 +151,7 @@
Object obj,
Object continuation)
throws Exception {
- return forwardTo(uri, obj, (Continuation)unwrap(continuation));
+ return forwardTo(uri, obj, (Function)unwrap(continuation));
}
@@ -914,7 +914,7 @@
*/
- public FOM_WebContinuation makeWebContinuation(Continuation k,
+ public FOM_WebContinuation makeWebContinuation(Function k,
FOM_WebContinuation parent,
int timeToLive)
throws Exception {
diff -rN -ud cocoon-2.1.5.1-old/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_JavaScriptInterpreter.java cocoon-2.1.5.1-new/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_JavaScriptInterpreter.java
--- cocoon-2.1.5.1-old/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_JavaScriptInterpreter.java 2004-09-25 00:54:11.191644688 +0200
+++ cocoon-2.1.5.1-new/src/blocks/scratchpad/java/org/apache/cocoon/components/flow/javascript/fom/AO_FOM_JavaScriptInterpreter.java 2004-09-25 00:54:41.301067360 +0200
@@ -54,13 +54,13 @@
import org.mozilla.javascript.Context;
import org.mozilla.javascript.EcmaError;
import org.mozilla.javascript.EvaluatorException;
+import org.mozilla.javascript.Function;
import org.mozilla.javascript.JavaScriptException;
import org.mozilla.javascript.Script;
import org.mozilla.javascript.ScriptRuntime;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
import org.mozilla.javascript.tools.ToolErrorReporter;
import org.mozilla.javascript.tools.shell.Global;
@@ -674,7 +674,7 @@
// Obtain the continuation object from it, and setup the
// FOM_Cocoon object associated in the dynamic scope of the saved
// continuation with the environment and context objects.
- Continuation k = (Continuation)wk.getContinuation();
+ Function k = (Function)wk.getContinuation();
Scriptable kScope = k.getParentScope();
synchronized (kScope) {
AO_FOM_Cocoon cocoon = (AO_FOM_Cocoon)kScope.get("cocoon", kScope);
diff -rN -ud cocoon-2.1.5.1-old/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/Woody.java cocoon-2.1.5.1-new/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/Woody.java
--- cocoon-2.1.5.1-old/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/Woody.java 2004-09-25 00:54:11.000000000 +0200
+++ cocoon-2.1.5.1-new/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/Woody.java 2004-09-24 19:26:20.000000000 +0200
@@ -15,10 +15,10 @@
*/
package org.apache.cocoon.woody.flow.javascript;
+import org.mozilla.javascript.Function;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
import org.apache.cocoon.components.flow.javascript.fom.FOM_WebContinuation;
import org.apache.cocoon.environment.Request;
@@ -45,7 +45,7 @@
Object lastContinuation,
int ttl)
throws Exception {
- Continuation kont = (Continuation)unwrap(k);
+ Function kont = (Function)unwrap(k);
FOM_WebContinuation fom_wk =
(FOM_WebContinuation)unwrap(lastContinuation);
FOM_Cocoon cocoon = getCocoon();
diff -rN -ud cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java
--- cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java 2004-09-25 00:54:11.000000000 +0200
+++ cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java 2004-09-24 19:25:36.000000000 +0200
@@ -44,6 +44,7 @@
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.http.HttpResponse;
import org.apache.cocoon.util.ClassUtils;
+import org.mozilla.javascript.Function;
import org.mozilla.javascript.JavaScriptException;
import org.mozilla.javascript.NativeJavaClass;
import org.mozilla.javascript.Script;
@@ -51,7 +52,6 @@
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
/**
* Implementation of FOM (Flow Object Model).
@@ -1543,7 +1543,7 @@
throws Exception {
double d = org.mozilla.javascript.Context.toNumber(ttl);
FOM_WebContinuation result =
- makeWebContinuation((Continuation)unwrap(k),
+ makeWebContinuation((Function)unwrap(k),
findValidParent(jsGet_continuation()),
(int)d);
result.setPageLocal(pageLocal.getDelegate());
@@ -1557,7 +1557,7 @@
* @param parent The parent of this continuation (may be null)
* @param timeToLive Lifetime for this continuation (zero means no limit)
*/
- public FOM_WebContinuation makeWebContinuation(Continuation k,
+ public FOM_WebContinuation makeWebContinuation(Function k,
FOM_WebContinuation parent,
int timeToLive)
throws Exception {
diff -rN -ud cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java
--- cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java 2004-09-25 00:54:11.291629488 +0200
+++ cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java 2004-09-25 00:54:41.912974336 +0200
@@ -70,7 +70,6 @@
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
import org.mozilla.javascript.tools.ToolErrorReporter;
import org.mozilla.javascript.tools.debugger.Main;
import org.mozilla.javascript.tools.shell.Global;
@@ -219,9 +218,7 @@
final Main db = new Main("Cocoon Flow Debugger");
db.pack();
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
- size.width *= 0.75;
- size.height *= 0.75;
- db.setSize(size);
+ db.setSize(size.width * 3 / 4, size.height * 3 / 4);
db.setExitAction(new Runnable() {
public void run() {
db.setVisible(false);
@@ -753,7 +750,7 @@
// Obtain the continuation object from it, and setup the
// FOM_Cocoon object associated in the dynamic scope of the saved
// continuation with the environment and context objects.
- Continuation k = (Continuation)wk.getContinuation();
+ Function k = (Function)wk.getContinuation();
ThreadScope kScope = (ThreadScope)k.getParentScope();
synchronized (kScope) {
ClassLoader savedClassLoader =
diff -rN -ud cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_WebContinuation.java cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_WebContinuation.java
--- cocoon-2.1.5.1-old/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_WebContinuation.java 2004-09-25 00:54:11.000000000 +0200
+++ cocoon-2.1.5.1-new/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_WebContinuation.java 2004-09-24 19:24:40.000000000 +0200
@@ -28,7 +28,6 @@
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.continuations.Continuation;
/**
*
@@ -60,7 +59,7 @@
this.wk = wk;
}
- // new FOM_WebContinuation([Continuation] continuation,
+ // new FOM_WebContinuation([Function] continuation,
// [FOM_WebContinuation] parent,
// [Number] timeToLive)
public static Object jsConstructor(Context cx, Object[] args,
@@ -71,7 +70,7 @@
if (args.length < 1) {
// error
}
- Continuation c = (Continuation)unwrap(args[0]);
+ Function c = (Function)unwrap(args[0]);
FOM_WebContinuation parent = null;
if (args.length > 1) {
parent = (FOM_WebContinuation)args[1];
@@ -106,8 +105,8 @@
}
- public Continuation jsGet_continuation() {
- return (Continuation)wk.getContinuation();
+ public Function jsGet_continuation() {
+ return (Function)wk.getContinuation();
}
public FOM_WebContinuation jsFunction_getParent() {
