A Suggestion to enhance SCXMLExecutor and SCInstance class to support state 
persistence
---------------------------------------------------------------------------------------

                 Key: SCXML-20
                 URL: http://issues.apache.org/jira/browse/SCXML-20
             Project: Commons SCXML
          Issue Type: New Feature
    Affects Versions: 0.5
         Environment: Windows, JDK 1.4.2 and above
            Reporter: Sitthichai Rernglertpricha


Currently, SCXMLExecutor and SCInstance does not implement Serializable. Hence, 
under a clustered application server environment, they cannot be persisted by 
the application server for session failover.

Instead of changing SCXMLExecutor and SCInstance to implement Serializable, an 
alternative is to leverage on the Memento design pattern so that SCXMLExecutor 
and SCInstance class can persist their states via 2 new saveState() and 
restoreState() methods. Both methods are passed a new ExecutorState interface 
object. The SCXMLExecutor and SCInstance class will save their states into the 
ExecutorState object when their saveState() methods are called, and reload 
their states from the ExecutorState object when their restoreState() methods 
are called. Different child implementation of the ExecutorState interface will 
then handle the actual persistence to appropriate channel, and decide what need 
to persist and what need not.

For your consideration, I have attached patches to SCXMLExecutor and SCInstance 
class with the 2 new saveState() and restoreState() methods, and the new 
ExecutorState interface class.I have also attached a web application (tested 
under Geronimo ) illustrating an implementation under Servlet environment. 
Please refer to the readme.txt in the WAR file for more details.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to