Package org.apache.catalina.ha

# Interface ClusterDeployer

All Superinterfaces:
  `ChannelListener`

All Known Implementing Classes:
  `FarmWarDeployer`

public interface ClusterDeployer extends ChannelListener
A ClusterDeployer interface allows to plug in and out the different deployment implementations

## Method Summary

Modifier and Type
Method
Description
`void`
`backgroundProcess()`
call from container Background Process
`CatalinaCluster`
`getCluster()`
Returns the cluster the cluster deployer is associated with
`void`
`install(String contextName, File webapp)`
Install a new web application, whose web application archive is at the specified URL, into this container and all the other members of the cluster with the specified context name.
`void`
`remove(String contextName, boolean undeploy)`
Remove an existing web application, attached to the specified context name.
`void`
`setCluster(CatalinaCluster cluster)`
Associates the cluster deployer with a cluster
`void`
`start()`
Start the cluster deployer, the owning container will invoke this
`void`
`stop()`
Stops the cluster deployer, the owning container will invoke this

### Methods inherited from interface org.apache.catalina.tribes.ChannelListener

`accept, equals, hashCode, messageReceived`

## Method Details

### start

void start() throws Exception
Start the cluster deployer, the owning container will invoke this

Throws:
  `Exception` - - if failure to start cluster

### stop

void stop() throws LifecycleException
Stops the cluster deployer, the owning container will invoke this

Throws:
  `LifecycleException` - Error stopping cluster deployer

### install

void install(String contextName, File webapp) throws IOException
Install a new web application, whose web application archive is at the specified URL, into this container and all the other members of the cluster with the specified context name.

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

Parameters:
  `contextName` - The context name to which this application should be installed (must be unique)
  `webapp` - A WAR file or unpacked directory structure containing the web application to be installed
Throws:
  `IllegalArgumentException` - if the specified context name is malformed
  `IllegalStateException` - if the specified context name is already attached to an existing web application
  `IOException` - if an input/output error was encountered during installation

### remove

void remove(String contextName, boolean undeploy) throws IOException
Remove an existing web application, attached to the specified context name. If this application is successfully removed, a ContainerEvent of type `REMOVE_EVENT` will be sent to all registered listeners, with the removed `Context` as an argument. Deletes the web application war file and/or directory if they exist in the Host's appBase.

Parameters:
  `contextName` - The context name of the application to be removed
  `undeploy` - boolean flag to remove web application from server
Throws:
  `IllegalArgumentException` - if the specified context name is malformed
  `IllegalArgumentException` - if the specified context name does not identify a currently installed web application
  `IOException` - if an input/output error occurs during removal

### backgroundProcess

void backgroundProcess()
call from container Background Process

### getCluster

CatalinaCluster getCluster()
Returns the cluster the cluster deployer is associated with

Returns:
  CatalinaCluster

### setCluster

void setCluster(CatalinaCluster cluster)
Associates the cluster deployer with a cluster

Parameters:
  `cluster` - CatalinaCluster