Victor created AXIS2-5721:
-----------------------------

             Summary: Module engaged at the service level is used globally
                 Key: AXIS2-5721
                 URL: https://issues.apache.org/jira/browse/AXIS2-5721
             Project: Axis2
          Issue Type: Bug
          Components: modules
    Affects Versions: 1.6.3
            Reporter: Victor


Hi,

Maybe I misunderstood how Axis2 was meant to work, but I have addressing and 
rampart present in my modules directory, they are made available in the 
AxisConfiguration object, then addressing is globally engaged because it is 
present in the axis2.xml file.

Later I engage rampart manually on a specific service (by calling 
engageModule() on the AxisService object) and then the rampart handlers are 
executed for every request, even not those of the aforementioned service.
I looked at the code and apparently, engageModule() goes down to call 
PhaseResolver.engageModuleToOperation(AxisOperation, AxisModule, int) on all 
the operations of the AxisService, gather all the phases from the global 
AxisConfiguration object and then add the Handler to the needed phases 
(Security in this case) within the method 
PhaseHolder.addHandler(HandlerDescription).

Obviously, being in an Object-Oriented language, modifying the Phase without 
cloning it first will impact also the global AxisConfiguration that have 
references to them as well as all the other PhaseHolder for all the operations 
that have references to them…

Is that meant to be? I don't think so but I may be mistaken :)

Thank you



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to