On Fri, Sep 20, 2013 at 8:50 AM, Mark Thomas <ma...@apache.org> wrote:
> On 20/09/2013 16:02, Jeremy Boynes wrote: > > The only ordering concern for SCIs in the spec is that they are > > "discovered" following the classloader delegation model. This will > > typically be configured to load application classes first, > > something r1524727 does not do. > > The intention of the language around discovery is to clarify the > expected behaviour when both the container and the application provide > an implementation of the same SCI. As with any other class, the > delegation model adopted by the application must be used. > > It has no bearing on the order in which one SCI implementation is > loaded with respect to another SCI. > > It has no bearing on the order in which one SCI implementation is > invoked with respect to another SCI. > > r1524727 is fully compliant with the Servlet spec. Thanks for clarifying. It still leaves the issue related to ordering and also to duplicate functionality. For example, if both the application and the container use an SCI to bootstrap JAX-WS functionality, which should be used? The deployer can exclude the implementation in the application (using absolute ordering) but she cannot make that usable in preference to the one in the container unless they happen use the same implementation and SCI class. There is no mechanism to exclude the implementation provided by the container and use an equivalent but different mechanism included in the application. The SCIs we use (JSP and WS) are independent and can be called in any order. The same is true of Spring's SCI itself. What triggered this issue is application code being called by Spring's SCI that adds an implicit coupling to WS, whereas WS says the application should be using a listener. To date, there is no presumption of ordering of SCI invocation in the spec and so frameworks need to code defensively. I agree this is a burden on the framework and limits the deployer's flexibility. To address that I'm saying we need a more sophisticated mechanism for ordering/excluding SCIs akin to (but separate from) that used for ordering fragments. Do you see any issue with such a mechanism?