Hi, I recently needed to add introspection support so a user could use one of the C++ auto glue generation frameworks. I found an OLD set of patches for this, but they were very out of date. Instead of using these, I kept the same usage pattern but made a new implementation based on the current 1.2 code base.
I've implemented this support by making the following changes: * Create IntrospectiveHandlerMapping - a subclass of HandlerMapping that allows iteration over the list of handlers. * Create a new subclass of SystemHandler called IntrospectiveHandler. This class implements the system.listMethods, system.methodHelp and system.methodSignature calls. I decided to make a subclass, because I thought some may not want introspection. The listMethods/methodHelp functions use the same 'marker' system the old patches did. i.e. to mark a method as public via XMLRPC, you must declare a static of the form: static [final] public boolean <methodName>_public = true; This is necessary to avoid exposing a zillion of public methods which are not intended for XMLRPC. If you wish to provide 'help text' via introspection, you can optionally define a static string of the form: static [final] public String <methodName>_help = "This method will make you rich"; * I've also changed the sample server to use this IntrospectiveHandler instead of the old SystemHandler. * I've created a Servlet to automate the dispatching to handlers Do ya'll want any of these changes? Who should I send the diffs to? Ispiri is happy to contribute these changes under the Apache license. Kevin