All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.xmlrpc.client.XmlRpcClient Maven / Gradle / Ivy

There is a newer version: 3.1.3
Show newest version
/*
 * Copyright 1999,2005 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.xmlrpc.client;

import java.util.List;

import org.apache.xmlrpc.XmlRpcConfig;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.XmlRpcRequest;
import org.apache.xmlrpc.client.XmlRpcTransportFactory;
import org.apache.xmlrpc.common.XmlRpcController;
import org.apache.xmlrpc.common.XmlRpcWorkerFactory;
import org.apache.xmlrpc.serializer.DefaultXMLWriterFactory;
import org.apache.xmlrpc.serializer.XmlWriterFactory;


/** 

The main access point of an XML-RPC client. This object serves mainly * as an object factory. It is designed with singletons in mind: Basically, * an application should be able to hold a single instance of * XmlRpcClient in a static variable, unless you would be * working with different factories.

*

Until Apache XML-RPC 2.0, this object was used both as an object * factory and as a place, where configuration details (server URL, * suggested encoding, user credentials and the like) have been stored. * In Apache XML-RPC 3.0, the configuration details has been moved to * the {@link org.apache.xmlrpc.client.XmlRpcClientConfig} object. * The configuration object is designed for being passed through the * actual worker methods.

*

A configured XmlRpcClient object is thread safe: In other words, * the suggested use is, that you configure the client using * {@link #setTransportFactory(XmlRpcTransportFactory)} and similar * methods, store it in a field and never modify it again. Without * modifications, the client may be used for an arbitrary number * of concurrent requests.

* @since 3.0 */ public class XmlRpcClient extends XmlRpcController { private XmlRpcTransportFactory transportFactory = new XmlRpcSunHttpTransportFactory(this); private XmlRpcClientConfig config = new XmlRpcClientConfigImpl(); private XmlWriterFactory xmlWriterFactory = new DefaultXMLWriterFactory(); protected XmlRpcWorkerFactory getDefaultXmlRpcWorkerFactory() { return new XmlRpcClientWorkerFactory(this); } /** Sets the clients default configuration. This configuration * is used by the methods * {@link #execute(String, List)}, * {@link #execute(String, Object[])}, and * {@link #execute(XmlRpcRequest)}. * You may overwrite this per request by using * {@link #execute(XmlRpcClientConfig, String, List)}, * or {@link #execute(XmlRpcClientConfig, String, Object[])}. * @param pConfig The default request configuration. */ public void setConfig(XmlRpcClientConfig pConfig) { config = pConfig; } /** Returns the clients default configuration. This configuration * is used by the methods * {@link #execute(String, List)}, * {@link #execute(String, Object[])}. * You may overwrite this per request by using * {@link #execute(XmlRpcClientConfig, String, List)}, * or {@link #execute(XmlRpcClientConfig, String, Object[])}. * @return The default request configuration. */ public XmlRpcConfig getConfig() { return config; } /** Returns the clients default configuration. Shortcut for * (XmlRpcClientConfig) getConfig(). * This configuration is used by the methods * {@link #execute(String, List)}, * {@link #execute(String, Object[])}. * You may overwrite this per request by using * {@link #execute(XmlRpcClientConfig, String, List)}, or * {@link #execute(XmlRpcClientConfig, String, Object[])} * @return The default request configuration. */ public XmlRpcClientConfig getClientConfig() { return config; } /** Sets the clients transport factory. The client will invoke the * factory method {@link XmlRpcTransportFactory#getTransport()} * for any request. * @param pFactory The clients transport factory. */ public void setTransportFactory(XmlRpcTransportFactory pFactory) { transportFactory = pFactory; } /** Returns the clients transport factory. The client will use this factory * for invocation of {@link XmlRpcTransportFactory#getTransport()} * for any request. * @return The clients transport factory. */ public XmlRpcTransportFactory getTransportFactory() { return transportFactory; } /** Performs a request with the clients default configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @return The result object. * @throws XmlRpcException Performing the request failed. */ public Object execute(String pMethodName, Object[] pParams) throws XmlRpcException { return execute(getClientConfig(), pMethodName, pParams); } /** Performs a request with the given configuration. * @param pConfig The request configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @return The result object. * @throws XmlRpcException Performing the request failed. */ public Object execute(XmlRpcClientConfig pConfig, String pMethodName, Object[] pParams) throws XmlRpcException { return execute(new XmlRpcClientRequestImpl(pConfig, pMethodName, pParams)); } /** Performs a request with the clients default configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @return The result object. * @throws XmlRpcException Performing the request failed. */ public Object execute(String pMethodName, List pParams) throws XmlRpcException { return execute(getClientConfig(), pMethodName, pParams); } /** Performs a request with the given configuration. * @param pConfig The request configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @return The result object. * @throws XmlRpcException Performing the request failed. */ public Object execute(XmlRpcClientConfig pConfig, String pMethodName, List pParams) throws XmlRpcException { return execute(new XmlRpcClientRequestImpl(pConfig, pMethodName, pParams)); } /** Performs a request with the clients default configuration. * @param pRequest The request being performed. * @return The result object. * @throws XmlRpcException Performing the request failed. */ public Object execute(XmlRpcRequest pRequest) throws XmlRpcException { return getWorkerFactory().getWorker().execute(pRequest); } /** Performs an asynchronous request with the clients default configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @param pCallback The callback being notified when the request is finished. * @throws XmlRpcException Performing the request failed. */ public void executeAsync(String pMethodName, Object[] pParams, AsyncCallback pCallback) throws XmlRpcException { executeAsync(getClientConfig(), pMethodName, pParams, pCallback); } /** Performs an asynchronous request with the given configuration. * @param pConfig The request configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @param pCallback The callback being notified when the request is finished. * @throws XmlRpcException Performing the request failed. */ public void executeAsync(XmlRpcClientConfig pConfig, String pMethodName, Object[] pParams, AsyncCallback pCallback) throws XmlRpcException { executeAsync(new XmlRpcClientRequestImpl(pConfig, pMethodName, pParams), pCallback); } /** Performs an asynchronous request with the clients default configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @param pCallback The callback being notified when the request is finished. * @throws XmlRpcException Performing the request failed. */ public void executeAsync(String pMethodName, List pParams, AsyncCallback pCallback) throws XmlRpcException { executeAsync(getClientConfig(), pMethodName, pParams, pCallback); } /** Performs an asynchronous request with the given configuration. * @param pConfig The request configuration. * @param pMethodName The method being performed. * @param pParams The parameters. * @param pCallback The callback being notified when the request is finished. * @throws XmlRpcException Performing the request failed. */ public void executeAsync(XmlRpcClientConfig pConfig, String pMethodName, List pParams, AsyncCallback pCallback) throws XmlRpcException { executeAsync(new XmlRpcClientRequestImpl(pConfig, pMethodName, pParams), pCallback); } /** Performs a request with the clients default configuration. * @param pRequest The request being performed. * @param pCallback The callback being notified when the request is finished. * @throws XmlRpcException Performing the request failed. */ public void executeAsync(XmlRpcRequest pRequest, AsyncCallback pCallback) throws XmlRpcException { XmlRpcClientWorker w = (XmlRpcClientWorker) getWorkerFactory().getWorker(); w.execute(pRequest, pCallback); } /** Returns the clients instance of * {@link org.apache.xmlrpc.serializer.XmlWriterFactory}. * @return A factory for creating instances of * {@link org.apache.ws.commons.serialize.XMLWriter}. */ public XmlWriterFactory getXmlWriterFactory() { return xmlWriterFactory; } /** Sets the clients instance of * {@link org.apache.xmlrpc.serializer.XmlWriterFactory}. * @param pFactory A factory for creating instances of * {@link org.apache.ws.commons.serialize.XMLWriter}. */ public void setXmlWriterFactory(XmlWriterFactory pFactory) { xmlWriterFactory = pFactory; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy