> > Yes but this isn't XML-RPC and XML-RPC is what the Apache code is
> > supposed to implement.
>
> I thought the whole idea about abstracting the transport layer was
> breaking the spec.

The idea of abstracting the transport layer was to make it easier to work
with custom or different HTTP implementations. There are almost as
many HTTP implementations as there are programmers, and some servers
are more fussy about what they accept. It also allows simpler implementation
of HTTPS, and enhancements outside of the spec (eg. use of HTTP headers)
which are implementation dependent.

The original code already had two HTTP implementations, 'full' and 'lite',
and people wanted to extend this to support HTTPS, and HTTP using
an external client or server implementation (eg. an internal HTTP library,
or embedding the server within a servlet).

> You implement XML-RPC only in the default plugin, the rest is just a
> framework, a code that does common things and if you support different
> transports, putting the prolog into message isn't common, because

Well, the goal of the package when it was first created was to create a
Java implementation of the XML-RPC specification. This is (as far as
I know) still the main goal. We'd like to make things more accessible
and customizable to developers, but not to the extent that we encourage
people to do things that break interoperability.

The reason that the code is moving more in the direction of being a
framework is to increase options for developers who want to embed
XML-RPC in their application. The old server code was quite monolithic,
it is now possible to embed the Apache XML-RPC server in your own
client and server code. However, the library itself promotes interoperation.

Andrew.

Reply via email to