| java.lang.Object helma.framework.core.RequestEvaluator
RequestEvaluator | final public class RequestEvaluator implements Runnable(Code) | | This class does the work for incoming requests. It holds a transactor thread
and an EcmaScript evaluator to get the work done. Incoming threads are
blocked until the request has been serviced by the evaluator, or the timeout
specified by the application has passed. In the latter case, the evaluator thread
is killed and an error message is returned.
|
Method Summary | |
synchronized void | abortTransaction() Called by the transactor thread when the request didn't terminate successfully. | public synchronized ResponseTrans | attachHttpRequest(RequestTrans req) This checks if the Evaluator is already executing an equal request.
If so, attach to it and wait for it to complete. | synchronized void | commitTransaction() Called by the transactor thread when it has successfully fulfilled a request. | public String | getAction(Object obj, String action, RequestTrans req) Check if an action with a given name is defined for a scripted object. | public synchronized RequestTrans | getRequest() Get the request object for the current request. | public synchronized ResponseTrans | getResponse() Get the response object for the current request. | public ScriptingEngine | getScriptingEngine() | public synchronized Session | getSession() | public synchronized Transactor | getThread() | protected synchronized void | initScriptingEngine() | public Object | invokeDirectFunction(Object obj, Object function, Object[] args) Invoke a function internally and directly, using the thread we're running on. | public synchronized Object | invokeExternal(String functionName, Object[] args) Invoke a function for an external request. | public synchronized ResponseTrans | invokeHttp(RequestTrans req, Session session) Invoke an action function for a HTTP request. | public synchronized Object | invokeInternal(Object object, Object function, Object[] args) Invoke a function internally. | public synchronized Object | invokeInternal(Object object, Object function, Object[] args, long timeout) Invoke a function internally. | public synchronized Object | invokeXmlRpc(String functionName, Object[] args) Invoke a function for an XML-RPC request. | synchronized void | notifyAndWait() | synchronized void | recycle() Null out some fields, mostly for the sake of garbage collection. | public void | run() | synchronized boolean | stopTransactor() Stop this request evaluator's current thread. |
EXTERNAL | final static int EXTERNAL(Code) | | |
HTTP | final static int HTTP(Code) | | |
INTERNAL | final static int INTERNAL(Code) | | |
NONE | final static int NONE(Code) | | |
XMLRPC | final static int XMLRPC(Code) | | |
skinDepth | protected int skinDepth(Code) | | |
RequestEvaluator | public RequestEvaluator(Application app)(Code) | | Create a new RequestEvaluator for this application.
Parameters: app - the application |
abortTransaction | synchronized void abortTransaction()(Code) | | Called by the transactor thread when the request didn't terminate successfully.
|
attachHttpRequest | public synchronized ResponseTrans attachHttpRequest(RequestTrans req) throws Exception(Code) | | This checks if the Evaluator is already executing an equal request.
If so, attach to it and wait for it to complete. Otherwise return null,
so the application knows it has to run the request.
|
commitTransaction | synchronized void commitTransaction() throws Exception(Code) | | Called by the transactor thread when it has successfully fulfilled a request.
throws: Exception - transaction couldn't be committed |
getAction | public String getAction(Object obj, String action, RequestTrans req)(Code) | | Check if an action with a given name is defined for a scripted object. If it is,
return the action's function name. Otherwise, return null.
|
getRequest | public synchronized RequestTrans getRequest()(Code) | | Get the request object for the current request.
the request object |
getResponse | public synchronized ResponseTrans getResponse()(Code) | | Get the response object for the current request.
the response object |
getScriptingEngine | public ScriptingEngine getScriptingEngine()(Code) | | Returns this evaluator's scripting engine
|
getSession | public synchronized Session getSession()(Code) | | Return the current session
the session for the current request |
getThread | public synchronized Transactor getThread()(Code) | | Get the current transactor thread
the current transactor thread |
initScriptingEngine | protected synchronized void initScriptingEngine()(Code) | | |
invokeDirectFunction | public Object invokeDirectFunction(Object obj, Object function, Object[] args) throws Exception(Code) | | Invoke a function internally and directly, using the thread we're running on.
Parameters: obj - the object to invoke the function on Parameters: function - the function or name of the function to invoke Parameters: args - the arguments the result returned by the invocation throws: Exception - any exception thrown by the invocation |
invokeExternal | public synchronized Object invokeExternal(String functionName, Object[] args) throws Exception(Code) | | Invoke a function for an external request. The function is dispatched
in a new thread and waits for it to finish.
Parameters: functionName - the name of the function to invoke Parameters: args - the arguments the result returned by the invocation throws: Exception - any exception thrown by the invocation |
invokeHttp | public synchronized ResponseTrans invokeHttp(RequestTrans req, Session session) throws Exception(Code) | | Invoke an action function for a HTTP request. The function is dispatched
in a new thread and waits for it to finish.
Parameters: req - the incoming HTTP request Parameters: session - the client's session the result returned by the invocation throws: Exception - any exception thrown by the invocation |
invokeInternal | public synchronized Object invokeInternal(Object object, Object function, Object[] args) throws Exception(Code) | | Invoke a function internally. The function is dispatched in a new thread
and waits for it to finish.
Parameters: object - the object to invoke the function on Parameters: function - the function or name of the function to invoke Parameters: args - the arguments the result returned by the invocation throws: Exception - any exception thrown by the invocation |
invokeInternal | public synchronized Object invokeInternal(Object object, Object function, Object[] args, long timeout) throws Exception(Code) | | Invoke a function internally. The function is dispatched in a new thread
and waits for it to finish.
Parameters: object - the object to invoke the function on Parameters: function - the function or name of the function to invoke Parameters: args - the arguments Parameters: timeout - the time in milliseconds to wait for the function to return, or-1 to wait indefinitely the result returned by the invocation throws: Exception - any exception thrown by the invocation |
invokeXmlRpc | public synchronized Object invokeXmlRpc(String functionName, Object[] args) throws Exception(Code) | | Invoke a function for an XML-RPC request. The function is dispatched in a new thread
and waits for it to finish.
Parameters: functionName - the name of the function to invoke Parameters: args - the arguments the result returned by the invocation throws: Exception - any exception thrown by the invocation |
notifyAndWait | synchronized void notifyAndWait()(Code) | | Tell waiting thread that we're done, then wait for next request
|
recycle | synchronized void recycle()(Code) | | Null out some fields, mostly for the sake of garbage collection.
|
stopTransactor | synchronized boolean stopTransactor()(Code) | | Stop this request evaluator's current thread. This is called by the
waiting thread when it times out and stops waiting, or from an outside
thread. If currently active kill the request, otherwise just notify.
|
|
|