On Tue, Dec 23, 2008 at 6:25 PM, Srinath Perera <hemapani@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 graphwhich
> is a directed acyclic graphand 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.
thanks,
Amila.
[1]http://marc.info/?l=axisuser&m=119868574526115&w=2
[2]http://marc.info/?l=axisdev&m=119746274128710&w=2
[3]http://issues.apache.org/jira/browse/AXIS23421
>
>
> Thanks very much
> Srinath
>
> 
> ============================
> Srinath Perera:
> Indiana University, Bloomington
> http://www.cs.indiana.edu/~hperera/<http://www.cs.indiana.edu/%7Ehperera/>
> http://www.bloglines.com/blog/hemapani
>

Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/
