Class CCStateManager


public class CCStateManager extends StateManager
State manager that is used within CaptainCasa. The situation is: CaptainCasa components do not hold any state (aside technical state) on their owns, the full application state is always referenced via expressions. Therefore the strategy is:

The view root is parked within the session state of the http session. Assuming that the next http request will hit the same virtual machine the view root will as consequence NOT be persisted all the time but is kept stable.

If case the session state is not available (e.g. due to session migration) the view root will be re-built out of the current page context.

What's the advantage? There is NO UIComponent state serialization with every roundtrip. So, the scenario is "optimal" if the session by default is kept up and running in a cerain application server node.

Whats's the disadvantage? If a session is migrated from one node to the next, then the current request that the user invoked will be lost (because there is no component tree to take over events and data changed - the tree is rebuilt in the rendering phase).