Hi, Do ya'll want to add introspection to XML-RPC? It sounds like there is not huge amount of interest. I'm fine with that, because it uses only the public XML-RPC interfaces I won't have merge hell with future releases.
I have a test client, is there an existing harness I should add it to? If you are interested, who should I send the diffs to? Kevin On Tuesday 10 September 2002 15:33, Kevin Hester wrote: > 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