Since the p2psockets port of xmlrpc is obsolete (version 1.2b), I decided today to do my own port of 3.0rc1. Since p2psockets replace normal java.net sockets this task is quite easy. On the server at least all I had to do was to subclass WebServer or ServletWebServer and provide an implementation for the createServerSocket method, that now creates a P2PServerSocket instead of a ServerSocket. However, on the client side things are a little uglier, since here XmlRpcLiteHttpTransport does not provide such an extension point. The private getOutputStream method creates a normal Socket, and there is little I can do about it ... other than copying the whole file, changing that single line and the class name. Is there any easy way to do such an extension? If not, would it be possible to have a protected createSocket method in the XmlRpcLiteHttpTransport class that is invoked in the getOutputStream method?
PS: In case you think this it is a good idea, I attached a patch.