## org.apache.catalina
Interface Deployer

All Known Implementing Classes:
  StandardHost, StandardHostDeployer

public interface Deployer

A Deployer is a specialized Container into which web applications can be deployed and undeployed. Such a Container will create and install child Context instances for each deployed application. The unique key for each web application will be the context path to which it is attached.

Version:
  $Revision: 1.4 $ $Date: 2004/04/12 22:05:15 $
Author:
  Craig R. McClanahan

Field Summary
`static java.lang.String` `INSTALL_EVENT` The ContainerEvent event type sent when a new application is installed by `install()`, after it has been started.
`static java.lang.String` `PRE_INSTALL_EVENT` The ContainerEvent event type sent when a new application is being installed by `install()`, before it has been started.
`static java.lang.String` `REMOVE_EVENT` The ContainerEvent event type sent when an existing application is removed by `remove()`.

Method Summary
`Context` `findDeployedApp(java.lang.String contextPath)` Return the Context for the deployed application that is associated with the specified context path (if any); otherwise return `null`.
`java.lang.String[]` `findDeployedApps()` Return the context paths of all deployed web applications in this Container.
`java.lang.String` `getName()` Return the name of the Container with which this Deployer is associated.
`void` `install(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` `install(java.net.URL war)` Installs a new web application from the web application archive at the specified URL, which must contain a META-INF/context.xml context configuration file (consisting of a `<Context>` element).
`void` `install(java.net.URL config, java.net.URL war)` Install a new web application, whose context configuration file (consisting of a `<Context>` element) and web application archive are at the specified URLs.
`boolean` `isDeployXML()` Returns true if context.xml config files are supported.
`void` `remove(java.lang.String contextPath)` Remove an existing web application, attached to the specified context path.
`void` `remove(java.lang.String contextPath, boolean undeploy)` Remove an existing web application, attached to the specified context path.
`void` `start(java.lang.String contextPath)` Start an existing web application, attached to the specified context path.
`void` `stop(java.lang.String contextPath)` Stop an existing web application, attached to the specified context path.

Field Detail

### PRE_INSTALL_EVENT

    public static final java.lang.String PRE_INSTALL_EVENT

  The ContainerEvent event type sent when a new application is being installed by `install()`, before it has been started.

  See Also:
    Constant Field Values

### INSTALL_EVENT

    public static final java.lang.String INSTALL_EVENT

  The ContainerEvent event type sent when a new application is installed by `install()`, after it has been started.

  See Also:
    Constant Field Values

### REMOVE_EVENT

    public static final java.lang.String REMOVE_EVENT

  The ContainerEvent event type sent when an existing application is removed by `remove()`.

  See Also:
    Constant Field Values

Method Detail

### getName

    public java.lang.String getName()

  Return the name of the Container with which this Deployer is associated.

### install

    public void install(java.lang.String contextPath,
                        java.net.URL war)
                 throws java.io.IOException

  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 `INSTALL_EVENT` will be sent to all registered listeners, 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
    `java.io.IOException` - if an input/output error was encountered during installation

### install

    public void install(java.net.URL config,
                        java.net.URL war)
                 throws java.io.IOException

  Install a new web application, whose context configuration file (consisting of a `<Context>` element) and web application archive are at the specified URLs.

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

  Parameters:
    `config` - A URL that points to the context configuration file to be used for configuring the new Context
    `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 one of the specified URLs is null
    `java.lang.IllegalStateException` - if the context path specified in the context configuration file is already attached to an existing web application
    `java.io.IOException` - if an input/output error was encountered during installation

### install

    public void install(java.net.URL war)
                 throws java.io.IOException

  Installs a new web application from the web application archive at the specified URL, which must contain a META-INF/context.xml context configuration file (consisting of a `<Context>` element).

  The web application is installed at the path specified inside the embedded META-INF/context.xml. The docBase (if any) specified inside the embedded META-INF/context.xml is overridden with the web application's location.

  If the installation succeeds, a ContainerEvent of type `INSTALL_EVENT` is sent to all registered listeners, with the newly created `Context` as its argument.

  Parameters:
    `war` - URL pointing to web application location (WAR-packaged or unpacked directory)
  Throws:
    `java.lang.IllegalArgumentException` - if `war` is null, or if the deployment host does not support any context.xml configuration files
    `java.lang.IllegalStateException` - if the context path specified in the context configuration file is already in use by an existing web application
    `java.io.IOException` - if an input/output error was encountered during installation

### findDeployedApp

    public Context findDeployedApp(java.lang.String contextPath)

  Return the Context for the deployed application that is associated with the specified context path (if any); otherwise return `null`.

  Parameters:
    `contextPath` - The context path of the requested web application

### findDeployedApps

    public java.lang.String[] findDeployedApps()

  Return the context paths of all deployed web applications in this Container. If there are no deployed applications, a zero-length array is returned.

### remove

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

  Remove an existing web application, attached to the specified context path. 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.

  Parameters:
    `contextPath` - The context path of the application to be removed
  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 removal

### remove

    public void remove(java.lang.String contextPath,
                       boolean undeploy)
                throws java.io.IOException

  Remove an existing web application, attached to the specified context path. 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:
    `contextPath` - The context path of the application to be removed
    `undeploy` - boolean flag to remove web application from server
  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 removal

### start

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

  Start an existing web application, attached to the specified context path. 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

### 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

### isDeployXML

    public boolean isDeployXML()

  Returns true if context.xml config files are supported.

  Returns:
    true of context.xml config files are supported, false otherwise

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