Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.meterware.pseudoserver
Class PseudoServer  view PseudoServer download PseudoServer.java

java.lang.Object
  extended bycom.meterware.pseudoserver.PseudoServer

public class PseudoServer
extends java.lang.Object

A basic simulated web-server for testing user agents without a web server.


Field Summary
private  boolean _active
           
private  java.util.ArrayList _classpathDirs
           
private  int _connectionNum
           
private  boolean _debug
           
private  java.lang.String _maxProtocolLevel
           
private static int _numServers
           
private  java.util.Hashtable _resources
           
private  int _serverNum
           
private  java.net.ServerSocket _serverSocket
           
private static int _socketReleaseWaitTime
          Time in msec to wait for an outstanding server socket to be released before creating a new one.
private  int _socketTimeout
           
private static int _waitThreshhold
          Number of outstanding server sockets that must be present before trying to wait for one to be released.
private static int DEFAULT_SOCKET_TIMEOUT
           
private static int INPUT_POLL_INTERVAL
           
 
Constructor Summary
PseudoServer()
           
PseudoServer(int socketTimeout)
           
 
Method Summary
 void addResourceHeader(java.lang.String name, java.lang.String header)
          Adds a header to a defined resource.
private  java.lang.String asResourceName(java.lang.String rawName)
           
private static java.lang.String escape(java.lang.String urlString)
           
 int getConnectedPort()
          Returns the port on which this server is listening.
private  WebResource getResource(HttpRequest request)
           
private  WebResource getResource(PseudoServlet servlet, HttpRequest request)
           
private  java.lang.String getResponseProtocol(HttpRequest request)
           
private  java.net.ServerSocket getServerSocket()
           
static int getSocketReleaseWaitTime()
          Returns the amount of time the pseudo server will wait for a server socket to be released (in msec) before allocating a new one.
static int getWaitThreshhold()
          Returns the number of server sockets that must have been allocated and not returned before waiting for one to be returned.
private  void handleNewConnection(java.net.Socket socket)
           
private  boolean isKeepAlive(HttpRequest request)
           
 void mapToClasspath(java.lang.String directory)
           
private  boolean respondToRequest(HttpRequest request, HttpResponseStream response)
           
private  void serveRequests(java.net.Socket socket)
           
 void setCharacterSet(java.lang.String name, java.lang.String characterSet)
          Specifies the character set encoding for a resource.
 void setDebug(boolean debug)
           
 void setErrorResource(java.lang.String name, int errorCode, java.lang.String errorMessage)
          Defines a resource which will result in an error message.
 void setMaxProtocolLevel(int majorLevel, int minorLevel)
           
 void setResource(java.lang.String name, byte[] value, java.lang.String contentType)
          Defines the contents of an expected resource.
 void setResource(java.lang.String name, PseudoServlet servlet)
          Defines the contents of an expected resource.
 void setResource(java.lang.String name, java.lang.String value)
          Defines the contents of an expected resource.
 void setResource(java.lang.String name, java.lang.String value, java.lang.String contentType)
          Defines the contents of an expected resource.
 void setSendCharacterSet(java.lang.String name, boolean enabled)
          Enables the sending of the character set in the content-type header.
static void setSocketReleaseWaitTime(int socketReleaseWaitTime)
          Returns the amount of time the pseudo server will wait for a server socket to be released (in msec) before allocating a new one.
static void setWaitThreshhold(int waitThreshhold)
          Specifies the number of server sockets that must have been allocated and not returned before waiting for one to be returned.
 void shutDown()
           
private  java.lang.String withoutParameters(java.lang.String uri)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SOCKET_TIMEOUT

private static final int DEFAULT_SOCKET_TIMEOUT
See Also:
Constant Field Values

INPUT_POLL_INTERVAL

private static final int INPUT_POLL_INTERVAL
See Also:
Constant Field Values

_socketReleaseWaitTime

private static int _socketReleaseWaitTime
Time in msec to wait for an outstanding server socket to be released before creating a new one.


