org.astrogrid.samp.xmlrpc
Class XmlRpcKit

java.lang.Object
  extended by org.astrogrid.samp.xmlrpc.XmlRpcKit

public abstract class XmlRpcKit
extends Object

Encapsulates the provision of XML-RPC client and server capabilities. Two implementations are provided in the JSAMP package; the pluggable architecture allows others to be provided.

Since:
27 Aug 2008
Author:
Mark Taylor

Field Summary
static XmlRpcKit APACHE
          Implementation based on Apache XML-RPC.
static String IMPL_PROP
          Property which is examined to determine which implementation to use by default.
static XmlRpcKit INTERNAL
          Implementation which requires no external libraries.
static XmlRpcKit[] KNOWN_IMPLS
          Array of available known implementations of this class.
static XmlRpcKit RPC_LOGGING
          Internal implementation variant with verbose logging of RPC calls.
static XmlRpcKit XML_LOGGING
          Internal implementation variant with verbose logging of XML I/O.
 
Constructor Summary
XmlRpcKit()
           
 
Method Summary
static XmlRpcKit createReflectionKit(String name, String clientFactoryClassName, String serverFactoryClassName)
          Returns a new XmlRpcKit given classnames for the client and server factory classes.
abstract  SampXmlRpcClientFactory getClientFactory()
          Returns an XML-RPC client factory.
static XmlRpcKit getInstance()
          Returns the default instance of this class.
static XmlRpcKit getInstanceByName(String name)
          Returns an XmlRpcKit instance given its name.
abstract  String getName()
          Returns the name of this kit.
abstract  SampXmlRpcServerFactory getServerFactory()
          Returns an XML-RPC server factory.
abstract  boolean isAvailable()
          Indicates whether this object is ready for use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APACHE

public static final XmlRpcKit APACHE
Implementation based on Apache XML-RPC.


INTERNAL

public static final XmlRpcKit INTERNAL
Implementation which requires no external libraries.


XML_LOGGING

public static final XmlRpcKit XML_LOGGING
Internal implementation variant with verbose logging of XML I/O.


RPC_LOGGING

public static final XmlRpcKit RPC_LOGGING
Internal implementation variant with verbose logging of RPC calls.


KNOWN_IMPLS

public static XmlRpcKit[] KNOWN_IMPLS
Array of available known implementations of this class.


IMPL_PROP

public static final String IMPL_PROP
Property which is examined to determine which implementation to use by default. Property values may be one of the elements of KNOWN_IMPLS, currently: Alternatively, it may be the classname of a class which implements XmlRpcKit and has a no-arg constructor. The property name is "jsamp.xmlrpc.impl".

See Also:
Constant Field Values
Constructor Detail

XmlRpcKit

public XmlRpcKit()
Method Detail

getClientFactory

public abstract SampXmlRpcClientFactory getClientFactory()
Returns an XML-RPC client factory.

Returns:
client factory

getServerFactory

public abstract SampXmlRpcServerFactory getServerFactory()
Returns an XML-RPC server factory.

Returns:
server factory

isAvailable

public abstract boolean isAvailable()
Indicates whether this object is ready for use. If it returns false (perhaps because some classes are unavailable at runtime) then getClientFactory() and getServerFactory() may throw exceptions rather than behaving as documented.

Returns:
true if this object works

getName

public abstract String getName()
Returns the name of this kit.

Returns:
implementation name

getInstance

public static XmlRpcKit getInstance()
Returns the default instance of this class. What implementation this is normally depends on what classes are present at runtime. However, if the system property IMPL_PROP is set this will determine the implementation used. It may be one of:

Returns:
default instance of this class

getInstanceByName

public static XmlRpcKit getInstanceByName(String name)
Returns an XmlRpcKit instance given its name.

Parameters:
name - name of one of the known implementations, or classname of an XmlRpcKit implementatation with a no-arg constructor
Returns:
named implementation object
Throws:
IllegalArgumentException - if none by that name can be found

createReflectionKit

public static XmlRpcKit createReflectionKit(String name,
                                            String clientFactoryClassName,
                                            String serverFactoryClassName)
Returns a new XmlRpcKit given classnames for the client and server factory classes. If the classes are not available, a kit which returns isAvailable()()=false will be returned.

Parameters:
name - kit name
clientFactoryClassName - name of class implementing SampXmlRpcClientFactory which has a no-arg constructor
serverFactoryClassName - name of class implementing SampXmlRpcServerFactory which has a no-arg constructor
Returns:
new XmlRpcKit constructed using reflection


Copyright © 2008-2011 AstroGrid. All Rights Reserved.