You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rpc-dev@xml.apache.org by dl...@apache.org on 2002/08/14 19:19:53 UTC

cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

dlr         2002/08/14 10:19:53

  Added:       src/java/org/apache/xmlrpc SystemHandler.java
  Log:
  system.multicall handler added by Adam Megacz, with documentation and
  minor code spruce ups from me.
  
  Revision  Changes    Path
  1.1                  xml-rpc/src/java/org/apache/xmlrpc/SystemHandler.java
  
  Index: SystemHandler.java
  ===================================================================
  package org.apache.xmlrpc;
  
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright(c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation(http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "XML-RPC" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import org.apache.xmlrpc.*;
  import java.util.*;
  
  /**
   * Implements the XML-RPC standard system.* methods (such as
   * <code>system.multicall</code>.
   *
   * @author <a href="mailto:adam@megacz.com">Adam Megacz</a>
   */
  public class SystemHandler
  {
      private XmlRpcServer server = null;
  
      /**
       * Creates a new instance which delegates its multicalls to the
       * specified {@link org.apache.xmlrpc.XmlRpcServer}.
       *
       * @param server The server to delegate RPC calls to.
       */
      protected SystemHandler(XmlRpcServer server)
      {
          this.server = server;
      }
  
      /**
       * The <code>system.multicall</code> handler performs several RPC
       * calls at a time.
       *
       * @param request The request containing multiple RPC calls.
       * @return The RPC response.
       */
      public Vector multicall(Vector request)
      {
          Vector response = new Vector();
          for (int i = 0; i < request.size(); i++)
          {
              try
              {
                  Hashtable call = (Hashtable) request.elementAt(i);
                  String methodName = (String) call.get("methodName");
                  Vector params = (Vector) call.get("params");
                  Object handler = server.getHandler(methodName);
                  Vector v = new Vector();
                  v.addElement(server.invokeHandler(handler, methodName, params, null, null));
                  response.addElement(v);
              }
              catch (Exception x)
              {
                  String message = x.toString();
                  int code = x instanceof XmlRpcException ? ((XmlRpcException) x).code : 0;
                  Hashtable h = new Hashtable();
                  h.put("faultString", message);
                  h.put("faultCode", new Integer(code));
                  response.addElement(h);
              }
          }
          return response;
      }
  }
  
  
  

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Daniel Rall <dl...@finemaltcoding.com>.
Adam Megacz <ad...@megacz.com> writes:

> Uh, you forgot the corresponding patches to XmlRpcServer.java. This
> class is useless without those changes.

I did not forget.  One thing at a time.

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Daniel Rall <dl...@finemaltcoding.com>.
Adam Megacz <ad...@megacz.com> writes:

> Uh, you forgot the corresponding patches to XmlRpcServer.java. This
> class is useless without those changes.

I did not forget.  One thing at a time.

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Adam Megacz <ad...@megacz.com>.
Whoops, my mistake, apparently those changes did get folded in. I
guess I must've missed the commit message.

  - a


Adam Megacz <ad...@megacz.com> writes:
> Uh, you forgot the corresponding patches to XmlRpcServer.java. This
> class is useless without those changes.
> 
>   - a
> 
> 
> dlr@apache.org writes:
> 
> > dlr         2002/08/14 10:19:53
> > 
> >   Added:       src/java/org/apache/xmlrpc SystemHandler.java
> >   Log:
> >   system.multicall handler added by Adam Megacz, with documentation and
> >   minor code spruce ups from me.
> >   
> >   Revision  Changes    Path
> >   1.1                  xml-rpc/src/java/org/apache/xmlrpc/SystemHandler.java
> >   
> >   Index: SystemHandler.java
> >   ===================================================================
> >   package org.apache.xmlrpc;
> >   
> >   /*
> >    * The Apache Software License, Version 1.1
> >    *
> >    *
> >    * Copyright(c) 2001 The Apache Software Foundation.  All rights
> >    * reserved.
> >    *
> >    * Redistribution and use in source and binary forms, with or without
> >    * modification, are permitted provided that the following conditions
> >    * are met:
> >    *
> >    * 1. Redistributions of source code must retain the above copyright
> >    *    notice, this list of conditions and the following disclaimer.
> >    *
> >    * 2. Redistributions in binary form must reproduce the above copyright
> >    *    notice, this list of conditions and the following disclaimer in
> >    *    the documentation and/or other materials provided with the
> >    *    distribution.
> >    *
> >    * 3. The end-user documentation included with the redistribution,
> >    *    if any, must include the following acknowledgment:
> >    *       "This product includes software developed by the
> >    *        Apache Software Foundation(http://www.apache.org/)."
> >    *    Alternately, this acknowledgment may appear in the software itself,
> >    *    if and wherever such third-party acknowledgments normally appear.
> >    *
> >    * 4. The names "XML-RPC" and "Apache Software Foundation" must
> >    *    not be used to endorse or promote products derived from this
> >    *    software without prior written permission. For written
> >    *    permission, please contact apache@apache.org.
> >    *
> >    * 5. Products derived from this software may not be called "Apache",
> >    *    nor may "Apache" appear in their name, without prior written
> >    *    permission of the Apache Software Foundation.
> >    *
> >    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> >    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> >    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> >    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> >    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> >    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT
> >    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> >    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> >    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> >    * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> >    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> >    * SUCH DAMAGE.
> >    * ====================================================================
> >    *
> >    * This software consists of voluntary contributions made by many
> >    * individuals on behalf of the Apache Software Foundation.  For more
> >    * information on the Apache Software Foundation, please see
> >    * <http://www.apache.org/>.
> >    */
> >   
> >   import org.apache.xmlrpc.*;
> >   import java.util.*;
> >   
> >   /**
> >    * Implements the XML-RPC standard system.* methods (such as
> >    * <code>system.multicall</code>.
> >    *
> >    * @author <a href="mailto:adam@megacz.com">Adam Megacz</a>
> >    */
> >   public class SystemHandler
> >   {
> >       private XmlRpcServer server = null;
> >   
> >       /**
> >        * Creates a new instance which delegates its multicalls to the
> >        * specified {@link org.apache.xmlrpc.XmlRpcServer}.
> >        *
> >        * @param server The server to delegate RPC calls to.
> >        */
> >       protected SystemHandler(XmlRpcServer server)
> >       {
> >           this.server = server;
> >       }
> >   
> >       /**
> >        * The <code>system.multicall</code> handler performs several RPC
> >        * calls at a time.
> >        *
> >        * @param request The request containing multiple RPC calls.
> >        * @return The RPC response.
> >        */
> >       public Vector multicall(Vector request)
> >       {
> >           Vector response = new Vector();
> >           for (int i = 0; i < request.size(); i++)
> >           {
> >               try
> >               {
> >                   Hashtable call = (Hashtable) request.elementAt(i);
> >                   String methodName = (String) call.get("methodName");
> >                   Vector params = (Vector) call.get("params");
> >                   Object handler = server.getHandler(methodName);
> >                   Vector v = new Vector();
> >                   v.addElement(server.invokeHandler(handler, methodName, params, null, null));
> >                   response.addElement(v);
> >               }
> >               catch (Exception x)
> >               {
> >                   String message = x.toString();
> >                   int code = x instanceof XmlRpcException ? ((XmlRpcException) x).code : 0;
> >                   Hashtable h = new Hashtable();
> >                   h.put("faultString", message);
> >                   h.put("faultCode", new Integer(code));
> >                   response.addElement(h);
> >               }
> >           }
> >           return response;
> >       }
> >   }
> >   
> >   
> >   
> > 
> 
> -- 
> Sick of HTML user interfaces?
> www.xwt.org
> 

-- 
Sick of HTML user interfaces?
www.xwt.org

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Adam Megacz <ad...@megacz.com>.
Whoops, my mistake, apparently those changes did get folded in. I
guess I must've missed the commit message.

  - a


Adam Megacz <ad...@megacz.com> writes:
> Uh, you forgot the corresponding patches to XmlRpcServer.java. This
> class is useless without those changes.
> 
>   - a
> 
> 
> dlr@apache.org writes:
> 
> > dlr         2002/08/14 10:19:53
> > 
> >   Added:       src/java/org/apache/xmlrpc SystemHandler.java
> >   Log:
> >   system.multicall handler added by Adam Megacz, with documentation and
> >   minor code spruce ups from me.
> >   
> >   Revision  Changes    Path
> >   1.1                  xml-rpc/src/java/org/apache/xmlrpc/SystemHandler.java
> >   
> >   Index: SystemHandler.java
> >   ===================================================================
> >   package org.apache.xmlrpc;
> >   
> >   /*
> >    * The Apache Software License, Version 1.1
> >    *
> >    *
> >    * Copyright(c) 2001 The Apache Software Foundation.  All rights
> >    * reserved.
> >    *
> >    * Redistribution and use in source and binary forms, with or without
> >    * modification, are permitted provided that the following conditions
> >    * are met:
> >    *
> >    * 1. Redistributions of source code must retain the above copyright
> >    *    notice, this list of conditions and the following disclaimer.
> >    *
> >    * 2. Redistributions in binary form must reproduce the above copyright
> >    *    notice, this list of conditions and the following disclaimer in
> >    *    the documentation and/or other materials provided with the
> >    *    distribution.
> >    *
> >    * 3. The end-user documentation included with the redistribution,
> >    *    if any, must include the following acknowledgment:
> >    *       "This product includes software developed by the
> >    *        Apache Software Foundation(http://www.apache.org/)."
> >    *    Alternately, this acknowledgment may appear in the software itself,
> >    *    if and wherever such third-party acknowledgments normally appear.
> >    *
> >    * 4. The names "XML-RPC" and "Apache Software Foundation" must
> >    *    not be used to endorse or promote products derived from this
> >    *    software without prior written permission. For written
> >    *    permission, please contact apache@apache.org.
> >    *
> >    * 5. Products derived from this software may not be called "Apache",
> >    *    nor may "Apache" appear in their name, without prior written
> >    *    permission of the Apache Software Foundation.
> >    *
> >    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> >    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> >    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> >    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> >    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> >    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT
> >    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> >    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> >    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> >    * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> >    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> >    * SUCH DAMAGE.
> >    * ====================================================================
> >    *
> >    * This software consists of voluntary contributions made by many
> >    * individuals on behalf of the Apache Software Foundation.  For more
> >    * information on the Apache Software Foundation, please see
> >    * <http://www.apache.org/>.
> >    */
> >   
> >   import org.apache.xmlrpc.*;
> >   import java.util.*;
> >   
> >   /**
> >    * Implements the XML-RPC standard system.* methods (such as
> >    * <code>system.multicall</code>.
> >    *
> >    * @author <a href="mailto:adam@megacz.com">Adam Megacz</a>
> >    */
> >   public class SystemHandler
> >   {
> >       private XmlRpcServer server = null;
> >   
> >       /**
> >        * Creates a new instance which delegates its multicalls to the
> >        * specified {@link org.apache.xmlrpc.XmlRpcServer}.
> >        *
> >        * @param server The server to delegate RPC calls to.
> >        */
> >       protected SystemHandler(XmlRpcServer server)
> >       {
> >           this.server = server;
> >       }
> >   
> >       /**
> >        * The <code>system.multicall</code> handler performs several RPC
> >        * calls at a time.
> >        *
> >        * @param request The request containing multiple RPC calls.
> >        * @return The RPC response.
> >        */
> >       public Vector multicall(Vector request)
> >       {
> >           Vector response = new Vector();
> >           for (int i = 0; i < request.size(); i++)
> >           {
> >               try
> >               {
> >                   Hashtable call = (Hashtable) request.elementAt(i);
> >                   String methodName = (String) call.get("methodName");
> >                   Vector params = (Vector) call.get("params");
> >                   Object handler = server.getHandler(methodName);
> >                   Vector v = new Vector();
> >                   v.addElement(server.invokeHandler(handler, methodName, params, null, null));
> >                   response.addElement(v);
> >               }
> >               catch (Exception x)
> >               {
> >                   String message = x.toString();
> >                   int code = x instanceof XmlRpcException ? ((XmlRpcException) x).code : 0;
> >                   Hashtable h = new Hashtable();
> >                   h.put("faultString", message);
> >                   h.put("faultCode", new Integer(code));
> >                   response.addElement(h);
> >               }
> >           }
> >           return response;
> >       }
> >   }
> >   
> >   
> >   
> > 
> 
> -- 
> Sick of HTML user interfaces?
> www.xwt.org
> 

-- 
Sick of HTML user interfaces?
www.xwt.org

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Adam Megacz <ad...@megacz.com>.
Uh, you forgot the corresponding patches to XmlRpcServer.java. This
class is useless without those changes.

  - a


dlr@apache.org writes:

> dlr         2002/08/14 10:19:53
> 
>   Added:       src/java/org/apache/xmlrpc SystemHandler.java
>   Log:
>   system.multicall handler added by Adam Megacz, with documentation and
>   minor code spruce ups from me.
>   
>   Revision  Changes    Path
>   1.1                  xml-rpc/src/java/org/apache/xmlrpc/SystemHandler.java
>   
>   Index: SystemHandler.java
>   ===================================================================
>   package org.apache.xmlrpc;
>   
>   /*
>    * The Apache Software License, Version 1.1
>    *
>    *
>    * Copyright(c) 2001 The Apache Software Foundation.  All rights
>    * reserved.
>    *
>    * Redistribution and use in source and binary forms, with or without
>    * modification, are permitted provided that the following conditions
>    * are met:
>    *
>    * 1. Redistributions of source code must retain the above copyright
>    *    notice, this list of conditions and the following disclaimer.
>    *
>    * 2. Redistributions in binary form must reproduce the above copyright
>    *    notice, this list of conditions and the following disclaimer in
>    *    the documentation and/or other materials provided with the
>    *    distribution.
>    *
>    * 3. The end-user documentation included with the redistribution,
>    *    if any, must include the following acknowledgment:
>    *       "This product includes software developed by the
>    *        Apache Software Foundation(http://www.apache.org/)."
>    *    Alternately, this acknowledgment may appear in the software itself,
>    *    if and wherever such third-party acknowledgments normally appear.
>    *
>    * 4. The names "XML-RPC" and "Apache Software Foundation" must
>    *    not be used to endorse or promote products derived from this
>    *    software without prior written permission. For written
>    *    permission, please contact apache@apache.org.
>    *
>    * 5. Products derived from this software may not be called "Apache",
>    *    nor may "Apache" appear in their name, without prior written
>    *    permission of the Apache Software Foundation.
>    *
>    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT
>    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>    * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>    * SUCH DAMAGE.
>    * ====================================================================
>    *
>    * This software consists of voluntary contributions made by many
>    * individuals on behalf of the Apache Software Foundation.  For more
>    * information on the Apache Software Foundation, please see
>    * <http://www.apache.org/>.
>    */
>   
>   import org.apache.xmlrpc.*;
>   import java.util.*;
>   
>   /**
>    * Implements the XML-RPC standard system.* methods (such as
>    * <code>system.multicall</code>.
>    *
>    * @author <a href="mailto:adam@megacz.com">Adam Megacz</a>
>    */
>   public class SystemHandler
>   {
>       private XmlRpcServer server = null;
>   
>       /**
>        * Creates a new instance which delegates its multicalls to the
>        * specified {@link org.apache.xmlrpc.XmlRpcServer}.
>        *
>        * @param server The server to delegate RPC calls to.
>        */
>       protected SystemHandler(XmlRpcServer server)
>       {
>           this.server = server;
>       }
>   
>       /**
>        * The <code>system.multicall</code> handler performs several RPC
>        * calls at a time.
>        *
>        * @param request The request containing multiple RPC calls.
>        * @return The RPC response.
>        */
>       public Vector multicall(Vector request)
>       {
>           Vector response = new Vector();
>           for (int i = 0; i < request.size(); i++)
>           {
>               try
>               {
>                   Hashtable call = (Hashtable) request.elementAt(i);
>                   String methodName = (String) call.get("methodName");
>                   Vector params = (Vector) call.get("params");
>                   Object handler = server.getHandler(methodName);
>                   Vector v = new Vector();
>                   v.addElement(server.invokeHandler(handler, methodName, params, null, null));
>                   response.addElement(v);
>               }
>               catch (Exception x)
>               {
>                   String message = x.toString();
>                   int code = x instanceof XmlRpcException ? ((XmlRpcException) x).code : 0;
>                   Hashtable h = new Hashtable();
>                   h.put("faultString", message);
>                   h.put("faultCode", new Integer(code));
>                   response.addElement(h);
>               }
>           }
>           return response;
>       }
>   }
>   
>   
>   
> 

-- 
Sick of HTML user interfaces?
www.xwt.org

Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java

Posted by Adam Megacz <ad...@megacz.com>.
Uh, you forgot the corresponding patches to XmlRpcServer.java. This
class is useless without those changes.

  - a


dlr@apache.org writes:

> dlr         2002/08/14 10:19:53
> 
>   Added:       src/java/org/apache/xmlrpc SystemHandler.java
>   Log:
>   system.multicall handler added by Adam Megacz, with documentation and
>   minor code spruce ups from me.
>   
>   Revision  Changes    Path
>   1.1                  xml-rpc/src/java/org/apache/xmlrpc/SystemHandler.java
>   
>   Index: SystemHandler.java
>   ===================================================================
>   package org.apache.xmlrpc;
>   
>   /*
>    * The Apache Software License, Version 1.1
>    *
>    *
>    * Copyright(c) 2001 The Apache Software Foundation.  All rights
>    * reserved.
>    *
>    * Redistribution and use in source and binary forms, with or without
>    * modification, are permitted provided that the following conditions
>    * are met:
>    *
>    * 1. Redistributions of source code must retain the above copyright
>    *    notice, this list of conditions and the following disclaimer.
>    *
>    * 2. Redistributions in binary form must reproduce the above copyright
>    *    notice, this list of conditions and the following disclaimer in
>    *    the documentation and/or other materials provided with the
>    *    distribution.
>    *
>    * 3. The end-user documentation included with the redistribution,
>    *    if any, must include the following acknowledgment:
>    *       "This product includes software developed by the
>    *        Apache Software Foundation(http://www.apache.org/)."
>    *    Alternately, this acknowledgment may appear in the software itself,
>    *    if and wherever such third-party acknowledgments normally appear.
>    *
>    * 4. The names "XML-RPC" and "Apache Software Foundation" must
>    *    not be used to endorse or promote products derived from this
>    *    software without prior written permission. For written
>    *    permission, please contact apache@apache.org.
>    *
>    * 5. Products derived from this software may not be called "Apache",
>    *    nor may "Apache" appear in their name, without prior written
>    *    permission of the Apache Software Foundation.
>    *
>    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT
>    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>    * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>    * SUCH DAMAGE.
>    * ====================================================================
>    *
>    * This software consists of voluntary contributions made by many
>    * individuals on behalf of the Apache Software Foundation.  For more
>    * information on the Apache Software Foundation, please see
>    * <http://www.apache.org/>.
>    */
>   
>   import org.apache.xmlrpc.*;
>   import java.util.*;
>   
>   /**
>    * Implements the XML-RPC standard system.* methods (such as
>    * <code>system.multicall</code>.
>    *
>    * @author <a href="mailto:adam@megacz.com">Adam Megacz</a>
>    */
>   public class SystemHandler
>   {
>       private XmlRpcServer server = null;
>   
>       /**
>        * Creates a new instance which delegates its multicalls to the
>        * specified {@link org.apache.xmlrpc.XmlRpcServer}.
>        *
>        * @param server The server to delegate RPC calls to.
>        */
>       protected SystemHandler(XmlRpcServer server)
>       {
>           this.server = server;
>       }
>   
>       /**
>        * The <code>system.multicall</code> handler performs several RPC
>        * calls at a time.
>        *
>        * @param request The request containing multiple RPC calls.
>        * @return The RPC response.
>        */
>       public Vector multicall(Vector request)
>       {
>           Vector response = new Vector();
>           for (int i = 0; i < request.size(); i++)
>           {
>               try
>               {
>                   Hashtable call = (Hashtable) request.elementAt(i);
>                   String methodName = (String) call.get("methodName");
>                   Vector params = (Vector) call.get("params");
>                   Object handler = server.getHandler(methodName);
>                   Vector v = new Vector();
>                   v.addElement(server.invokeHandler(handler, methodName, params, null, null));
>                   response.addElement(v);
>               }
>               catch (Exception x)
>               {
>                   String message = x.toString();
>                   int code = x instanceof XmlRpcException ? ((XmlRpcException) x).code : 0;
>                   Hashtable h = new Hashtable();
>                   h.put("faultString", message);
>                   h.put("faultCode", new Integer(code));
>                   response.addElement(h);
>               }
>           }
>           return response;
>       }
>   }
>   
>   
>   
> 

-- 
Sick of HTML user interfaces?
www.xwt.org