Package org.astrogrid.samp.xmlrpc.apache
Class ApacheServer
- java.lang.Object
-
- org.astrogrid.samp.xmlrpc.apache.ApacheServer
-
- All Implemented Interfaces:
SampXmlRpcServer
public class ApacheServer extends java.lang.Object implements SampXmlRpcServer
SampXmlRpcServer implementation based on Apache XML-RPC library.- Since:
- 22 Aug 2008
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classApacheServer.LabelledServerConvenience class which aggregates a WebServer and an endpoint.
-
Field Summary
Fields Modifier and Type Field Description private java.net.URLendpoint_private java.util.ListhandlerList_private WebServerwebServer_
-
Constructor Summary
Constructors Modifier Constructor Description ApacheServer()Constructs a new server starting up a new WebServer object.privateApacheServer(ApacheServer.LabelledServer server)Private constructor used by all other constructors.ApacheServer(WebServer webServer, int port)Constructs a new server based on a given WebServer object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddHandler(SampXmlRpcHandler handler)Adds a handler which can service certain XML-RPC methods.private static ApacheServer.LabelledServercreateLabelledServer(boolean isDaemon)Constructs a new LabelledServer object suitable for use with this server.private java.lang.ObjectdoExecute(java.lang.String fqMethod, java.util.Vector paramVec)Does the work for executing an XML-RPC request.java.net.URLgetEndpoint()Returns the server's endpoint.private static java.net.URLgetServerEndpoint(int port)Returns the endpoint URL to use for an Apache server running on a given port.voidremoveHandler(SampXmlRpcHandler handler)Removes a previously-added handler.
-
-
-
Constructor Detail
-
ApacheServer
private ApacheServer(ApacheServer.LabelledServer server)
Private constructor used by all other constructors. Uses the private LabelledServer class to aggregate the required information.- Parameters:
server- server with metadata
-
ApacheServer
public ApacheServer(WebServer webServer, int port)Constructs a new server based on a given WebServer object. Responsibility forstarting the WebServer and performing any other required configuration lies with the caller.- Parameters:
webServer- apache xmlrpc webserver objectport- port number on which the server is running
-
ApacheServer
public ApacheServer() throws java.io.IOExceptionConstructs a new server starting up a new WebServer object. The server runs in a daemon thread.- Throws:
java.io.IOException
-
-
Method Detail
-
getEndpoint
public java.net.URL getEndpoint()
Description copied from interface:SampXmlRpcServerReturns the server's endpoint.- Specified by:
getEndpointin interfaceSampXmlRpcServer- Returns:
- URL to which XML-RPC requests are POSTed
-
addHandler
public void addHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServerAdds a handler which can service certain XML-RPC methods.- Specified by:
addHandlerin interfaceSampXmlRpcServer- Parameters:
handler- handler to add
-
removeHandler
public void removeHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServerRemoves a previously-added handler.- Specified by:
removeHandlerin interfaceSampXmlRpcServer- Parameters:
handler- handler to remove
-
doExecute
private java.lang.Object doExecute(java.lang.String fqMethod, java.util.Vector paramVec) throws java.lang.ExceptionDoes the work for executing an XML-RPC request.- Parameters:
fqMethod- fully qualified XML-RPC method nameparamVec- Apache-style list of method parameters- Throws:
java.lang.Exception
-
createLabelledServer
private static ApacheServer.LabelledServer createLabelledServer(boolean isDaemon) throws java.io.IOException
Constructs a new LabelledServer object suitable for use with this server.- Parameters:
isDaemon- whether the WebServer's main thread should run in daemon mode- Throws:
java.io.IOException
-
getServerEndpoint
private static java.net.URL getServerEndpoint(int port)
Returns the endpoint URL to use for an Apache server running on a given port.- Parameters:
port- port number- Returns:
- URL
-
-