## org.apache.catalina
Interface Cluster

public interface Cluster

A Cluster works as a Cluster client/server for the local host Different Cluster implementations can be used to support different ways to communicate within the Cluster. A Cluster implementation is responsible for setting up a way to communicate within the Cluster and also supply "ClientApplications" with `ClusterSender` used when sending information in the Cluster and `ClusterInfo` used for receiving information in the Cluster.

Version:
  $Revision: 1.7 $, $Date: 2004/05/26 15:24:59 $
Author:
  Bip Thelin, Remy Maucherat, Filip Hanik

Method Summary
`Manager` `createManager(java.lang.String name)` Create a new manager which will use this cluster to replicate its sessions.
`java.lang.String` `getClusterName()` Return the name of the cluster that this Server is currently configured to operate within.
`Container` `getContainer()` Get the Container associated with our Cluster
`int` `getDebug()` Returns the debug level for this Cluster
`java.lang.String` `getInfo()` Return descriptive information about this Cluster implementation and the corresponding version number, in the format `<description>/<version>`.
`java.lang.String` `getProtocol()` Get the protocol used by the cluster.
`void` `installContext(java.lang.String contextPath, java.net.URL war)` Install a new web application, whose web application archive is at the specified URL, into this container with the specified context path.
`void` `setClusterName(java.lang.String clusterName)` Set the name of the cluster to join, if no cluster with this name is present create one.
`void` `setContainer(Container container)` Set the Container associated with our Cluster
`void` `setDebug(int debug)` The debug detail level for this Cluster
`void` `setProtocol(java.lang.String protocol)` Set the protocol parameters.
`void` `startContext(java.lang.String contextPath)` Start an existing web application, attached to the specified context path in all the other nodes in the cluster.
`void` `stop(java.lang.String contextPath)` Stop an existing web application, attached to the specified context path.

Method Detail

### getInfo

    public java.lang.String getInfo()

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

### getClusterName

    public java.lang.String getClusterName()

  Return the name of the cluster that this Server is currently configured to operate within.

  Returns:
    The name of the cluster associated with this server

### setClusterName

    public void setClusterName(java.lang.String clusterName)

  Set the name of the cluster to join, if no cluster with this name is present create one.

  Parameters:
    `clusterName` - The clustername to join

### setContainer

    public void setContainer(Container container)

  Set the Container associated with our Cluster

  Parameters:
    `container` - The Container to use

### getContainer

    public Container getContainer()

  Get the Container associated with our Cluster

  Returns:
    The Container associated with our Cluster

### setDebug

    public void setDebug(int debug)

  The debug detail level for this Cluster

  Parameters:
    `debug` - The debug level

### getDebug

    public int getDebug()

  Returns the debug level for this Cluster

  Returns:
    The debug level

### setProtocol

    public void setProtocol(java.lang.String protocol)

  Set the protocol parameters.

  Parameters:
    `protocol` - The protocol used by the cluster

### getProtocol

    public java.lang.String getProtocol()

  Get the protocol used by the cluster.

  Returns:
    The protocol

### createManager

    public Manager createManager(java.lang.String name)

  Create a new manager which will use this cluster to replicate its sessions.

  Parameters:
    `name` - Name (key) of the application with which the manager is associated

### startContext

    public void startContext(java.lang.String contextPath)
                      throws java.io.IOException

  Start an existing web application, attached to the specified context path in all the other nodes in the cluster. Only starts a web application if it is not running.

  Parameters:
    `contextPath` - The context path of the application to be started
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs during startup

### installContext

    public void installContext(java.lang.String contextPath,
                               java.net.URL war)

  Install a new web application, whose web application archive is at the specified URL, into this container with the specified context path. A context path of "" (the empty string) should be used for the root application for this container. Otherwise, the context path must start with a slash.

  If this application is successfully installed, a ContainerEvent of type `PRE_INSTALL_EVENT` will be sent to registered listeners before the associated Context is started, and a ContainerEvent of type `INSTALL_EVENT` will be sent to all registered listeners after the associated Context is started, with the newly created `Context` as an argument.

  Parameters:
    `contextPath` - The context path to which this application should be installed (must be unique)
    `war` - A URL of type "jar:" that points to a WAR file, or type "file:" that points to an unpacked directory structure containing the web application to be installed
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalStateException` - if the specified context path is already attached to an existing web application

### stop

    public void stop(java.lang.String contextPath)
              throws java.io.IOException

  Stop an existing web application, attached to the specified context path. Only stops a web application if it is running.

  Parameters:
    `contextPath` - The context path of the application to be stopped
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs while stopping the web application

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