## org.apache.catalina
Interface Server

All Known Implementing Classes:
  StandardServer

public interface Server

A Server represents one convenient way to package a set of `Connectors` associated with a particular `Container`. You can have several many-to-one relationships (set of Connectors associated with one Container) by adding one or more Connectors first, followed by the corresponding Container, and then repeating this pattern.

This interface (and the corresonding implementation) exist to simplify configuring Catalina from a `server.xml` file. It has no functional role once the server has been started.

Normally, an implementation of this interface will also implement `Lifecycle`, such that when the `start()` and `stop()` methods are called, all of the defined Containers and Connectors are also started or stopped.

In between, the implementation must open a server socket on the port number specified by the `port` property. When a connection is accepted, the first line is read and compared with the specified shutdown command. If the command matches, shutdown of the server is initiated.

NOTE - The concrete implementation of this class should register the (singleton) instance with the `ServerFactory` class in its constructor(s).

Version:
  $Revision: 1.7 $ $Date: 2001/08/23 22:15:43 $
Author:
  Craig R. McClanahan

Method Summary
`void` `addService(Service service)` Add a new Service to the set of defined Services.
`void` `await()` Wait until a proper shutdown command is received, then return.
`Service[]` `findServices()` Return the set of Services defined within this Server.
`java.lang.String` `getInfo()` Return descriptive information about this Server implementation and the corresponding version number, in the format `<description>/<version>`.
`int` `getPort()` Return the port number we listen to for shutdown commands.
`java.lang.String` `getShutdown()` Return the shutdown command string we are waiting for.
`void` `initialize()` Invoke a pre-startup initialization.
`void` `removeService(Service service)` Remove the specified Service from the set associated from this Server.
`void` `setPort(int port)` Set the port number we listen to for shutdown commands.
`void` `setShutdown(java.lang.String shutdown)` Set the shutdown command we are waiting for.

Method Detail

### getInfo

    public java.lang.String getInfo()

  Return descriptive information about this Server implementation and the corresponding version number, in the format `<description>/<version>`.

### getPort

    public int getPort()

  Return the port number we listen to for shutdown commands.

### setPort

    public void setPort(int port)

  Set the port number we listen to for shutdown commands.

  Parameters:
    `port` - The new port number

### getShutdown

    public java.lang.String getShutdown()

  Return the shutdown command string we are waiting for.

### setShutdown

    public void setShutdown(java.lang.String shutdown)

  Set the shutdown command we are waiting for.

  Parameters:
    `shutdown` - The new shutdown command

### addService

    public void addService(Service service)

  Add a new Service to the set of defined Services.

  Parameters:
    `service` - The Service to be added

### await

    public void await()

  Wait until a proper shutdown command is received, then return.

### findServices

    public Service[] findServices()

  Return the set of Services defined within this Server.

### removeService

    public void removeService(Service service)

  Remove the specified Service from the set associated from this Server.

  Parameters:
    `service` - The Service to be removed

### initialize

    public void initialize()
                    throws LifecycleException

  Invoke a pre-startup initialization. This is used to allow connectors to bind to restricted ports under Unix operating environments.

  Throws:
    `LifecycleException` - If this server was already initialized.

Copyright © 2000-2001 Apache Software Foundation. All Rights Reserved.