# Class Catalina

java.lang.Object
org.apache.catalina.startup.Catalina

public class Catalina extends Object
Startup/Shutdown shell program for Catalina. The following command line options are recognized:

- -config {pathname} - Set the pathname of the configuration file to be processed. If a relative path is specified, it will be interpreted as relative to the directory pathname specified by the "catalina.base" system property. [conf/server.xml]
- -help - Display usage information.
- -nonaming - Disable naming support.
- configtest - Try to test the config
- start - Start an instance of Catalina.
- stop - Stop the currently running instance of Catalina.

Author:
  Craig R. McClanahan, Remy Maucherat

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `Catalina.CatalinaShutdownHook`
  Shutdown hook which will perform a clean shutdown of Catalina if needed.
  `static interface`
  `Catalina.ServerXml`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `await`
  Use await.
  `protected String`
  `configFile`
  Pathname to the server configuration file.
  `protected boolean`
  `generateCode`
  Generate Tomcat embedded code from configuration files.
  `protected File`
  `generatedCodeLocation`
  Location of generated sources.
  `protected String`
  `generatedCodeLocationParameter`
  Value of the argument.
  `protected String`
  `generatedCodePackage`
  Top package name for generated source.
  `protected boolean`
  `loaded`
  Prevent duplicate loads.
  `protected ClassLoader`
  `parentClassLoader`
  The shared extensions class loader for this server.
  `protected Server`
  `server`
  The server component we are starting or stopping.
  `static final String`
  `SERVER_XML`
  `protected Thread`
  `shutdownHook`
  Shutdown hook.
  `protected static final StringManager`
  `sm`
  The string manager for this package.
  `protected boolean`
  `useGeneratedCode`
  Use generated code as a replacement for configuration files.
  `protected boolean`
  `useNaming`
  Is naming enabled ?
  `protected boolean`
  `useShutdownHook`
  Use shutdown hook flag.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Catalina()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected boolean`
  `arguments(String[] args)`
  Process the specified command line arguments.
  `void`
  `await()`
  Await and shutdown.
  `protected File`
  `configFile()`
  Return a File object representing our configuration file.
  `protected Digester`
  `createStartDigester()`
  Create and configure the Digester we will be using for startup.
  `protected Digester`
  `createStopDigester()`
  Create and configure the Digester we will be using for shutdown.
  `protected void`
  `generateClassFooter(Digester digester)`
  `protected void`
  `generateClassHeader(Digester digester, boolean start)`
  `protected void`
  `generateLoader()`
  `String`
  `getConfigFile()`
  `boolean`
  `getGenerateCode()`
  `File`
  `getGeneratedCodeLocation()`
  `String`
  `getGeneratedCodePackage()`
  `ClassLoader`
  `getParentClassLoader()`
  `Server`
  `getServer()`
  `boolean`
  `getUseGeneratedCode()`
  `boolean`
  `getUseShutdownHook()`
  `protected void`
  `initDirs()`
  Deprecated.
  unused.
  `protected void`
  `initNaming()`
  `protected void`
  `initStreams()`
  `boolean`
  `isAwait()`
  `boolean`
  `isUseNaming()`
  `void`
  `load()`
  Start a new server instance.
  `void`
  `load(String[] args)`
  `protected void`
  `parseServerXml(boolean start)`
  `void`
  `setAwait(boolean b)`
  `void`
  `setConfigFile(String file)`
  `void`
  `setGenerateCode(boolean generateCode)`
  `void`
  `setGeneratedCodeLocation(File generatedCodeLocation)`
  `void`
  `setGeneratedCodePackage(String generatedCodePackage)`
  `void`
  `setParentClassLoader(ClassLoader parentClassLoader)`
  Set the shared extensions class loader.
  `protected void`
  `setSecurityProtection()`
  Set the security package access/protection.
  `void`
  `setServer(Server server)`
  `void`
  `setUseGeneratedCode(boolean useGeneratedCode)`
  `void`
  `setUseNaming(boolean useNaming)`
  Enables or disables naming support.
  `void`
  `setUseShutdownHook(boolean useShutdownHook)`
  `void`
  `start()`
  Start a new server instance.
  `void`
  `stop()`
  Stop an existing server instance.
  `void`
  `stopServer()`
  `void`
  `stopServer(String[] arguments)`
  `protected void`
  `usage()`
  Print usage information for this application.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### sm

    protected static final StringManager sm
    The string manager for this package.

  - ### SERVER_XML

    public static final String SERVER_XML
    See Also:
      - Constant Field Values

  - ### await

    protected boolean await
    Use await.

  - ### configFile

    protected String configFile
    Pathname to the server configuration file.

  - ### parentClassLoader

    protected ClassLoader parentClassLoader
    The shared extensions class loader for this server.

  - ### server

    protected Server server
    The server component we are starting or stopping.

  - ### useShutdownHook

    protected boolean useShutdownHook
    Use shutdown hook flag.

  - ### shutdownHook

    protected Thread shutdownHook
    Shutdown hook.

  - ### useNaming

    protected boolean useNaming
    Is naming enabled ?

  - ### loaded

    protected boolean loaded
    Prevent duplicate loads.

  - ### generateCode

    protected boolean generateCode
    Generate Tomcat embedded code from configuration files.

  - ### generatedCodeLocation

    protected File generatedCodeLocation
    Location of generated sources.

  - ### generatedCodeLocationParameter

    protected String generatedCodeLocationParameter
    Value of the argument.

  - ### generatedCodePackage

    protected String generatedCodePackage
    Top package name for generated source.

  - ### useGeneratedCode

    protected boolean useGeneratedCode
    Use generated code as a replacement for configuration files.

- ## Constructor Details

  - ### Catalina

    public Catalina()

- ## Method Details

  - ### setConfigFile

    public void setConfigFile(String file)

  - ### getConfigFile

    public String getConfigFile()

  - ### setUseShutdownHook

    public void setUseShutdownHook(boolean useShutdownHook)

  - ### getUseShutdownHook

    public boolean getUseShutdownHook()

  - ### getGenerateCode

    public boolean getGenerateCode()

  - ### setGenerateCode

    public void setGenerateCode(boolean generateCode)

  - ### getUseGeneratedCode

    public boolean getUseGeneratedCode()

  - ### setUseGeneratedCode

    public void setUseGeneratedCode(boolean useGeneratedCode)

  - ### getGeneratedCodeLocation

    public File getGeneratedCodeLocation()

  - ### setGeneratedCodeLocation

    public void setGeneratedCodeLocation(File generatedCodeLocation)

  - ### getGeneratedCodePackage

    public String getGeneratedCodePackage()

  - ### setGeneratedCodePackage

    public void setGeneratedCodePackage(String generatedCodePackage)

  - ### setParentClassLoader

    public void setParentClassLoader(ClassLoader parentClassLoader)
    Set the shared extensions class loader.
    Parameters:
      `parentClassLoader` - The shared extensions class loader.

  - ### getParentClassLoader

    public ClassLoader getParentClassLoader()

  - ### setServer

    public void setServer(Server server)

  - ### getServer

    public Server getServer()

  - ### isUseNaming

    public boolean isUseNaming()
    Returns:
      `true` if naming is enabled.

  - ### setUseNaming

    public void setUseNaming(boolean useNaming)
    Enables or disables naming support.
    Parameters:
      `useNaming` - The new use naming value

  - ### setAwait

    public void setAwait(boolean b)

  - ### isAwait

    public boolean isAwait()

  - ### arguments

    protected boolean arguments(String[] args)
    Process the specified command line arguments.
    Parameters:
      `args` - Command line arguments to process
    Returns:
      `true` if we should continue processing

  - ### configFile

    protected File configFile()
    Return a File object representing our configuration file.
    Returns:
      the main configuration file

  - ### createStartDigester

    protected Digester createStartDigester()
    Create and configure the Digester we will be using for startup.
    Returns:
      the main digester to parse server.xml

  - ### createStopDigester

    protected Digester createStopDigester()
    Create and configure the Digester we will be using for shutdown.
    Returns:
      the digester to process the stop operation

  - ### parseServerXml

    protected void parseServerXml(boolean start)

  - ### stopServer

    public void stopServer()

  - ### stopServer

    public void stopServer(String[] arguments)

  - ### load

    public void load()
    Start a new server instance.

  - ### load

    public void load(String[] args)

  - ### start

    public void start()
    Start a new server instance.

  - ### stop

    public void stop()
    Stop an existing server instance.

  - ### await

    public void await()
    Await and shutdown.

  - ### usage

    protected void usage()
    Print usage information for this application.

  - ### initDirs

    @Deprecated protected void initDirs()
    Deprecated.
    unused. Will be removed in Tomcat 10 onwards.

  - ### initStreams

    protected void initStreams()

  - ### initNaming

    protected void initNaming()

  - ### setSecurityProtection

    protected void setSecurityProtection()
    Set the security package access/protection.

  - ### generateLoader

    protected void generateLoader()

  - ### generateClassHeader

    protected void generateClassHeader(Digester digester, boolean start)

  - ### generateClassFooter

    protected void generateClassFooter(Digester digester)