You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rpc-dev@xml.apache.org by ar...@cornell.edu on 2001/11/28 20:58:13 UTC
Announcing new interceptors patch
Hello all,
Back in February I wrote a patch that added "interceptor" functionality
to the Helma XML-RPC library by Hannes Wallnoefer. This first cut was
a bit crude in the API it supplied for modifying calls.
(http://xmlrpc.helma.org/archives/xmlrpc/2001-February/000366.html)
I have recently been able to free up time and have taken a look again at
the library, now moved to Apache.org, with apparently no changes (or very
few). I have recently refactored and rewritten the interceptor
functionality from scratch, with a richer interceptor API, much more JavaDoc
documentation and code comments, and a more extensive and documented
example client/server. I have isolated my changes as much as possible to
helper classes, making minimal changes to the actual codebase of the
library.
Explanation, download, and instructions of the patch can be found at:
http://aeolus.cit.cornell.edu/xmlrpc.html
(please don't kill my Tomcat, this is a workstation ;)
The patch is 68 Kb (if that means anything to anybody), introduces 6 new
classes 2 of which are interfaces for the client and server
interceptors, another 2 of which are rather small utility classes, and
the last 2 of which are thin wrappers for keeping a list of
interceptors. The patch touches 5 XML-RPC classes: WebServer.java, to
add constructors accepting a specified XmlRpcServer object, and for header
inspection; XmlRpcClient.java and XmlRpcClientLite.java, to add methods
to register and interceptors, and read/write headers; XmlRpcServer.java,
to modify the execute() call with more parameters, and to call server
side interceptors; and XmlRpcProxyServlet, again, very minorly, to
retrieve and collect headers before/after calling XmlRpcServer.
Now that the XML-RPC library is bundled with Ant, this patch works "out
of the box". I would like to hear any and all feedback. I would
*really* like to move off our complex CORBA infrastructure to an XML-RPC
based solution, but cannot do this and maintain the same level of
security (Kerberos security with stream encryption) which is mandatory
for us, without "interceptor" functionality like this in the library.
Not having to maintain a parallel fork would make my life a lot easier :)
This functionality should not affect performance very much at all if
unused (and even less so if the library were switched to the
unsynchronized Java 2 Collections API)...it would amount to a handful of
no-op calls.
Aaron Hamid
Cornell University