There is one ContinuationsManager implementation (ContinuationsManagerImpl). In case of javascript flow it is the FOM_Cocoon that creates continuations:Leszek Gawron wrote:
Vadim Gritsenko wrote:
How can I retrieve that ID? I could implement a test version for Carsten.
It is in AbstractInterpreter.getInterpreterID()
Some problems coming. Are there any reasons why doesn't Interpreter.getInterpreterID() exist? Also AbstractInterpreter.getInterpreterID() is protected. I have to make it public. The thing is: should I also move method declaration to interface?
This method was added for internal needs of the interpreter ID. If it proves to be needed also to properly implement continuation management, then +1 for adding it to the interface.
Next: From what I've got from reading the code I cannot query for Interpreter in ContunuationsManager.
Yep, because a ContinuationManager manages several intepreters.
The only place where interpreter is available is FOM_Cocoon which means I have to change ContinuationsManager.createWebContinuation signature to pass the interpreterID along with current parameters. This change affects all flow implementations. Am I right?
Isn't it all ContinuationsManager implementations that are changed?
Sylvain
public FOM_WebContinuation makeWebContinuation(Continuation k,
FOM_WebContinuation parent,
int timeToLive)
throws Exception {
if (k == null) {
return null;
}
WebContinuation wk;
ContinuationsManager contMgr;
contMgr = (ContinuationsManager)
getServiceManager().lookup(ContinuationsManager.ROLE);
wk = contMgr.createWebContinuation(unwrap(k),
(parent == null ? null :
parent.getWebContinuation()),
timeToLive,
null);
FOM_WebContinuation result = new FOM_WebContinuation(wk);
result.setParentScope(getParentScope());
result.setPrototype(getClassPrototype(getParentScope(),
result.getClassName()));
return result;
}
the change would be: wk = contMgr.createWebContinuation( unwrap(k), (parent == null ? null : parent.getWebContinuation()), timeToLive, null, getInterpreter().getInterpreterID());
Is it OK to change ContinuationsManager interface then?
in case of JavaFlow it is the interpreter itself that creates continuations. See o.a.c.components.flow.java.JavaInterpreter.callFunction (little bit too long to paste).
lg -- Leszek Gawron [EMAIL PROTECTED] Project Manager MobileBox sp. z o.o. +48 (61) 855 06 67 http://www.mobilebox.pl mobile: +48 (501) 720 812 fax: +48 (61) 853 29 65
