I have just committed a new class that is intended to be a re-usable base class for AxisServlet, AdminServlet and any other servlets that need access to the AxisEngine.
I have not committed the modified versions of AxisServlet and AdminServlet that use it yet, although I have them on my laptop. I wanted to get the new class into SCM first, while I sort out the others. One big issue is that this refactoring exposes a problem that has always been in the code: the engine.cleanup() stuff in the Servlet.destroy() method relied upon there being no other references to the engine around, but as the AdminServlet was getting a reference through the back door, that wasnt true. It's just more explicit now. Also the construction of the engine was only synchronised to the servlet, when it should be webapp wide, hence the sync of context now. Ideally I'd like to use the servlet 2.3 lifecycle stuff, rather than servlet destructor instead, but guess everyone is still supporting servlet 2.2, right? The other big issue is that I dont see a setup for testing the servlets inside axis yet. I can do it as part of my own project, but that is a double build and time-wasting. I am going to create a servlet subdir of test and put in a full webapp deploy followed by http unit test gets of the servlets. Once that is done we can add tests for jws working, servlets generating the faults we need, happyaxis.jsp being happy, etc. I say we, though can start it off having the appropriate code to hand. After that comes load tests.