Class StandardHostDeployer

  • All Implemented Interfaces:
    Deployer

    public class StandardHostDeployer
    extends Object
    implements Deployer

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

    Version:
    $Revision: 1.4 $ $Date: 2006/03/12 01:27:01 $
    Author:
    Craig R. McClanahan
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addChild​(Container child)
      Delegate a request to add a child Context to our associated Host.
      protected Digester createDigester()
      Create (if necessary) and return a Digester configured to process the context configuration descriptor for an application.
      protected void deleteDir​(File dir)
      Delete the specified directory, including all of its contents and subdirectories recursively.
      protected void deleteFile​(File dir)  
      Context findDeployedApp​(String contextPath)
      Return the Context for the deployed application that is associated with the specified context path (if any); otherwise return null.
      String[] findDeployedApps()
      Return the context paths of all deployed web applications in this Container.
      Host getHost()  
      String getName()
      Return the name of the Container with which this Deployer is associated.
      ClassLoader getParentClassLoader()
      Delegate a request for the parent class loader to our associated Host.
      void install​(String contextPath, 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​(String contextPath, URL war, String configFile)
      Install a new web application, whose web application archive is at the specified URL, into this container with the specified context path.
      void install​(URL config, 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​(String contextPath)
      Remove an existing web application, attached to the specified context path.
      void remove​(String contextPath, boolean undeploy)
      Remove an existing web application, attached to the specified context path.
      void setHost​(Host host)  
      void start​(String contextPath)
      Start an existing web application, attached to the specified context path.
      void stop​(String contextPath)
      Stop an existing web application, attached to the specified context path.
    • Field Detail

      • host

        protected StandardHost host
        The StandardHost instance we are associated with.
    • Constructor Detail

      • StandardHostDeployer

        public StandardHostDeployer()
      • StandardHostDeployer

        public StandardHostDeployer​(StandardHost host)
        Create a new StandardHostDeployer associated with the specified StandardHost.
        Parameters:
        host - The StandardHost we are associated with
    • Method Detail

      • getHost

        public Host getHost()
      • setHost

        public void setHost​(Host host)
      • getName

        public String getName()
        Return the name of the Container with which this Deployer is associated.
        Specified by:
        getName in interface Deployer
      • install

        public void install​(String contextPath,
                            URL war)
                     throws 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:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalStateException - if the specified context path is already attached to an existing web application
        IOException - if an input/output error was encountered during installation
      • install

        public void install​(String contextPath,
                            URL war,
                            String configFile)
                     throws 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.

        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
        configFile - The path to a file to save the Context information. If configFile is null, the Context information is saved in server.xml; if it is NOT null, the Context information is saved in configFile.
        Throws:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalStateException - if the specified context path is already attached to an existing web application
        IOException - if an input/output error was encountered during installation
      • install

        public void install​(URL config,
                            URL war)
                     throws 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:
        IllegalArgumentException - if one of the specified URLs is null
        IllegalStateException - if the context path specified in the context configuration file is already attached to an existing web application
        IOException - if an input/output error was encountered during installation
      • findDeployedApp

        public Context findDeployedApp​(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 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​(String contextPath)
                    throws 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:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalArgumentException - if the specified context path does not identify a currently installed web application
        IOException - if an input/output error occurs during removal
      • remove

        public void remove​(String contextPath,
                           boolean undeploy)
                    throws 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:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalArgumentException - if the specified context path does not identify a currently installed web application
        IOException - if an input/output error occurs during removal
      • start

        public void start​(String contextPath)
                   throws 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:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalArgumentException - if the specified context path does not identify a currently installed web application
        IOException - if an input/output error occurs during startup
      • stop

        public void stop​(String contextPath)
                  throws 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:
        IllegalArgumentException - if the specified context path is malformed (it must be "" or start with a slash)
        IllegalArgumentException - if the specified context path does not identify a currently installed web application
        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 ClassLoader getParentClassLoader()
        Delegate a request for the parent class loader to our associated Host.
      • createDigester

        protected Digester createDigester()
        Create (if necessary) and return a Digester configured to process the context configuration descriptor for an application.
      • deleteDir

        protected void deleteDir​(File dir)
        Delete the specified directory, including all of its contents and subdirectories recursively.
        Parameters:
        dir - File object representing the directory to be deleted
      • deleteFile

        protected void deleteFile​(File dir)