Since the P2PSockets port of Apache XML-RPC is ancient (version 1.2b), I decided today to do my own port of 3.0rc1. This task was very easy since p2p-sockets replace normal java.net sockets. On the server at all I had to do was to subclass WebServer and 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. Since I don’t know any easy way to do such an extension I suggested the addition of a protected createSocket method in the XmlRpcLiteHttpTransport class that is invoked in the getOutputStream method.
[Added: 26-08-2006] In case somebody is interested, the ports for version 3.0rc1 and 3.0 (unreleased) are available here.