o port is now private instead of protected.  Both of these attributes are accessible via the protected serverSocket field, and are simply used as inputs to setup the serverSocket.
o port is now private instead of protected.  Both of these attributes
are accessible via the protected serverSocket field, and are simply
used as inputs to setup the serverSocket.

o paranoid is now private instead of protected, as it is used inside
of the allowConnection() method (what checkSocket() was renamed to).

o Refactored main() to use a new static new method, determinePort().

o WebServer's ctors no longer starts the web server, nor throws
IOException, as the serverSocket connection is not established until
the beginning of the run() method.  Neither of these changes are
backward compatible!!

o Reduced scope of the setupServerSocket() from public to private
(override createServerSocket() to use your own type of ServerSocket).
Now only sets SO_TIMEOUT if not already set.  Introduced loop which
tries to bind socket 10 times (with a 1 sec wait between each
connection attempt) to work around that fact that JDKs < 1.4 don't
provide an interface for setting SO_REUSEADDR.

o Only perform start() implementation if listener thread is null
(meaning web server is not already running).

o Added addDefaultHandler() method, called from main().

o Improved docs of run().  Calling setupServerSocket() at beginning,
and closing server socket and shutting down threading at end (moved
from shutdown()).


atoulme/xmlrpc