Amila Suriarachchi wrote:
>
>
> On Tue, Dec 23, 2008 at 6:25 PM, Srinath Perera <hemap...@gmail.com
> <mailto:hemap...@gmail.com>> wrote:
>
>     Hi All;
>
>     As far as I understood, with current handler order resolution in the
>     Phase (see org.apache.axis2.engine.Phase) the order of Handlers are
>     depended on the order they are added. For an example, if there are
>     handlers A and B and there is a rules in B says B after A, the order
>     is preserved only if B is added after A. if handlers are added B,A
>     then since A does not have rules, it is added to somewhere. AFAIK
>     current code only check rules for the new handler, but does not check
>     rules in the existing Handlers.
>
>     I noticed this problem while developing a Handler, and walk though the
>     code also verified it.
>
>     However, there is a standard way to solve this problem. The solution
>     is creating a graph assigning dependencies as edges in a graph--which
>     is a directed acyclic graph--and then doing a topology sort
>     http://en.wikipedia.org/wiki/Topological_sort . The algorithm takes
>     O(n) time and space where n is number of entities + number of rules,
>     which is pretty reasonable.
>
>     If people agree, I would like to redo the Handler resolution algorithm
>     in the Phase class with topology sort. Please comment. (Please note I
>     can not commit for a time line, but will do it when I get a free
>     time.)
>
>
> This was discuss sometime back please see here[1],[2]. I developed a
> simple algorithm[3] at the time
> this disscussion happen to resolve the phases.
> +1 to add this feature using any algorithm.
>
Exactly, as I remember correct solution was to implement the phase
resolving and dynamic phases.

Deepal

Reply via email to