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 class
ApacheServer.LabelledServer
Convenience class which aggregates a WebServer and an endpoint.
-
Field Summary
Fields Modifier and Type Field Description private java.net.URL
endpoint_
private java.util.List
handlerList_
private WebServer
webServer_
-
Constructor Summary
Constructors Modifier Constructor Description ApacheServer()
Constructs a new server starting up a new WebServer object.private
ApacheServer(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 void
addHandler(SampXmlRpcHandler handler)
Adds a handler which can service certain XML-RPC methods.private static ApacheServer.LabelledServer
createLabelledServer(boolean isDaemon)
Constructs a new LabelledServer object suitable for use with this server.private java.lang.Object
doExecute(java.lang.String fqMethod, java.util.Vector paramVec)
Does the work for executing an XML-RPC request.java.net.URL
getEndpoint()
Returns the server's endpoint.private static java.net.URL
getServerEndpoint(int port)
Returns the endpoint URL to use for an Apache server running on a given port.void
removeHandler(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 forstart
ing 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.IOException
Constructs 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:SampXmlRpcServer
Returns the server's endpoint.- Specified by:
getEndpoint
in interfaceSampXmlRpcServer
- Returns:
- URL to which XML-RPC requests are POSTed
-
addHandler
public void addHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServer
Adds a handler which can service certain XML-RPC methods.- Specified by:
addHandler
in interfaceSampXmlRpcServer
- Parameters:
handler
- handler to add
-
removeHandler
public void removeHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServer
Removes a previously-added handler.- Specified by:
removeHandler
in interfaceSampXmlRpcServer
- Parameters:
handler
- handler to remove
-
doExecute
private java.lang.Object doExecute(java.lang.String fqMethod, java.util.Vector paramVec) throws java.lang.Exception
Does 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
-
-