Sylvain Wallez wrote:
> Unico Hommes wrote:
>
>> That was one of my questions also. I have not had time to look at
>> Spring framework so bare with me. One of the issues we currently have
>> with ECM is that it does not do shutdown in order based on dependency
>> information. At several places this leads to errors when component A
>> that relies on component B to do work during its shutdown fase finds
>> component B already was destroyed.
>
>
>
> Interesting problem. Is it in Cocoon?
>
Yes. An example is StoreEventRegistry in eventcache block where the
registry hands its state to a Store component upon disposal. I've seen
other instances in Cocoon where this sometimes happens involving
SourceResolver.
>> Does Spring handle this case?
>
>
>
> Don't know, but it theoretically has all the informations in his hand
> to do it as it manages all the components (ECM could also, but this is
> more tricky to implement in a lookup-based system). However the
> relations between components can form a cyclic graph, in which case
> determining the order can be difficult.
>
Fortress handles this exactly the way you describe. However it
pertinently forbids cyclic dependencies which means it can always
determine the shutdown order. When working on Fortress migration in the
old 2.2 branch there were one or two cases where we had to omit the
dependency information because it would otherwise detect a cyclic
dependency. But it didn't create much of a problem because omiting
dependency information in Fortress does not imply the dependency cannot
looked up.
--
Unico
|