_waitThreshhold

private static int _waitThreshhold
Number of outstanding server sockets that must be present before trying to wait for one to be released.


_numServers

private static int _numServers

_serverNum

private int _serverNum

_connectionNum

private int _connectionNum

_classpathDirs

private java.util.ArrayList _classpathDirs

_maxProtocolLevel

private java.lang.String _maxProtocolLevel

_socketTimeout

private final int _socketTimeout

_resources

private java.util.Hashtable _resources

_active

private boolean _active

_debug

private boolean _debug

_serverSocket

private java.net.ServerSocket _serverSocket
Constructor Detail

PseudoServer

public PseudoServer()

PseudoServer

public PseudoServer(int socketTimeout)
Method Detail

getSocketReleaseWaitTime

public static int getSocketReleaseWaitTime()
Returns the amount of time the pseudo server will wait for a server socket to be released (in msec) before allocating a new one. See also getWaitThreshhold 55 .


setSocketReleaseWaitTime

public static void setSocketReleaseWaitTime(int socketReleaseWaitTime)
Returns the amount of time the pseudo server will wait for a server socket to be released (in msec) before allocating a new one. See also getWaitThreshhold 55 .


getWaitThreshhold

public static int getWaitThreshhold()
Returns the number of server sockets that must have been allocated and not returned before waiting for one to be returned.


setWaitThreshhold

public static void setWaitThreshhold(int waitThreshhold)
Specifies the number of server sockets that must have been allocated and not returned before waiting for one to be returned.


shutDown

public void shutDown()

setMaxProtocolLevel

public void setMaxProtocolLevel(int majorLevel,
                                int minorLevel)

getConnectedPort

public int getConnectedPort()
                     throws java.io.IOException
Returns the port on which this server is listening.


setResource

public void setResource(java.lang.String name,
                        java.lang.String value)
Defines the contents of an expected resource.


setResource

public void setResource(java.lang.String name,
                        PseudoServlet servlet)
Defines the contents of an expected resource.


setResource

public void setResource(java.lang.String name,
                        java.lang.String value,
                        java.lang.String contentType)
Defines the contents of an expected resource.


setResource

public void setResource(java.lang.String name,
                        byte[] value,
                        java.lang.String contentType)
Defines the contents of an expected resource.


setErrorResource

public void setErrorResource(java.lang.String name,
                             int errorCode,
                             java.lang.String errorMessage)
Defines a resource which will result in an error message.


setSendCharacterSet

public void setSendCharacterSet(java.lang.String name,
                                boolean enabled)
Enables the sending of the character set in the content-type header.


setCharacterSet

public void setCharacterSet(java.lang.String name,
                            java.lang.String characterSet)
Specifies the character set encoding for a resource.


addResourceHeader

public void addResourceHeader(java.lang.String name,
                              java.lang.String header)
Adds a header to a defined resource.


mapToClasspath

public void mapToClasspath(java.lang.String directory)

setDebug

public void setDebug(boolean debug)

asResourceName

private java.lang.String asResourceName(java.lang.String rawName)

escape

private static java.lang.String escape(java.lang.String urlString)

handleNewConnection

private void handleNewConnection(java.net.Socket socket)

serveRequests

private void serveRequests(java.net.Socket socket)
                    throws java.io.IOException

respondToRequest

private boolean respondToRequest(HttpRequest request,
                                 HttpResponseStream response)

isKeepAlive

private boolean isKeepAlive(HttpRequest request)

getResponseProtocol

private java.lang.String getResponseProtocol(HttpRequest request)

getResource

private WebResource getResource(HttpRequest request)
                         throws java.io.IOException

withoutParameters

private java.lang.String withoutParameters(java.lang.String uri)

getResource

private WebResource getResource(PseudoServlet servlet,
                                HttpRequest request)
                         throws java.io.IOException

getServerSocket

private java.net.ServerSocket getServerSocket()
                                       throws java.io.IOException