NAME

Wombat::Server - server class


SYNOPSIS

  my $wombat = Wombat::Server();
  $wombat->setHome('/usr/local/wombat');
  $wombat->setConfigFile('conf/server.xml');
  $wombat->start();
  $wombat->await();
  $wombat->stop();


DESCRIPTION

This class implements a Wombat server. It uses server.xml to configure a container hierarchy and provides methods for starting and stopping the server. It is meant to be used in both standalone and embedded mode, so it does not take care of standard daemon things, like processing command line arguments or setting up signal handlers. Those are the responsibilities of the surrounding environment (eg a control script or mod_perl <Perl> section).


CONSTRUCTOR

new()
Create and return an instance, initializing fields to default values.


ACCESSOR METHODS

getConfigFile()
Return the location of the configuration file for this Server. Defaults to server.xml in the conf subdirectory of getHome().

setConfigFile($configFile)
Set the location of the configuration file for this Server. If the specified location is relative, then it will be absolutized using getHome().
Parameters:
$configFile
the location of the configuration file relative to the server's home directory

getHome()
Return the home directory for this Server.

setHome($home)
Set the home directory for this Server.

Parameters:

$home
the server home directory, specified absolutely

Throws:

Servlet::Util::IllegalArgumentException
if the specified directory is not specified absolutely


PUBLIC METHODS

await()
Direct all defined Services to begin listening for requests. Depending on Connector implementations, this method may return immediately (for Connectors that execute asynchrously, eg Apache) or may block (eg Http Connector).

addService($service)
Add a new Service to the set of defined Services.

Parameters:

$service
the Wombat::Core::Service to add

getServices()
Return an array containing all defined Services.

removeService($service)
Remove a Service from the set of defined Services.

Parameters:

$service
the Wombat::Core::Service to remove


LIFECYCLE METHODS

start()
Prepare for active use of this component. This method should be called before any of the public methods of the component are utilized.

Throws:

Wombat::LifecycleException
if the component has already been started

Wombat::XmlException
if a problem occurs while parsing a config file

Wombat::ConfigException
if a validity error is detected in a config file

Servlet::Util::IOException
if an input or output error occurs

stop()
Gracefully terminate active use of this component. Once this method has been called, no public methods of the component should be utilized.

Throws:

Wombat::LifecycleException
if the component is not started


SEE ALSO


AUTHOR

Brian Moseley, bcm@maz.org