cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject Re: More on FOM
Date Tue, 01 Jul 2003 15:32:09 GMT
Upayavira wrote:

>On 30 Jun 2003 at 22:29, Sylvain Wallez wrote:

>>Once again, I agree that explicit release is very unnatural. But
>>automagic release is good only if we can have some automagic restore.
>>For this we can have getComponent() actually return a proxy to the
>>real component, and have the proxy do a release/lookup when a
>>continuation is suspended/reactivated. But as elegant this may seem,
>>this won't work : stateful components have... a state, and a
>>release/lookup cycle destroys this state.
>>So I don't see any other solution...
>How about defining a FlowSafe interface (contains no state and can be released/looked
up transparently),

We already have this with the ThreadSafe marker interface. So yes, we 
could have transparent release/lookup for ThreadSafe components.

>and maybe a FlowSerializable interface (has a way that the state can be stored into the
continuation and then restored, all transparently?

Good point. But actually, this is not related exclusively to flow, but 
to the ability to externalize the component state. So this could be :
interface StateExternalizable {
  Object /* or Serializable? */ getState();
  void setState(Object state);

>So you would have to consciously code your components to use either of these interfaces,
otherwise you'll have to manually release them before creating a continuation.

Yep. An you would still get an error if there are some unreleased 
components that are neither ThreadSafe nor StateExternalizable.


Sylvain Wallez                                  Anyware Technologies 
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -

View raw message