You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-auto@ws.apache.org by jo...@apache.org on 2007/08/12 06:09:10 UTC

svn commit: r565002 [3/3] - in /webservices/xmlrpc/site: ./ apidocs/ apidocs/org/apache/xmlrpc/common/ apidocs/org/apache/xmlrpc/common/class-use/ apidocs/org/apache/xmlrpc/server/ apidocs/org/apache/xmlrpc/server/class-use/ apidocs/org/apache/xmlrpc/u...

Added: webservices/xmlrpc/site/rat-report.html
URL: http://svn.apache.org/viewvc/webservices/xmlrpc/site/rat-report.html?view=auto&rev=565002
==============================================================================
--- webservices/xmlrpc/site/rat-report.html (added)
+++ webservices/xmlrpc/site/rat-report.html Sat Aug 11 21:09:07 2007
@@ -0,0 +1,1081 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>ws-xmlrpc - RAT (Release Audit Tool) results</title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+      </head>
+  <body class="composite">
+    <div id="banner">
+                  <a href="" id="bannerLeft">
+    
+                                            <img src="images/xmlrpc-logo.gif" alt="" />
+    
+            </a>
+                    <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+          
+  
+
+  
+    
+  
+  
+            <div class="xleft">
+        Last Published: 08/12/2007
+                      </div>
+            <div class="xright">      <a href="http://www.apache.org/">Apache</a>
+          |
+          <a href="../">Webservices</a>
+          |
+          <a href="">XML-RPC</a>
+          
+  
+
+  
+    
+  
+  
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+           
+  
+
+  
+    
+  
+  
+                   <h5>XML-RPC</h5>
+        <ul>
+              
+    <li class="none">
+              <a href="index.html">Overview</a>
+        </li>
+              
+    <li class="none">
+              <a href="client.html">Client Classes</a>
+        </li>
+              
+    <li class="none">
+              <a href="server.html">Server Side XML-RPC</a>
+        </li>
+              
+    <li class="none">
+              <a href="extensions.html">Vendor Extensions</a>
+        </li>
+              
+    <li class="none">
+              <a href="ssl.html">SSL</a>
+        </li>
+              
+    <li class="none">
+              <a href="introspection.html">Introspection</a>
+        </li>
+              
+    <li class="none">
+              <a href="advanced.html">Advanced Techniques</a>
+        </li>
+              
+    <li class="none">
+              <a href="types.html">XML-RPC Types</a>
+        </li>
+              
+    <li class="none">
+              <a href="download.html">Download</a>
+        </li>
+              
+    <li class="none">
+              <a href="faq.html">FAQ</a>
+        </li>
+              
+    <li class="none">
+              <a href="contributing.html">Contributing</a>
+        </li>
+              
+    <li class="none">
+              <a href="xmlrpc2">XML-RPC 2</a>
+        </li>
+              
+    <li class="none">
+              <a href="links.html">Links</a>
+        </li>
+          </ul>
+          <h5>Project Documentation</h5>
+        <ul>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+              <a href="project-info.html">Project Information</a>
+              </li>
+              
+                
+              
+      
+            
+      
+            
+            
+              
+            <li class="expanded">
+              <a href="project-reports.html">Project Reports</a>
+                <ul>
+                  
+    <li class="none">
+              <a href="changes-report.html">Changes Report</a>
+        </li>
+                  
+    <li class="none">
+              <a href="apidocs/index.html">JavaDocs</a>
+        </li>
+                  
+    <li class="none">
+              <strong>RAT Report</strong>
+        </li>
+              </ul>
+        </li>
+          </ul>
+                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                       
+  
+
+  
+    
+  
+  
+        </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <div class="section"><h2>RAT (Release Audit Tool) results</h2><p>The following document contains the results of <a href="${project.url}">RAT (Release Audit Tool)</a>.</p><p><div class="source"><pre>
+*****************************************************
+Summary
+-------
+Notes: 1
+Binaries: 5
+Archives: 0
+Standards: 18
+
+Apache Licensed: 0
+Generated Documents: 0
+
+JavaDocs are generated and so license header is optional
+Generated files do not required license headers
+
+18 Unknown Licenses
+
+*******************************
+
+Archives (+ indicates readable, $ unreadable): 
+
+ 
+*****************************************************
+  Files with AL headers will be marked L
+  Binary files (which do not require AL headers) will be marked B
+  Compressed archives will be marked A
+  Notices, licenses etc will be marked N
+  N     LICENSE.txt
+ !????? pom.xml
+ !????? src/changes/changes.xml
+ !????? src/main/assembly/bin.xml
+ !????? src/main/assembly/src.xml
+ !????? src/site/apt/advanced.apt
+ !????? src/site/apt/client.apt
+ !????? src/site/apt/contributing.apt
+ !????? src/site/apt/download.apt
+ !????? src/site/apt/extensions.apt
+ !????? src/site/apt/index.apt
+ !????? src/site/apt/introspection.apt
+ !????? src/site/apt/links.apt
+ !????? src/site/apt/server.apt
+ !????? src/site/apt/ssl.apt
+ !????? src/site/apt/types.apt
+ !????? src/site/fml/faq.fml
+ !????? src/site/site.xml
+ !????? src/site/xdoc/changes.xml
+  B     src/site/xdoc/images/feather.gif
+  B     src/site/xdoc/images/group-logo.gif
+  B     src/site/xdoc/images/project-logo.jpg
+  B     src/site/xdoc/images/xml-logo.gif
+  B     src/site/xdoc/images/xmlrpc-logo.gif
+ 
+ *****************************************************
+ Printing headers for files without AL header...
+ 
+ 
+ =======================================================================
+ ==pom.xml
+ =======================================================================
+ &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;project
+    xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
+    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+    xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
+    &lt;parent&gt;
+      &lt;groupId&gt;org.apache&lt;/groupId&gt;
+      &lt;artifactId&gt;apache&lt;/artifactId&gt;
+      &lt;version&gt;4&lt;/version&gt;
+    &lt;/parent&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.xmlrpc&lt;/groupId&gt;
+    &lt;artifactId&gt;xmlrpc&lt;/artifactId&gt;
+    &lt;name&gt;Apache XML-RPC&lt;/name&gt;
+    &lt;version&gt;3.1&lt;/version&gt;
+    &lt;description&gt;
+        Apache XML-RPC is a Java implementation of XML-RPC, a popular protocol that uses XML over HTTP to
+        implement remote procedure calls. Compared to SOAP, or JAX-RPC, it is stable, much simpler and easier to handle.
+        Version 3 of Apache XML-RPC introduces several important vendor extensions over the original XML-RPC
+        specification.
+    &lt;/description&gt;
+    &lt;packaging&gt;pom&lt;/packaging&gt;
+    &lt;modules&gt;
+      &lt;module&gt;common&lt;/module&gt;
+      &lt;module&gt;client&lt;/module&gt;
+      &lt;module&gt;server&lt;/module&gt;
+      &lt;module&gt;tests&lt;/module&gt;
+    &lt;/modules&gt;
+    &lt;url&gt;http://ws.apache.org/xmlrpc/&lt;/url&gt;
+    &lt;issueManagement&gt;
+        &lt;system&gt;jira&lt;/system&gt;
+        &lt;url&gt;http://issues.apache.org/jira/BrowseProject.jspa?pid=10465&lt;/url&gt;
+    &lt;/issueManagement&gt;
+    &lt;ciManagement&gt;
+      &lt;system&gt;Gump&lt;/system&gt;
+      &lt;url&gt;http://vmgump.apache.org/gump/public/ws-xmlrpc/xmlrpc/index.html&lt;/url&gt;
+    &lt;/ciManagement&gt;
+    &lt;inceptionYear&gt;2001&lt;/inceptionYear&gt;
+    &lt;mailingLists&gt;
+      &lt;mailingList&gt;
+        &lt;name&gt;XML-RPC Developers&lt;/name&gt;
+        &lt;subscribe&gt;xmlrpc-dev-subscribe@ws.apache.org&lt;/subscribe&gt;
+        &lt;unsubscribe&gt;xmlrpc-dev-unsubscribe@ws.apache.org&lt;/unsubscribe&gt;
+        &lt;post&gt;xmlrpc-dev@ws.apache.org&lt;/post&gt;
+        &lt;archive&gt;http://mail-archives.apache.org/mod_mbox/ws-xmlrpc-dev/&lt;/archive&gt;
+        &lt;otherArchives&gt;
+          &lt;otherArchive&gt;http://marc.theaimsgroup.com/?l=xmlrpc-dev&lt;/otherArchive&gt;
+        &lt;/otherArchives&gt;
+      &lt;/mailingList&gt;
+      &lt;mailingList&gt;
+
+ =======================================================================
+ ==src/changes/changes.xml
+ =======================================================================
+ &lt;document&gt;
+  &lt;properties&gt;
+    &lt;title&gt;Changes in Apache XML-RPC&lt;/title&gt;
+  &lt;/properties&gt;
+  &lt;body&gt;
+    &lt;release version=&quot;3.1&quot; date=&quot;2007-Aug-31&quot;&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot;&gt;
+        Introduced the &quot;enabledForExceptions&quot; property.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot;&gt;
+        Added support for void methods, if extensions are turned on.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot; issue=&quot;XMLRPC-118&quot; due-to=&quot;Perry Nguyen&quot;
+          due-to-email=&quot;pfnguyen@hanhuy.com&quot;&gt;
+        Added PropertyHandlerMapping.load(ClassLoader, Map).
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot; issue=&quot;XMLRPC-117&quot; due-to=&quot;Jimisola Laursen&quot;
+          due-to-email=&quot;jimisola@jimisola.com&quot;&gt;
+        The authentication handler, type converter and requestprocessor factories
+        are now configurable as properties of the XmlRpcServlet.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot; issue=&quot;XMLRPC-116&quot; due-to=&quot;Jimisola Laursen&quot;
+          due-to-email=&quot;jimisola@jimisola.com&quot;&gt;
+        Atomic properties of XmlRpcServer are now configurable as init parameters
+        in the XmlRpcServlet.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;fix&quot;&gt;
+        Reworked the WebServer/ThreadPool framework in order to ensure a clean
+        shutdown.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;fix&quot; issue=&quot;XMLRPC-124&quot; due-to=&quot;Jimisola Laursen&quot;
+          due-to-email=&quot;jimisola@jimisola.com&quot;&gt;
+		The configuration framework, as introduced by XMLRPC-116, was applicable
+		to the configuration only, and not to the XmlRpcServlet, or the
+		XmlRpcServletServer.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot;&gt;
+        Introduced the method AbstractReflectiveHandlerMapping.isHandlerMethod().
+        This should allow users to prevent remote invocation of certain methods,
+        for example initialization stuff.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot; issue=&quot;XMLRPC-126&quot;
+          due-to=&quot;Eugene Prokopiev&quot; due-to-email=&quot;prokopiev@stc.donpac.ru&quot;&gt;
+        The ClientFactory is now able to use a custom name for the remote
+        handler. So far, it was always using the interface name.
+      &lt;/action&gt;
+      &lt;action dev=&quot;jochen&quot; type=&quot;add&quot; issue=&quot;XMLRPC-127&quot;&gt;
+        It is now possible to have other objects than strings as
+        map keys.
+      &lt;/action&gt;
+
+ =======================================================================
+ ==src/main/assembly/bin.xml
+ =======================================================================
+ &lt;assembly&gt;
+  &lt;id&gt;bin&lt;/id&gt;
+  &lt;formats&gt;
+    &lt;format&gt;tar.gz&lt;/format&gt;
+  &lt;/formats&gt;
+  &lt;includeSiteDirectory&gt;true&lt;/includeSiteDirectory&gt;
+  &lt;fileSets&gt;
+    &lt;fileSet&gt;
+      &lt;includes&gt;
+		&lt;include&gt;LICENSE.txt&lt;/include&gt;
+      &lt;/includes&gt;
+    &lt;/fileSet&gt;
+    &lt;fileSet&gt;
+      &lt;directory&gt;common/target&lt;/directory&gt;
+      &lt;outputDirectory&gt;/lib&lt;/outputDirectory&gt;
+      &lt;includes&gt;
+        &lt;include&gt;*.jar&lt;/include&gt;
+      &lt;/includes&gt;
+    &lt;/fileSet&gt;
+    &lt;fileSet&gt;
+      &lt;directory&gt;client/target&lt;/directory&gt;
+      &lt;outputDirectory&gt;/lib&lt;/outputDirectory&gt;
+      &lt;includes&gt;
+        &lt;include&gt;*.jar&lt;/include&gt;
+      &lt;/includes&gt;
+    &lt;/fileSet&gt;
+    &lt;fileSet&gt;
+      &lt;directory&gt;server/target&lt;/directory&gt;
+      &lt;outputDirectory&gt;/lib&lt;/outputDirectory&gt;
+      &lt;includes&gt;
+        &lt;include&gt;*.jar&lt;/include&gt;
+      &lt;/includes&gt;
+    &lt;/fileSet&gt;
+    &lt;fileSet&gt;
+      &lt;directory&gt;tests/target/dependency&lt;/directory&gt;
+      &lt;outputDirectory&gt;/lib&lt;/outputDirectory&gt;
+      &lt;includes&gt;
+        &lt;include&gt;commons-logging-*.jar&lt;/include&gt;
+        &lt;include&gt;ws-commons-util-*.jar&lt;/include&gt;
+      &lt;/includes&gt;
+    &lt;/fileSet&gt;
+  &lt;/fileSets&gt;
+&lt;/assembly&gt;
+
+ =======================================================================
+ ==src/main/assembly/src.xml
+ =======================================================================
+ &lt;assembly&gt;
+  &lt;id&gt;src&lt;/id&gt;
+  &lt;formats&gt;
+    &lt;format&gt;tar.gz&lt;/format&gt;
+  &lt;/formats&gt;
+  &lt;fileSets&gt;
+    &lt;fileSet&gt;
+      &lt;includes&gt;
+		&lt;include&gt;LICENSE.txt&lt;/include&gt;
+		&lt;include&gt;pom.xml&lt;/include&gt;
+		&lt;include&gt;.cvsignore&lt;/include&gt;
+		&lt;include&gt;common/**/*&lt;/include&gt;
+		&lt;include&gt;client/**/*&lt;/include&gt;
+		&lt;include&gt;server/**/*&lt;/include&gt;
+		&lt;include&gt;src/**/*&lt;/include&gt;
+		&lt;include&gt;tests/**/*&lt;/include&gt;
+      &lt;/includes&gt;
+      &lt;excludes&gt;
+		&lt;exclude&gt;common/target&lt;/exclude&gt;
+		&lt;exclude&gt;client/target&lt;/exclude&gt;
+		&lt;exclude&gt;server/target&lt;/exclude&gt;
+		&lt;exclude&gt;tests/target&lt;/exclude&gt;
+		&lt;exclude&gt;common/target/**/*&lt;/exclude&gt;
+		&lt;exclude&gt;client/target/**/*&lt;/exclude&gt;
+		&lt;exclude&gt;server/target/**/*&lt;/exclude&gt;
+		&lt;exclude&gt;tests/target/**/*&lt;/exclude&gt;
+      &lt;/excludes&gt;
+    &lt;/fileSet&gt;
+    &lt;fileSet&gt;
+      &lt;directory&gt;src&lt;/directory&gt;
+    &lt;/fileSet&gt;
+  &lt;/fileSets&gt;
+&lt;/assembly&gt;
+
+ =======================================================================
+ ==src/site/apt/advanced.apt
+ =======================================================================
+            ---------------------------
+           Advanced Programming Topics
+           ---------------------------
+
+  This page describes some advanced topics.
+
+Dynamic proxies
+
+  Dynamic proxies are an extremely comfortable way of Client programming.
+  Basically, the idea is as follows: All request processors on the server
+  side are splitted into interface and implementation. The interfaces are
+  shared between client and server, typically within some common jar file.
+  Now, rather than using the
+  {{{apidocs/org/apache/xmlrpc/client/XmlRpcClient.html}XmlRpcClient}}
+  directly,
+  the programmer creates an instance of
+  {{{apidocs/org/apache/xmlrpc/client/util/ClientFactory.html}ClientFactory}},
+  which is configured with an
+  {{{apidocs/org/apache/xmlrpc/client/XmlRpcClient.html}XmlRpcClient}}.
+
+  The {{{apidocs/org/apache/xmlrpc/client/util/ClientFactory.html}factory}}
+  can take an interface as input and returns an implementation,
+  which internally calls the server by using the
+  {{{apidocs/org/apache/xmlrpc/client/XmlRpcClient.html}XmlRpcClient}}.
+
+  Perhaps some code shows more than words. First of all, let's create
+  a request processor interface.
+
+-----------------------------------------------------------------------------------
+    package com.foo;
+
+    public interface Adder {
+      public int add(int pNum1, int pNum2);
+    }
+-----------------------------------------------------------------------------------
+
+  The server contains the request processors implementation:
+
+-----------------------------------------------------------------------------------
+    package com.foo;
+
+    public class AdderImpl implements Adder {
+      public int add(int pNum1, int pNum2) {
+        return pNum1 + pNum2;
+      }
+    }
+-----------------------------------------------------------------------------------
+
+  And here is how the client would use this:
+
+
+ =======================================================================
+ ==src/site/apt/client.apt
+ =======================================================================
+            -------------------------
+           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(new URL(&quot;http://127.0.0.1:8080/xmlrpc&quot;));
+    XmlRpcClient client = new XmlRpcClient();
+    client.setConfig(config);
+    Object[] params = new Object[]{new Integer(33), new Integer(9)};
+    Integer result = (Integer) client.execute(&quot;Calculator.add&quot;, params);
+-----------------------------------------------------------------------------------
+
+ =======================================================================
+ ==src/site/apt/contributing.apt
+ =======================================================================
+                          ------------
+                         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. The best way to generate a patch
+  is by checking out the sources, applying your changes and running
+
+---------------------------------------------------------------------------------
+    svn diff
+---------------------------------------------------------------------------------
+
+  Emails containing patches should be sent to the mailing list
+  xmlrpc-dev@ws.apache.org, and prefix their subject lines with &lt;&lt;[PATCH]&gt;&gt;.
+  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 &lt;&lt;Patches&gt;&gt; section.
+
+ =======================================================================
+ ==src/site/apt/download.apt
+ =======================================================================
+                  ---------
+                 Downloads
+                 ---------
+
+Downloading Apache XML-RPC
+
+  You can download the current version of Apache XML-RPC from
+  {{{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/trunk}Subversion}}.
+
+  Information on how to build and use the software is included in the
+  package.
+
+ =======================================================================
+ ==src/site/apt/extensions.apt
+ =======================================================================
+            --------------------------------
+           Apache XML-RPC Vendor Extensions
+           --------------------------------
+
+Introduction
+
+  The {{{http://www.xmlrpc.com/spec}XML-RPC specification}} has been
+  published in 1999. In the past 6 years, it was subject to some
+  minor corrections. Some things have been made clearer. However, it
+  hasn't really changed or evolved. Dave Winer, the XML-RPC specifications
+  author, has always rejected any suggestions in that direction. Of course,
+  he did so with a good reason: One of XML-RPC's major targets was
+  portability over arbitrary platforms and programming languages. Clearly,
+  this target has been met and any further development would mean putting
+  this at risk. 
+
+  On the other hand, this is most unfortunate: Obeying the specification
+  means accepting really serious limitations. For example, one cannot even
+  use all of Java's primitive data types, although nowadays they have
+  equivalents in almost any programming language. Possibly even more
+  important is the requirement to send a content-length header: HTTP/1.1
+  and its chunk encoding are the definite standard in 2005 for both HTTP
+  clients and servers. Consequently, the content-length header is, at
+  best, superfluos. Of course, having an additional header wouldn't be
+  too much of a problem. But calculating the header value enforces, that
+  request and response are written to byte arrays, before actually sending
+  them. This is both slow and memory consuming.
+
+  Version 3 of Apache XML-RPC is a compromise: By default it
+  still meets the specification. However, you &lt;&lt;may&gt;&gt; enable additional
+  features, called vendor extensions. Of course, these features only work,
+  if you have a streaming version of Apache XML-RPC on both sides. In
+  practice, it occurs very frequently, that both sides are controlled by
+  the same people. Besides, the vendor extensions are documented very
+  clearly here: Adding these features to an existing XML-RPC library
+  would mean almost no effort, so possibly someone does. You'r welcome.
+
+  But the purpose of this document is more than documentation: It is also
+  to receive feedback and discuss the extensions specification and
+  implementation. Nothing is fixed, and everything can be changed.
+
+Enabling extensions
+
+  Vendor extensions cannot be used, unless they are explicitly enabled.
+  In some cases, you have to enable specific features, for example
+  request compression. But in all cases, you need to enable the use
+  of vendor extensions at all, because that is the step, where you
+  knowingly say: &quot;I know, I am now in violation of the original XML-RPC
+  specification.&quot;
+
+
+ =======================================================================
+ ==src/site/apt/index.apt
+ =======================================================================
+            --------------
+           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.
+
+  Version 3 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.
+
+  * Calendar objects are supported. In particular, timezone
+    settings, and milliseconds may be sent.
+
+  * 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.
+
+ =======================================================================
+ ==src/site/apt/introspection.apt
+ =======================================================================
+            ---------------------------
+           Advanced Programming Topics
+           ---------------------------
+
+    Apache XML-RPC supports XML-RPC introspection, as specified by
+    {{{http://scripts.incutio.com/xmlrpc/introspection.html}
+    http://scripts.incutio.com/xmlrpc/introspection.html}}. This
+    page describes how to configure the XML-RPC server for
+    introspection.
+
+What is introspection?
+
+    Introspection is the servers ability to provide metadata
+    to the client. The client may ask &quot;What method names does
+    the server offer?&quot;, &quot;How do I invoke method 'foo'?&quot;, or
+    &quot;Can you give me help on method 'foo'?&quot;.
+
+    The client does so by invoking the special methods
+    &quot;system.listMethods&quot;, &quot;system.methodSignature&quot; and
+    &quot;system.methodHelp&quot;. These are described in detail in the
+    non-official specification for XML-RPC introspection, which
+    you'll find at
+    {{{http://scripts.incutio.com/xmlrpc/introspection.html}
+    http://scripts.incutio.com/xmlrpc/introspection.html}}.
+
+How do I configure the server for introspection?
+
+    The server requires a special mapping. Basically, you simply add
+    a &quot;system&quot; handler, which is implemented by the class
+    &lt;&lt;&lt;XmlRpcSystemImpl&gt;&gt;&gt;. Here's how you would do that in the
+    &lt;&lt;&lt;XmlRpcServlet&gt;&gt;&gt;:
+
+---------------------------------------------------------
+    public class MyXmlRpcServlet extends XmlRpcServlet {
+		protected XmlRpcHandlerMapping newXmlRpcHandlerMapping()
+		        throws XmlRpcException {
+			PropertyHandlerMapping mapping =
+			    (PropertyHandlerMapping) newXmlRpcHandlerMapping();
+			XmlRpcSystemImpl.addSystemHandler(mapping);
+		}
+    }
+---------------------------------------------------------
+
+    Quite similar, you would override a protected method, if you
+    prefer using the &lt;&lt;&lt;WebServer&gt;&gt;&gt; class:
+
+---------------------------------------------------------
+    public class MyWebServer extends WebServer {
+        public MyWebServer(int pPort) {
+            super(pPort);
+
+ =======================================================================
+ ==src/site/apt/links.apt
+ =======================================================================
+            --------------------------------
+           External Links
+           --------------------------------
+
+  Below you'll find some links to external sources, that deal with
+  Apache XML-RPC.
+
+Specifications
+
+  * The {{{http://www.xmlrpc.com/spec}XML-RPC specification}}
+
+Examples and Tutorials
+
+  * A simple, yet complete example of using the XmlRpcServlet by 
+    {{{http://www.petrovic.org/blog/?p=127}Mark Petrovic}}
+  * An example of initializing handlers by using so-called
+    persistent objects, written by
+    {{{http://blog.buttermountain.co.uk/2006/11/06/accessing-persistent-objects-with-apache-ws-xmlrpc-30-a-documented-example/}Iain Bullard}}.
+
+ =======================================================================
+ ==src/site/apt/server.apt
+ =======================================================================
+            -------------------------
+           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 &lt;&lt;can&gt;&gt; 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 way to create an XML-RPC Server is the XmlRpcServlet, which
+  has an automatically embedded instance of XmlRpcServer. 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.
+
+    [[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:
+
+ =======================================================================
+ ==src/site/apt/ssl.apt
+ =======================================================================
+            ---------
+           Using SSL
+           ---------
+
+  This page describes how to configure a client for using SSL (aka https).
+  Server configuration is out of this documents scope, because it clearly
+  depends on the webserver. We refer, for example, to the 
+  {{{http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html} Tomcat SSL HowTo}}
+  or to the FAQ entry on
+  {{{http://docs.codehaus.org/display/JETTY/How+to+configure+SSL} SSL with Jetty}}.
+
+Background
+
+  Client configuration for SSL is not as simple as one might expect. This
+  is surprising, because using SSL with a browser is as simple as typing in
+  an https URL into the browsers input field.
+
+  Thus, the first thing to keep in mind: Never start with Apache XML-RPC as
+  a client. It is much better to create a simple static page and point your
+  browser to the static pages URL. If you get this working, then you may
+  assume that all remaining problems rest with the client.
+
+  If you did that, you may have noticed, that the browser brings up a
+  warning, that your web server is &quot;not trusted&quot;. This is typically the
+  case, if you did not buy a certificate: For the case of simplicity,
+  developers are typically creating a so-called &quot;self-signed certificate&quot;.
+
+  And that's exactly your most likely problem: Like pressing the browsers
+  button to &quot;Accept the certificate&quot; (temporarily or permanently), you've
+  got to tell your Java client, that you want to accept the certificate.
+
+Choose the right URL
+
+  Typically, your server may be accessible with multiple URL's. For example,
+  on my machine the following URL's will all reach the same servlet:
+
+    https://mcjwi.eur.ad.sag/xmlrpc
+    https://localhost/xmlrpc
+    https://127.0.0.1/xmlrpc
+
+  Unfortunately, at most one will work in the most cases. The question is:
+  How do I choose the right one?
+
+  The answer is given by the certificate field CN. For example, my self
+  certified key looks like this:
+
+    Owner: CN=mcjwi.eur.ad.sag, OU=-, O=-, L=-, ST=-, C=-
+    Issuer: CN=mcjwi.eur.ad.sag, OU=-, O=-, L=-, ST=-, C=-
+
+  Note, that you've got to pick a proper CN when generating the certificate!
+
+ =======================================================================
+ ==src/site/apt/types.apt
+ =======================================================================
+            ------------------
+           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            | &lt;i4&gt;, or           | A 32-bit, signed, and non-null,     |
+|                    | &lt;int&gt;              | integer value.                      |
+*--------------------+--------------------+-------------------------------------+
+| Boolean            | &lt;boolean&gt;          | A non-null, boolean value (0, or    |
+|                    |                    | 1).                                 |
+*--------------------+--------------------+-------------------------------------+
+| String             | &lt;string&gt;           | A string, non-null.                 |
+*--------------------+--------------------+-------------------------------------+
+| Double             | &lt;double&gt;           | A signed, non-null, double          |
+|                    |                    | precision, floating point number.   |
+|                    |                    | (64 bit)                            |
+*--------------------+--------------------+-------------------------------------+
+| java.util.Date     | &lt;dateTime.iso8601&gt; | A pseudo ISO8601 timestamp, like    |
+|                    |                    | 19980717T14:08:55. However,         |
+|                    |                    | compared to a true ISO8601 value,   |
+|                    |                    | milliseconds, and time zone         |
+|                    |                    | informations are missing.           |
+*--------------------+--------------------+-------------------------------------+
+| byte[]             | &lt;base64&gt;           | A base64 encoded byte array.        |
+*--------------------+--------------------+-------------------------------------+
+| java.util.Map      | &lt;struct&gt;           | A key value pair. The keys are      |
+|                    |                    | strings. The values may be any      |
+|                    |                    | valid data type, including another  |
+|                    |                    | map.                                |
+*--------------------+--------------------+-------------------------------------+
+| Object[]           | &lt;array&gt;            | An array of objects. The array      |
+| java.util.List     |                    | elements may be any valid data      |
+|                    |                    | type, including another array.      |
+*--------------------+--------------------+-------------------------------------+
+
+  If the property &lt;&lt;&lt;enabledForExtensions&gt;&gt;&gt; is set, then additional data
+  types become valid. (Both client and server do support this property.)
+
+*----------------------+--------------------+-------------------------------------+
+| Java Type            | XML Tag Name       | Description                         |
+*----------------------+--------------------+-------------------------------------+
+| None                 | &lt;ex:nil&gt;           | A typeless null value.              |
+*----------------------+--------------------+-------------------------------------+
+
+ =======================================================================
+ ==src/site/fml/faq.fml
+ =======================================================================
+ &lt;faqs title=&quot;FAQ&quot;&gt;
+  &lt;part id=&quot;client&quot;&gt;
+    &lt;faq id=&quot;arrays&quot;&gt;
+      &lt;question&gt;Why do I receive a ClassCastException, if the server returns an array?&lt;/question&gt;
+      &lt;answer&gt;
+        &lt;p&gt;The problem is typically caused by code like the following:&lt;/p&gt;
+        &lt;source&gt;&lt;![CDATA[
+    Integer[] result = (Integer[])server.execute(&quot;Server.foo&quot;, param);
+        ]]&gt;&lt;/source&gt;
+        &lt;p&gt;The problem is in the fact, that the XML-RPC response tells
+          the client, that the server returns an array. It doesn't tell
+          what type the array has. In other words, the client will
+          always receive an object array. The workaround is to use
+          code like the following:&lt;/p&gt;
+        &lt;source&gt;&lt;![CDATA[
+    Object[] result = (Integer[])server.execute(&quot;Server.foo&quot;, param);
+    for (int i = 0;  i &lt; result.length;  i++) {
+        Integer num = (Integer) result[i];
+        ...
+    }
+        ]]&gt;&lt;/source&gt;
+
+      &lt;/answer&gt; 
+    &lt;/faq&gt;
+ 
+    &lt;faq id=&quot;compression_request&quot;&gt;
+      &lt;question&gt;How do I enable request compression?&lt;/question&gt;
+      &lt;answer&gt;
+        &lt;p&gt;That's simple: Set the properties &quot;enabledForExtensions&quot;
+          and &quot;gzipCompressing&quot;. That said, note the following
+          hints:&lt;/p&gt;
+        &lt;ul&gt;
+          &lt;li&gt;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. :-)&lt;/li&gt;
+          &lt;li&gt;Compressing the request doesn't mean that the response
+            will also be compressed. You need to request response
+            compression to achieve that.&lt;/li&gt;
+          &lt;li&gt;Additionally, be aware of the following: Compression
+            depends on HTTP/1.1 features. In particular, you must
+            not use the LiteHttpTransport.&lt;/li&gt;
+        &lt;/ul&gt;
+      &lt;/answer&gt;
+    &lt;/faq&gt;
+
+ =======================================================================
+ ==src/site/site.xml
+ =======================================================================
+ &lt;project name=&quot;ws-xmlrpc&quot;&gt;
+  &lt;bannerLeft&gt;
+    &lt;name&gt;Apache XML-RPC&lt;/name&gt;
+    &lt;src&gt;http://ws.apache.org/xmlrpc/images/xmlrpc-logo.gif&lt;/src&gt;
+    &lt;href&gt;http://ws.apache.org/xmlrpc/&lt;/href&gt;
+  &lt;/bannerLeft&gt;
+  &lt;body&gt;
+    &lt;links&gt;
+      &lt;item name=&quot;Apache&quot; href=&quot;http://www.apache.org/&quot;/&gt;
+      &lt;item name=&quot;Webservices&quot; href=&quot;http://ws.apache.org/&quot;/&gt;
+      &lt;item name=&quot;XML-RPC&quot; href=&quot;http://ws.apache.org/xmlrpc/&quot;/&gt;
+    &lt;/links&gt;
+
+    &lt;menu name=&quot;XML-RPC&quot;&gt;
+      &lt;item name=&quot;Overview&quot;            href=&quot;/index.html&quot;/&gt;
+      &lt;item name=&quot;Client Classes&quot;      href=&quot;/client.html&quot;/&gt;
+      &lt;item name=&quot;Server Side XML-RPC&quot; href=&quot;/server.html&quot;/&gt;
+      &lt;item name=&quot;Vendor Extensions&quot;   href=&quot;/extensions.html&quot;/&gt;
+      &lt;item name=&quot;SSL&quot;                 href=&quot;/ssl.html&quot;/&gt;
+      &lt;item name=&quot;Introspection&quot;       href=&quot;/introspection.html&quot;/&gt;
+      &lt;item name=&quot;Advanced Techniques&quot; href=&quot;/advanced.html&quot;/&gt;
+      &lt;item name=&quot;XML-RPC Types&quot;       href=&quot;/types.html&quot;/&gt;
+      &lt;item name=&quot;Download&quot;            href=&quot;/download.html&quot;/&gt;
+      &lt;item name=&quot;FAQ&quot;                 href=&quot;/faq.html&quot;/&gt;
+      &lt;item name=&quot;Contributing&quot;        href=&quot;/contributing.html&quot;/&gt;
+      &lt;item name=&quot;XML-RPC 2&quot;           href=&quot;http://ws.apache.org/xmlrpc/xmlrpc2&quot;/&gt;
+      &lt;item name=&quot;Links&quot;               href=&quot;/links.html&quot;/&gt;
+    &lt;/menu&gt;
+
+    ${reports}
+
+  &lt;/body&gt;&lt;/project&gt;
+
+ =======================================================================
+ ==src/site/xdoc/changes.xml
+ =======================================================================
+ &lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;document&gt;
+  &lt;properties&gt;
+    &lt;title&gt;Changes&lt;/title&gt;
+    &lt;author email=&quot;sgoeschl@apache.org&quot;&gt;Siegfried Goeschl&lt;/author&gt;
+  &lt;/properties&gt;
+
+  &lt;body&gt;
+    &lt;release version=&quot;2.x-streaming-dev&quot;&gt;
+      &lt;action dev=&quot;jochen&quot;&gt;
+        Complete rewrite with vendor extensions.
+      &lt;/action&gt;
+    &lt;/release&gt;
+    &lt;release version=&quot;2.0-beta&quot; date=&quot;2005-Apr-27&quot;&gt;
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;fix&quot;&gt;
+        Fixed broken ANT build after upgrading to commons-codec-1.3.jar
+      &lt;/action&gt;          
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;update&quot;&gt;
+        Upgrading to commons-codec-1.3.jar
+      &lt;/action&gt;          
+      &lt;action dev=&quot;hgomez&quot; type=&quot;update&quot;&gt;
+        Upgrading to Apache Licence 2.0
+      &lt;/action&gt;    
+      &lt;action dev=&quot;hgomez&quot; type=&quot;update&quot;&gt;
+        CommonsXmlRpcTransport support gzip compression for request and reply 
+      &lt;/action&gt;    
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;update&quot;&gt;
+        Rewrote the xdocs/changes.xml to be used with the Maven build        
+      &lt;/action&gt;    
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;update&quot;&gt;
+        Removed the dependency of fesi-1.1.5.jar since it is not used
+        with the current Ant/Maven build
+      &lt;/action&gt;    
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;update&quot;&gt;
+        Updated the Maven build to run nicely with Maven 1.0.2
+      &lt;/action&gt;    
+      &lt;action dev=&quot;sgoeschl&quot; type=&quot;update&quot;&gt;
+        Updated the ANT build to download dependend JARs automagically
+      &lt;/action&gt;    
+    &lt;/release&gt;
+  &lt;/body&gt;
+&lt;/document&gt;
+
+</pre></div></p>
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">&#169;  
+          2001-2007
+    
+          The Apache Software Foundation
+          
+  
+
+  
+    
+  
+  
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>

Propchange: webservices/xmlrpc/site/rat-report.html
------------------------------------------------------------------------------
    svn:executable = *