Just to follow up, yes, it has been done before, by Marquee XML-RPC. I will try to use Marquee XML-RPC.
-John On Sun, Jun 27, 2004 at 04:58:56PM -0400, John Tobey wrote: > Folks, > > Thanks for the excellent implementation! Please tell me if what I > have in mind has already been done or is too stupid to even > contemplate. :-) > > I have written a few XML-RPC methods and can call them via WebServer. > I started writing JUnit tests for my methods and soon found myself > writing a client stub for each method. It occurred to me that the > stubs might be useful in contexts other than just testing. I realized > that the stub generation might be automated with a little > java.lang.reflect code yet to be written, assuming that I group my > method signatures in a Java interface. > > Something like: > > interface Foo { ... } // XML-RPC method signatures > XmlRpcClient client = ...; > Foo proxy = (Foo) AutoProxy.create (Foo.class, client, "foo"); > proxy.meth(arg); // Call "foo.meth" remotely! > > //////////////////////////////////////// > /// The code yet to be written. JDK 1.3 required. :-( > //////////////////////////////////////// > package org.apache.xmlrpc; > > public class AutoProxy implements InvocationHandler { > /** > * java.lang.reflect.InvocationHandler implementation > */ > public Object invoke (Object proxy, Method meth, Object[] args) > throws XmlRpcException, IOException > { > ... // translate meth/args into an XML-RPC call > } > > /** > * Create a proxy for the given methods (iFace) in the given > * namespace (prefix). > */ > public static Object create (Class iFace, > XmlRpcHandler client, > String prefix) > { > AutoProxy handler = new AutoProxy (iFace, client, prefix); > return Proxy.newInstance (iFace.getClassLoader(), > new Class[] { iFace }, > handler); > } > ... > } > > I am thinking this might be a good opportunity to get my feet wet in > the Java reflection API. What do you all think? > > Best regards, > -John -- John Tobey <[EMAIL PROTECTED]> \____^-^ /\ /\