Provides a lightweight embeddable HTTP server.

1. A HTTP server called Webster, which can serve code from multiple codebases. Webster can be started as its own process, or as a resident Object within a service or other utility
2. A utility for client applications to start an internal Webster, setting the Webster root to the location the class was loaded from, and appending a provided export JAR as the export codebase for the JVM. This tool should only be called by Jini client entities that require their export codebase to be set and arent clever enough to have the location of where Webster should serve code from

Configuring Webster
The following environment variables used to control Webster are as follows:

- org.jini.rio.tools.webster.port

  Default: | 0
  Description: | Sets the port for webster to use. The default is 0, which results in an anonymous port being created. If an anonymous port is created the getPort() method can be used to return the value of the port.

- org.jini.rio.tools.webster.root

  Default: | System.getProperty(user.home)
  Description: | The Root directory to serve code from. Webster supports multiple root directories which are separated by a `;`

- org.jini.rio.tools.webster.interface

  Default: | The address returned from InetAddress.getLocalHost()
  Description: | The TCP/IP address which Webster should bind to. This is helpful on a machine which has more then one Network Interface Card (NIC)

- org.jini.rio.tools.webster.minThreads

  Default: | 10
  Description: | Webster uses a Pool of Threads to handle incoming requests. This value is used to create the minimum amount of Threads in the ThreadPool

- org.jini.rio.tools.webster.maxThreads

  Default: | 50
  Description: | Webster uses a Pool of Threads to handle incoming requests. This value is used to create the maximum amount of Threads in the ThreadPool