You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by jo...@apache.org on 2005/11/12 23:38:27 UTC
svn commit: r332854 - in
/webservices/xmlrpc/branches/b20050512_streaming/src/site: ./ apt/ fml/
xdoc/ xdoc/images/
Author: jochen
Date: Sat Nov 12 14:38:04 2005
New Revision: 332854
URL: http://svn.apache.org/viewcvs?rev=332854&view=rev
Log:
Added preliminary docs.
Added:
webservices/xmlrpc/branches/b20050512_streaming/src/site/
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/client.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/contributing.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/download.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/index.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/server.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/types.apt
webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/
webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/faq.fml
webservices/xmlrpc/branches/b20050512_streaming/src/site/site.xml
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/changes.xml
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/feather.gif (with props)
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/group-logo.gif (with props)
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/project-logo.jpg (with props)
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xml-logo.gif (with props)
webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xmlrpc-logo.gif (with props)
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/client.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/client.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/client.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/client.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,204 @@
+ -------------------------
+ The Apache XML-RPC Client
+ -------------------------
+
+The XmlRpcClient
+
+ Before talking to an XML-RPC server, you need an instance of
+ {{{apidocs/org/apache/xmlrpc/client/XmlRpcClient.html}XmlRpcClient}}.
+
+ The XmlRpcClient is a stateless, thread safe object. The clients
+ configuration occurs by setting the following objects:
+
+*------------------+--------------------------------------------------------------+
+| Name | Description |
+*------------------+--------------------------------------------------------------+
+| ClientConfig | This object is an instance of |
+| | {{{apidocs/org/apache/xmlrpc/client/XmlRpcClientConfig.html} |
+| | XmlRpcClientConfig}}. It has a lot of atomic properties, |
+| | that specify details like server URL, credentials, character |
+| | set, and the like. |
+*------------------+--------------------------------------------------------------+
+| TransportFactory | The task of the transport factory is to create an object, |
+| | which uses the client configuration for talking to the |
+| | server. For example, there is a transport factory, which |
+| | uses the java.net classes. Another example is a transport |
+| | factory based on the Jakarta Commons Http Client. However, |
+| | transport factories don't need to use HTTP: An excellent |
+| | example is the local transport factory, which talks to an |
+| | embedded server. This last factory is, of course, very |
+| | useful for debugging. |
+*------------------+--------------------------------------------------------------+
+| XmlWriterFactory | The XmlWriter is an object, which creates XML for you. |
+| | Typically, you do not need to care for this object, because |
+| | the defaults should be fine. However, it is useful, if you |
+| | need a special XML syntax. |
+*------------------+--------------------------------------------------------------+
+
+ So, let's have a look at a first example:
+
+-----------------------------------------------------------------------------------
+ import org.apache.xmlrpc.client.XmlRpcClient;
+ import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
+
+ XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
+ config.setServerUrl("http://127.0.0.1:8080/xmlrpc");
+ XmlRpcClient client = new XmlRpcClient();
+ client.setConfig(config);
+ Object[] params = new Object[]{new Integer(33), new Integer(9)};
+ Integer result = (Integer) client.execute("Calculator.add", params);
+-----------------------------------------------------------------------------------
+
+ In other words, we invoke the remote method <Calculator.add>, passing the arguments
+ 2 and 3. Hopefully, we know <the answer>. :-)
+
+The Transport Factory
+
+ The above example uses the java.net.URLConnection classes to talk to the server.
+ What, if you'd prefer to use the {{{http://jakarta.apache.org/commons/httpclient}
+ Jakarta HTTP Client}}? There's basically just a single line, you'd need to add:
+
+-----------------------------------------------------------------------------------
+ import org.apache.xmlrpc.client.XmlRpcClient;
+ import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
+ import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
+
+ XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
+ config.setServerUrl("http://127.0.0.1:8080/XmlRpcServlet");
+ XmlRpcClient client = new XmlRpcClient();
+ client.setTransportFactory(new XmlRpcCommonsTransportFactory());
+ client.setConfig(config);
+ Object[] params = new Object[]{new Integer(2), new Integer(3)};
+ Integer result = (Integer) client.execute("Calculator.add", params);
+-----------------------------------------------------------------------------------
+
+ In other words, the transport factory determines the way, how the client
+ communicates with the server. The most important transport factories are:
+
+*--------------------------------+-------------------------------------------+
+| Name | Description |
+*--------------------------------+-------------------------------------------+
+| XmlRpcSunHttpTransportFactory | This is the default factory, connecting |
+| | to an HTTP server using the |
+| | <<<java.net.HttpURLConnection>>>. |
+*--------------------------------+-------------------------------------------+
+| XmlRpcCommonsTransportFactory | Another HTTP transport factory, which |
+| | uses the Jakarta Commons HttpClient. |
+| | The main advantage over the default |
+| | factory is, that the Commons HttpClient |
+| | allows direct access to the result |
+| | document. This allows a much lower |
+| | memory profile. |
+*--------------------------------+-------------------------------------------+
+| XmlRpcLiteHttpTransportFactory | Yet another HTTP transport factory, which |
+| | is based on an own and very lightweight |
+| | HTTP client. It is possibly the fastest |
+| | of the HTTP transport factories. On the |
+| | other hand, it doesn't support HTTP/1.1, |
+| | thus cannot use keepalive connections. |
+*--------------------------------+-------------------------------------------+
+| XmlRpcLocalTransportFactory | This transport factory has an embedded |
+| | XML-RPC server, which is invoked via |
+| | direct Java calls. This is particularly |
+| | useful for debugging and development. |
+*--------------------------------+-------------------------------------------+
+
+The Client Configuration
+
+ The transport factory uses the clients configuration. Obviously, the
+ clients configuration depends on the transport factory. In particular,
+ different transport factories depend on different configuration types:
+
+ * The HTTP transport factories need an instance of
+ <<<org.apache.xmlrpc.client.XmlRpcHttpClientConfig>>>.
+
+ * The local transport factory requires an instance of
+
+ <<<org.apache.xmlrpc.client.XmlRpcLocalClientConfig>>>.
+
+ For convenience, you can simply use the
+ <<<org.apache.xmlrpc.client.XmlRpcClientConfigImpl>>>, which implements
+ both interfaces.
+
+ Let's have a look at the various properties, which HTTP client configurations
+ accept:
+
+*-----------------------+---------------------------------------------------+
+| Property Name | Description |
+*-----------------------+---------------------------------------------------+
+| basicUserName | The user name and password, if your HTTP server |
+| basicPassword | requires basic authentication. |
+*-----------------------+---------------------------------------------------+
+| basicEncoding | Specifies the encoding being used to create the |
+| | base 64 encoded Authorization header, which is |
+| | being used for basic authentication. |
+| | |
+| | By default, the value of the encoding property |
+| | is used. The encoding property itself defaults to |
+| | UTF-8. |
+*-----------------------+---------------------------------------------------+
+| contentLengthOptional | Enables the faster and memory saving streaming |
+| | mode: The client will not set the content-length |
+| | header and the request is directly written to the |
+| | HTTP requests output stream. The XML-RPC |
+| | specification requires setting a content-length |
+| | header. For that reason, the streaming mode is |
+| | only available, if the property |
+| | enabledForExtensions is set was well. |
+*-----------------------+---------------------------------------------------+
+| enabledForExtensions | Whether the vendor extensions of Apache XML-RPC |
+| | should be enabled. By default, Apache XML-RPC is |
+| | strictly compliant to the XML-RPC specification. |
+| | Unfortunately, this specification has serious |
+| | limitations. For example, it requires setting a |
+| | content-length header. This enforces writing the |
+| | XML-RPC request and response to byte arrays, |
+| | before sending them over the net. |
+| | |
+| | Vendor extensions include the very fast and |
+| | memory saving streaming mode (by disabling the |
+| | content-length header), the compression of |
+| | request and/or response. In particular, a lot of |
+| | additional data types may be transmitted, when |
+| | extensions are enabled: longs, shorts, bytes, |
+| | floats, DOM nodes, instances of |
+| | java.io.Serializable, or JAXB objects. |
+*-----------------------+---------------------------------------------------+
+| encoding | Sets the encoding, which is used for creating the |
+| | XML-RPC request. The default encoding is UTF-8. |
+| | |
+| | Typically, the encoding is also used for the |
+| | basic authentications, if any. However, you may |
+| | specify a different encoding for the credentials |
+| | using the basicEncoding property. |
+*-----------------------+---------------------------------------------------+
+| gzipCompressing | Whether the XML-RPC request should be compressed. |
+| | Request compression is violating the XML-RPC |
+| | specification, that's why gzipCompressing is only |
+| | available, if the enabledForExtension property is |
+| | also set. For the same reason, you should not |
+| | assume, that the server is able to handle |
+| | compressed requests, unless you know, that the |
+| | server is itself running the streaming branch of |
+| | Apache XML-RPC. |
+*-----------------------+---------------------------------------------------+
+| gzipRequesting | Requests, that the server will be compressing the |
+| | response. Response compression is violating the |
+| | XML-RPC specification. Therefore, this feature is |
+| | only available, if the enabledForExtension |
+| | property is set. Also, do not assume, that the |
+| | server will actually compress the response, |
+| | it is an Apache XML-RPC, streaming branch, server.|
+*-----------------------+---------------------------------------------------+
+
+ And these properties are for configuring the local transport factory:
+
+*-----------------------+---------------------------------------------------+
+| Property Name | Description |
+*-----------------------+---------------------------------------------------+
+| xmlRpcServer | This is the embedded XML-RPC server, which is |
+| | called to execute the clients requests. |
+| | Obviously, this is an extremely fast transport. |
+| | However, its main use is for debugging and |
+| | development. |
+*-----------------------+---------------------------------------------------+
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/contributing.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/contributing.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/contributing.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/contributing.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,19 @@
+ ------------
+ Contributing
+ ------------
+
+Contributing
+
+ A great {{{http://jakarta.apache.org/site/contributing.html}description}}
+ of contributing to Apache XML-RPC is available from the Jakarta
+ project.
+
+Submitting Patches
+
+ The preferred patch format is unidiff. Emails containing
+ patches should be sent to the mailing list xmlrpc-dev@ws.apache.org, and
+ prefix their subject lines with <<[PATCH]>>. Patches are also
+ accepted via the {{{http://issues.apache.org/jira/browse/XMLRPC}issue tracker}}.
+ The Jakarta project provides a description of
+ {{{http://jakarta.apache.org/site/source.html}life with ASF source code}}
+ -- look for the <<Patches>> section.
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/download.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/download.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/download.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/download.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,14 @@
+ ---------
+ Downloads
+ ---------
+
+Downloading Apache XML-RPC
+
+ You can download the latest release version from the
+ {{{http://www.apache.org/dyn/closer.cgi/ws/xmlrpc/}distribution directory}}.
+
+ Alternatively, you can get the latest code snapshot via
+ {{{http://svn.apache.org/repos/asf/webservices/xmlrpc}Subversion}}.
+
+ Information on how to build and use the software is included in the
+ package.
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/index.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/index.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/index.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/index.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,24 @@
+ --------------
+ Apache XML-RPC
+ --------------
+
+About Apache XML-RPC
+
+ Apache XML-RPC is a Java implementation of
+ {{{http://www.xmlrpc.com/}XML-RPC}}, a popular protocol that
+ uses XML over HTTP to implement remote procedure calls.
+
+ The streaming branch of Apache XML-RPC is still compliant to the
+ {{{http://www.xmlrpc.com/spec}XML-RPC specification}}.
+ However, the user may enable several vendor extensions
+ are available, that greatly extend the power of XML-RPC:
+
+ * All primitive Java types are supported, including long,
+ byte, short, and double.
+
+ * DOM nodes, or JAXB objects, can be transmitted. So are
+ objects implementing the java.io.Serializable interface.
+
+ * Both server and client can operate in a streaming mode,
+ which preserves resources much better than the default
+ mode, which is based on large internal byte arrays.
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/server.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/server.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/server.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/server.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,104 @@
+ -------------------------
+ The Apache XML-RPC Server
+ -------------------------
+
+
+Server-side XML-RPC
+
+ If you have read and understood the previous document about the
+ {{{./client.html}Apache XML-RPC client}}, then the server isn't too
+ much news.
+
+ First of all, there is an object, called the XmlRpcServer. This objects
+ purpose is to receive and execute XML-RPC calls by the clients. The
+ XmlRpcServer <<can>> be embedded into a servlet container, or another
+ HTTP server (for example, the minimal web server, that comes with
+ XML-RPC), but it doesn't need to. Take the local transport as an
+ example: In that case the XML-RPC server is simply embedded into the
+ client application.
+
+ Like the XmlRpcClient, the XmlRpcServer needs a configuration, which
+ is given by the XmlRpcServerConfigImpl object.
+
+The XML-RPC Servlet
+
+ The easiest of creating an XML-RPC Server is the XmlRpcServlet. This
+ servlet allows you to create a server within 10 minutes or so:
+
+ [[1]] Create a class, or a set of classes, which are implementing
+ the remote procedure calls. Here's an example of such a class:
+
+-----------------------------------------------------------------------------------
+ package org.apache.xmlrpc.demo;
+ public class Calculator {
+ public int add(int i1, int i2) {
+ return i1 + i2;
+ }
+ public int subtract(int i1, int i2) {
+ return i1 - i2;
+ }
+ }
+-----------------------------------------------------------------------------------
+
+ This class has two public, non-static methods, which should
+ be available to the clients. The only important thing to
+ consider is: The class must be stateless. In other words,
+ it must not contain any non-final fields. (The same restriction
+ applies, for example, to servlet classes.)
+
+ [[2]] Create a property file, which contains at least one property.
+ The property name is arbitrary, and the property value is the
+ fully qualified name of the Calculator class. For example, like
+ that:
+
+-----------------------------------------------------------------------------------
+ Calculator=org.apache.xmlrpc.demo.Calculator
+-----------------------------------------------------------------------------------
+
+ The property file must be called <<<XmlRpcServlet.properties>>>,
+ and it must be located in the package org.apache.xmlrpc.webserver.
+ In other words, you would typically put it into the directory
+ org/apache/xmlrpc/webserver and add it to your jar file.
+
+ [[3]] Add entries like the following to your war files web.xml:
+
+-----------------------------------------------------------------------------------
+ <servlet>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <servlet-class>org.apache.xmlrpc.webserver.XmlRpcServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <url-pattern>/xmlrpc</url-pattern>
+ </servlet-mapping>
+-----------------------------------------------------------------------------------
+
+ That's it! You have just created your first XML-RPC server. :-)
+
+The Server configuration
+
+ Unlike in the case of the clients configuration, there isn't much to
+ configure on the server. The reason is, that most things depend on the
+ client and the HTTP headers, which are received by the client. There
+ is one very important property to configure, though:
+
+*-----------------------+---------------------------------------------------+
+| Property Name | Description |
+*-----------------------+---------------------------------------------------+
+| enabledForExtensions | Whether the vendor extensions of Apache XML-RPC |
+| | should be enabled. By default, Apache XML-RPC is |
+| | strictly compliant to the XML-RPC specification. |
+| | |
+| | Enabling this property doesn't indicate, that the |
+| | server is unable to serve requests by standard |
+| | clients: In contrary, the servers behaviour |
+| | depends on the client. Setting this property to |
+| | true will only advice the server, that it <<may>> |
+| | accept requests, which ask for vendor extensions. |
+| | |
+| | For example, if a client sends a content-length |
+| | header, then the server assumes, that the client |
+| | <<wants>> a content-length header in the request |
+| | and disables the streaming mode. |
+*-----------------------+---------------------------------------------------+
+
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/types.apt
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/types.apt?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/types.apt (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/apt/types.apt Sat Nov 12 14:38:04 2005
@@ -0,0 +1,72 @@
+ ------------------
+ XML-RPC Data Types
+ ------------------
+
+Data Types
+
+ The {{{http://www.xmlrpc.com/spec}XML-RPC specification}} defines the following
+ available data types:
+
+*--------------------+--------------------+-------------------------------------+
+| Java Type | XML Tag Name | Description |
+*--------------------+--------------------+-------------------------------------+
+| Integer | <i4>, or | A 32-bit, signed, and non-null, |
+| | <int> | integer value. |
+*--------------------+--------------------+-------------------------------------+
+| Boolean | <boolean> | A non-null, boolean value (0, or |
+| | | 1). |
+*--------------------+--------------------+-------------------------------------+
+| String | <string> | A string, non-null. |
+*--------------------+--------------------+-------------------------------------+
+| Double | <double> | A signed, non-null, double |
+| | | precision, floating point number. |
+| | | (64 bit) |
+*--------------------+--------------------+-------------------------------------+
+| java.util.Calendar | <dateTime.iso8601> | A pseudo ISO8601 timestamp, like |
+| java.util.Date | | 19980717T14:08:55. However, |
+| | | compared to a true ISO8601 value, |
+| | | milliseconds, and time zone |
+| | | informations are missing. |
+*--------------------+--------------------+-------------------------------------+
+| byte[] | <base64> | A base64 encoded byte array. |
+*--------------------+--------------------+-------------------------------------+
+| java.util.Map | <struct> | A key value pair. The keys are |
+| | | strings. The values may be any |
+| | | valid data type, including another |
+| | | map. |
+*--------------------+--------------------+-------------------------------------+
+| Object[] | <array> | An array of objects. The array |
+| java.util.List | | elements may be any valid data |
+| | | type, including another array. |
+*--------------------+--------------------+-------------------------------------+
+
+ If the property <<<enabledForExtensions>>> is set, then additional data
+ types become valid. (Both client and server do support this property.)
+
+*----------------------+--------------------+-------------------------------------+
+| Java Type | XML Tag Name | Description |
+*----------------------+--------------------+-------------------------------------+
+| None | <ex:nil> | A typeless null value. |
+*----------------------+--------------------+-------------------------------------+
+| Byte | <ex:i1> | A 8-bit, signed, and non-null, |
+| | | integer value. |
+*----------------------+--------------------+-------------------------------------+
+| Float | <ex:float> | A signed, non-null, double |
+| | | precision, floating point number. |
+| | | (32 bit) |
+*----------------------+--------------------+-------------------------------------+
+| org.w3c.dom.Node | <ex:dom> | A DOM node, which is being |
+| | | transmitted as an embedded XML |
+| | | fragment. |
+*----------------------+--------------------+-------------------------------------+
+| Short | <ex:i2> | A 16-bit, signed, and non-null, |
+| | | integer value. |
+*----------------------+--------------------+-------------------------------------+
+| java.io.Serializable | <ex:serializable> | An object, which is converted into |
+| | | a serialized representation and |
+| | | transmitted as a base 64 encoded |
+| | | byte array. |
+*----------------------+--------------------+-------------------------------------+
+
+ In the above table, the prefix <<<ex>>> refers to the namespace URI
+ <<<http://ws.apache.org/xmlrpc/namespaces/extensions>>>.
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/faq.fml
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/faq.fml?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/faq.fml (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/fml/faq.fml Sat Nov 12 14:38:04 2005
@@ -0,0 +1,84 @@
+<faqs title="FAQ">
+ <part id="general">
+ <faq id="state">
+ <question>What is the state of the streaming branch?</question>
+ <answer>
+ <p>Quite different from what you possibly want to hear: It
+ is not even alpha software.</p>
+ <p>It is a proposal, developed by <em>one developer</em> of
+ the Apache XML-RPC community. It has absolutely no formal
+ acceptance by the developer community. It isn't reviewed.</p>
+ <p>The purpose of the proposal is to recieve the communities
+ feedback. If the community refuses the streaming branch,
+ then it will possibly never even see a formal alpha release.
+ We'll have to see.</p>
+ </answer>
+ </faq>
+ </part>
+
+ <part id="client">
+ <faq id="compression_request">
+ <question>How do I enable request compression?</question>
+ <answer>
+ <p>That's simple: Set the properties "enabledForExtensions"
+ and "gzipCompressing". That said, note the following
+ hints:</p>
+ <ul>
+ <li>Setting these properties will only work, if the XML-RPC
+ server is aware of request compression. Compression is a
+ violation of the XML-RPC specification, so typically the
+ server will refuse the request, unless it is an Apache
+ XML-RPC server with version 2 or later. (Apache XML-RPC 2
+ supports request compression, although it was officially
+ designed to be strictly compliant to the XML-RPC specification.
+ However, noone was aware, that compression violates the
+ specification. :-)</li>
+ <li>Compressing the request doesn't mean that the response
+ will also be compressed. You need to request response
+ compression to achieve that.</li>
+ </ul>
+ </answer>
+ </faq>
+
+ <faq id="compression_response">
+ <question>How do I enable response compression?</question>
+ <answer>
+ <p>That's as simple as enabling request compression: Set the
+ properties "enabledForExtensions" and "gzipRequesting".
+ That said, note the following hints:</p>
+ <ul>
+ <li>Requesting gzip compression is a standard HTTP feature.
+ In other words, you may safely request compression from
+ any XML-RPC server, even if it doesn't run Apache XML-RPC.
+ </li>
+ <li>However, requesting compression doesn't necessarily mean,
+ that the response *is* compressed. It depends on the server.</li>
+ </ul>
+ </answer>
+ </faq>
+ </part>
+
+ <part id="server">
+ <faq id="streaming_mode">
+ <question>How do I enable streaming mode?</question>
+ <answer>
+ <p>Set the property "enabledForExtensions". Note, that enabling
+ the streaming mode doesn't mean, that all responses are served
+ in streaming mode. It depends on the clients:</p>
+ <ul>
+ <li>If a client sends a content-length header, then the server
+ assumes, that the client is a traditional XML-RPC application
+ and doesn't support the vendor extensions from Apache XML-RPC.
+ Consequently, the server assumes, that it needs to set the
+ content-length header itself and disables the streaming mode
+ for that particular request.</li>
+ <li>However, if the client doesn't send a content-length header,
+ then the server assumes that it will be able to accept any
+ standard HTTP/1.1 request and enable the streaming mode.
+ Streaming mode means, in particular, that the response will
+ not contain a content-length header.</li>
+ </ul>
+ </answer>
+ </faq>
+ </part>
+</faqs>
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/site.xml
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/site.xml?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/site.xml (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/site.xml Sat Nov 12 14:38:04 2005
@@ -0,0 +1,26 @@
+<project name="Maven">
+ <bannerLeft>
+ <name>Apache XML-RPC</name>
+ <src>http://ws.apache.org/xmlrpc/images/xmlrpc-logo.gif</src>
+ <href>http://ws.apache.org/xmlrpc/</href>
+ </bannerLeft>
+ <body>
+ <links>
+ <item name="Apache" href="http://www.apache.org/"/>
+ <item name="Webservices" href="http://ws.apache.org/"/>
+ <item name="XML-RPC" href="http://ws.apache.org/xmlrpc/"/>
+ </links>
+
+ <menu name="XML-RPC">
+ <item name="Overview" href="/index.html"/>
+ <item name="Client Classes" href="/client.html"/>
+ <item name="Server Side XML-RPC" href="/server.html"/>
+ <item name="XML-RPC Types" href="/types.html"/>
+ <item name="Download" href="/download.html"/>
+ <item name="FAQ" href="/faq.html"/>
+ <item name="Contributing" href="/contributing.html"/>
+ </menu>
+
+ ${reports}
+
+ </body></project>
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/changes.xml
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/changes.xml?rev=332854&view=auto
==============================================================================
--- webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/changes.xml (added)
+++ webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/changes.xml Sat Nov 12 14:38:04 2005
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<document>
+ <properties>
+ <title>Changes</title>
+ <author email="sgoeschl@apache.org">Siegfried Goeschl</author>
+ </properties>
+
+ <body>
+ <release version="2.x-streaming-dev">
+ <action dev="jochen">
+ Complete rewrite with vendor extensions.
+ </action>
+ </release>
+ <release version="2.0-beta" date="2005-Apr-27">
+ <action dev="sgoeschl" type="fix">
+ Fixed broken ANT build after upgrading to commons-codec-1.3.jar
+ </action>
+ <action dev="sgoeschl" type="update">
+ Upgrading to commons-codec-1.3.jar
+ </action>
+ <action dev="hgomez" type="update">
+ Upgrading to Apache Licence 2.0
+ </action>
+ <action dev="hgomez" type="update">
+ CommonsXmlRpcTransport support gzip compression for request and reply
+ </action>
+ <action dev="sgoeschl" type="update">
+ Rewrote the xdocs/changes.xml to be used with the Maven build
+ </action>
+ <action dev="sgoeschl" type="update">
+ Removed the dependency of fesi-1.1.5.jar since it is not used
+ with the current Ant/Maven build
+ </action>
+ <action dev="sgoeschl" type="update">
+ Updated the Maven build to run nicely with Maven 1.0.2
+ </action>
+ <action dev="sgoeschl" type="update">
+ Updated the ANT build to download dependend JARs automagically
+ </action>
+ </release>
+ </body>
+</document>
+
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/feather.gif
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/feather.gif?rev=332854&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/feather.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/group-logo.gif
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/group-logo.gif?rev=332854&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/group-logo.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/project-logo.jpg
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/project-logo.jpg?rev=332854&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/project-logo.jpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xml-logo.gif
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xml-logo.gif?rev=332854&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xml-logo.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xmlrpc-logo.gif
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xmlrpc-logo.gif?rev=332854&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/xmlrpc/branches/b20050512_streaming/src/site/xdoc/images/xmlrpc-logo.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream