Package org.astrogrid.samp.xmlrpc
Class XmlRpcKit
- java.lang.Object
-
- org.astrogrid.samp.xmlrpc.XmlRpcKit
-
public abstract class XmlRpcKit extends java.lang.ObjectEncapsulates 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
Fields Modifier and Type Field Description static XmlRpcKitAPACHEImplementation based on Apache XML-RPC.static java.lang.StringIMPL_PROPProperty which is examined to determine which implementation to use by default.static XmlRpcKitINTERNALImplementation which requires no external libraries.static XmlRpcKit[]KNOWN_IMPLSArray of available known implementations of this class.static XmlRpcKitRPC_LOGGINGInternal implementation variant with verbose logging of RPC calls.static XmlRpcKitXML_LOGGINGInternal implementation variant with verbose logging of XML I/O.
-
Constructor Summary
Constructors Constructor Description XmlRpcKit()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static XmlRpcKitcreateReflectionKit(java.lang.String name, java.lang.String clientFactoryClassName, java.lang.String serverFactoryClassName)Returns a new XmlRpcKit given classnames for the client and server factory classes.abstract SampXmlRpcClientFactorygetClientFactory()Returns an XML-RPC client factory.static XmlRpcKitgetInstance()Returns the default instance of this class.static XmlRpcKitgetInstanceByName(java.lang.String name)Returns an XmlRpcKit instance given its name.abstract java.lang.StringgetName()Returns the name of this kit.abstract SampXmlRpcServerFactorygetServerFactory()Returns an XML-RPC server factory.abstract booleanisAvailable()Indicates whether this object is ready for use.
-
-
-
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 java.lang.String IMPL_PROP
Property which is examined to determine which implementation to use by default. Property values may be one of the elements ofKNOWN_IMPLS, currently:- internal
- xml-log
- rpc-log
- apache
XmlRpcKitand has a no-arg constructor. The property name is "jsamp.xmlrpc.impl".- See Also:
- Constant Field Values
-
-
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) thengetClientFactory()andgetServerFactory()may throw exceptions rather than behaving as documented.- Returns:
- true if this object works
-
getName
public abstract java.lang.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 propertyIMPL_PROPis set this will determine the implementation used. It may be one of:apache: implementation based on the Apache XML-RPC libraryinternal: implementation which requires no libraries beyond JSAMP itself- the classname of an implementation of this class which has a no-arg constructor
- Returns:
- default instance of this class
-
getInstanceByName
public static XmlRpcKit getInstanceByName(java.lang.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:
java.lang.IllegalArgumentException- if none by that name can be found
-
createReflectionKit
public static XmlRpcKit createReflectionKit(java.lang.String name, java.lang.String clientFactoryClassName, java.lang.String serverFactoryClassName)
Returns a new XmlRpcKit given classnames for the client and server factory classes. If the classes are not available, a kit which returnsisAvailable()()=false will be returned.- Parameters:
name- kit nameclientFactoryClassName- name of class implementing SampXmlRpcClientFactory which has a no-arg constructorserverFactoryClassName- name of class implementing SampXmlRpcServerFactory which has a no-arg constructor- Returns:
- new XmlRpcKit constructed using reflection
-
-