List Info

Thread: svn commit: r565002 - in /webservices/xmlrpc/site: ./ apidocs/ apidocs/org/apache/xmlrpc/commo




svn commit: r565002 - in /webservices/xmlrpc/site: ./ apidocs/ apidocs/org/apache/xmlrpc/commo
user name
2007-08-11 23:09:10
Added: webservices/xmlrpc/site/rat-report.html
URL: http://svn.apache.o
rg/viewvc/webservices/xmlrpc/site/rat-report.html?view=auto&
amp;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-transiti
onal.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&g
t;
+        </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.or
g/" 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://ma
ven.apache.org/POM/4.0.0&quot;
+    xmlnssi=&a
mp;quot;h
ttp://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&g
t;
+   
&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/Brow
seProject.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/gum
p/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-subscribews.apache.org&lt;/subscribe&gt;
+       
&lt;unsubscribe&gt;xmlrpc-dev-unsubscribews.apache.org&lt;/unsubscribe&gt;
+        &lt;post&gt;xmlrpc-devws.apache.org&lt;/post&gt;
+        &lt;archive&gt;http://mail-archives.apache.org/m
od_mbox/ws-xmlrpc-dev/&lt;/archive&gt;
+        &lt;otherArchives&gt;
+          &lt;otherArchive&gt;http://marc.theaimsgroup.com/?l=xmlrpc-de
v&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;pfnguyenhanhuy.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;jimisolajimisola.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;jimisolajimisola.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;jimisolajimisola.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;prokopievstc.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;/includeSite
Directory&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&
amp;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&
amp;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&
amp;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;/dir
ectory&gt;
+     
&lt;outputDirectory&gt;/lib&lt;/outputDirectory&
amp;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&g
t;
+		&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&
amp;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}XmlRpc
Client}}
+  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}XmlRpc
Client}}.
+
+  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}XmlRpc
Client}}.
+
+  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}XmlRpc
Client}}.
+
+  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-devws.apache.org, and prefix their subject
lines with &lt;&lt;[PATCH]&gt;&gt;.
+  Patches are also accepted via the
+  {{{http://is
sues.apache.org/jira/browse/XMLRPC}issue tracker}}.
+  The Jakarta project provides a description of
+  {{{http://jak
arta.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.petrov
ic.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-ex
ample/}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+configu
re+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;htt
p://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.ap
ache.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;
+
+    $
+
+  &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;sgoeschlapache.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 = *



[1]

about | contact  Other archives ( Real Estate discussion Medical topics )