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

  - a


[EMAIL PROTECTED] 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 [EMAIL PROTECTED]
>    *
>    * 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:[EMAIL PROTECTED]";>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

Reply via email to