Return-Path: Delivered-To: apmail-xml-rpc-dev-archive@xml.apache.org Received: (qmail 37237 invoked by uid 500); 14 Aug 2002 17:38:31 -0000 Mailing-List: contact rpc-dev-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: rpc-dev@xml.apache.org Delivered-To: mailing list rpc-dev@xml.apache.org Received: (qmail 37228 invoked from network); 14 Aug 2002 17:38:31 -0000 Received: from customer80.globaltap.com (HELO alonzo.megacz.com) (206.104.238.80) by daedalus.apache.org with SMTP; 14 Aug 2002 17:38:31 -0000 Received: from megacz by alonzo.megacz.com with local (Exim 3.12 #1 (Debian)) id 17f26j-0004FQ-00 for ; Wed, 14 Aug 2002 10:38:57 -0700 To: rpc-dev@xml.apache.org Subject: Re: cvs commit: xml-rpc/src/java/org/apache/xmlrpc SystemHandler.java References: <20020814171953.59290.qmail@icarus.apache.org> <86hehx9wgb.fsf@megacz.com> From: Adam Megacz X-Home-Page: http://www.megacz.com/adam Organization: Myself Date: 14 Aug 2002 10:38:57 -0700 In-Reply-To: Adam Megacz's message of "14 Aug 2002 10:33:40 -0700" Message-ID: <867kit9w7i.fsf@megacz.com> Lines: 157 User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Status: O X-Status: X-Keywords: Whoops, my mistake, apparently those changes did get folded in. I guess I must've missed the commit message. - a Adam Megacz 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 > > * . > > */ > > > > import org.apache.xmlrpc.*; > > import java.util.*; > > > > /** > > * Implements the XML-RPC standard system.* methods (such as > > * system.multicall. > > * > > * @author Adam Megacz > > */ > > 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 system.multicall 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