org.apache.catalina.core
Class StandardHostDeployer

java.lang.Object
  extended byorg.apache.catalina.core.StandardHostDeployer
All Implemented Interfaces:
Deployer

public class StandardHostDeployer
extends java.lang.Object
implements Deployer

Implementation of Deployer that is delegated to by the StandardHost implementation class.

Version:
$Revision: 1.15 $ $Date: 2004/08/26 21:32:20 $
Author:
Craig R. McClanahan

Field Summary
protected  StandardHost host
          The StandardHost instance we are associated with.
protected static StringManager sm
          The string manager for this package.
 
Fields inherited from interface org.apache.catalina.Deployer
INSTALL_EVENT, PRE_INSTALL_EVENT, REMOVE_EVENT
 
Constructor Summary
StandardHostDeployer(StandardHost host)
          Create a new StandardHostDeployer associated with the specified StandardHost.
 
Method Summary
 void addChild(Container child)
          Delegate a request to add a child Context to our associated Host.
protected  org.apache.commons.digester.Digester createDigester()
          Create (if necessary) and return a Digester configured to process the context configuration descriptor for an application.
protected  void deleteDir(java.io.File dir)
          Delete the specified directory, including all of its contents and subdirectories recursively.
 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.
 java.lang.ClassLoader getParentClassLoader()
          Delegate a request for the parent class loader to our associated Host.
 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 config, java.net.URL war)
          Install a new web application, whose context configuration file (consisting of a <Context> element) and (optional) web application archive are at the specified URLs.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

host

protected StandardHost host
The StandardHost instance we are associated with.


sm

protected static StringManager sm
The string manager for this package.

Constructor Detail

StandardHostDeployer

public StandardHostDeployer(StandardHost host)
Create a new StandardHostDeployer associated with the specified StandardHost.

Parameters:
host - The StandardHost we are associated with
Method Detail

getName

public java.lang.String getName()
Return the name of the Container with which this Deployer is associated.

Specified by:
getName in interface Deployer

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

Specified by:
install in interface Deployer
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 (optional) web application archive are at the specified URLs.

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.

Specified by:
install in interface Deployer
Parameters:
config - A URL that points to the context configuration descriptor 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, or null to use the docBase attribute from the configuration descriptor
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

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.

Specified by:
findDeployedApp in interface Deployer
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.

Specified by:
findDeployedApps in interface Deployer

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.

Specified by:
remove in interface Deployer
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.

Specified by:
remove in interface Deployer
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.

Specified by:
start in interface Deployer
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.

Specified by:
stop in interface Deployer
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

addChild

public void addChild(Container child)
Delegate a request to add a child Context to our associated Host.

Parameters:
child - The child Context to be added

getParentClassLoader

public java.lang.ClassLoader getParentClassLoader()
Delegate a request for the parent class loader to our associated Host.


createDigester

protected org.apache.commons.digester.Digester createDigester()
Create (if necessary) and return a Digester configured to process the context configuration descriptor for an application.


deleteDir

protected void deleteDir(java.io.File dir)
Delete the specified directory, including all of its contents and subdirectories recursively.

Parameters:
dir - File object representing the directory to be deleted


Copyright 2000-2002 Apache Software Foundation. All Rights Reserved.