Class StandardServer

  • All Implemented Interfaces:
    javax.management.MBeanRegistration, JmxEnabled, Lifecycle, Server

    public final class StandardServer
    extends LifecycleMBeanBase
    implements Server
    Standard implementation of the Server interface, available for use (but not required) when deploying and starting Catalina.
    • Constructor Detail

      • StandardServer

        public StandardServer()
        Construct a default instance of this class.
    • Method Detail

      • getNamingToken

        public java.lang.Object getNamingToken()
        Description copied from interface: Server
        Returns the token required for performing operations on the associated JNDI naming context.
        Specified by:
        getNamingToken in interface Server
        Returns:
        the JNDI naming context token
      • getGlobalNamingContext

        public javax.naming.Context getGlobalNamingContext()
        Description copied from interface: Server
        Returns the global JNDI naming context for this server.
        Specified by:
        getGlobalNamingContext in interface Server
        Returns:
        the global naming context
      • setGlobalNamingContext

        public void setGlobalNamingContext​(javax.naming.Context globalNamingContext)
        Set the global naming resources context.
        Parameters:
        globalNamingContext - The new global naming resource context
      • getGlobalNamingResources

        public NamingResourcesImpl getGlobalNamingResources()
        Description copied from interface: Server
        Returns the global naming resources for this server.
        Specified by:
        getGlobalNamingResources in interface Server
        Returns:
        the global naming resources
      • setGlobalNamingResources

        public void setGlobalNamingResources​(NamingResourcesImpl globalNamingResources)
        Description copied from interface: Server
        Set the global naming resources.
        Specified by:
        setGlobalNamingResources in interface Server
        Parameters:
        globalNamingResources - The new global naming resources
      • getServerInfo

        public java.lang.String getServerInfo()
        Report the current Tomcat Server Release number
        Returns:
        Tomcat release identifier
      • getServerBuilt

        public java.lang.String getServerBuilt()
        Return the current server built timestamp
        Returns:
        server built timestamp.
      • getServerNumber

        public java.lang.String getServerNumber()
        Return the current server's version number.
        Returns:
        server's version number.
      • setPort

        public void setPort​(int port)
        Description copied from interface: Server
        Set the port number we listen to for shutdown commands.
        Specified by:
        setPort in interface Server
        Parameters:
        port - The new port number
        See Also:
        Server.setPortOffset(int)
      • getPortOffset

        public int getPortOffset()
        Description copied from interface: Server
        Get the number that offsets the port used for shutdown commands. For example, if port is 8005, and portOffset is 1000, the server listens at 9005.
        Specified by:
        getPortOffset in interface Server
        Returns:
        the port offset
      • setPortOffset

        public void setPortOffset​(int portOffset)
        Description copied from interface: Server
        Set the number that offsets the server port used for shutdown commands. For example, if port is 8005, and you set portOffset to 1000, connector listens at 9005.
        Specified by:
        setPortOffset in interface Server
        Parameters:
        portOffset - sets the port offset
      • getPortWithOffset

        public int getPortWithOffset()
        Description copied from interface: Server
        Get the actual port on which server is listening for the shutdown commands. If you do not set port offset, port is returned. If you set port offset, port offset + port is returned.
        Specified by:
        getPortWithOffset in interface Server
        Returns:
        the port with offset
      • getAddress

        public java.lang.String getAddress()
        Description copied from interface: Server
        Returns the address on which the server listens for shutdown commands.
        Specified by:
        getAddress in interface Server
        Returns:
        the address for shutdown commands
      • setAddress

        public void setAddress​(java.lang.String address)
        Description copied from interface: Server
        Set the address on which we listen to for shutdown commands.
        Specified by:
        setAddress in interface Server
        Parameters:
        address - The new address
      • getShutdown

        public java.lang.String getShutdown()
        Description copied from interface: Server
        Returns the shutdown command string the server is waiting for.
        Specified by:
        getShutdown in interface Server
        Returns:
        the shutdown command string
      • setShutdown

        public void setShutdown​(java.lang.String shutdown)
        Description copied from interface: Server
        Set the shutdown command we are waiting for.
        Specified by:
        setShutdown in interface Server
        Parameters:
        shutdown - The new shutdown command
      • getCatalina

        public Catalina getCatalina()
        Description copied from interface: Server
        Returns the outer Catalina startup/shutdown component, if one has been set.
        Specified by:
        getCatalina in interface Server
        Returns:
        the Catalina component, or null if not set
      • setCatalina

        public void setCatalina​(Catalina catalina)
        Description copied from interface: Server
        Set the outer Catalina startup/shutdown component if present.
        Specified by:
        setCatalina in interface Server
        Parameters:
        catalina - the outer Catalina component
      • getUtilityThreads

        public int getUtilityThreads()
        Description copied from interface: Server
        Get the utility thread count.
        Specified by:
        getUtilityThreads in interface Server
        Returns:
        the thread count
      • setUtilityThreads

        public void setUtilityThreads​(int utilityThreads)
        Description copied from interface: Server
        Set the utility thread count.
        Specified by:
        setUtilityThreads in interface Server
        Parameters:
        utilityThreads - the new thread count
      • getUtilityThreadsAsDaemon

        public boolean getUtilityThreadsAsDaemon()
        Get if the utility threads are daemon threads.
        Returns:
        the threads daemon flag
      • setUtilityThreadsAsDaemon

        public void setUtilityThreadsAsDaemon​(boolean utilityThreadsAsDaemon)
        Set the utility threads daemon flag. The default value is true.
        Parameters:
        utilityThreadsAsDaemon - the new thread daemon flag
      • getPeriodicEventDelay

        public int getPeriodicEventDelay()
        Return the period between two lifecycle events, in seconds.
        Returns:
        The period between two lifecycle events, in seconds
      • setPeriodicEventDelay

        public void setPeriodicEventDelay​(int periodicEventDelay)
        Set the new period between two lifecycle events in seconds.
        Parameters:
        periodicEventDelay - The period in seconds, negative or zero will disable events
      • addService

        public void addService​(Service service)
        Description copied from interface: Server
        Add a new Service to the set of defined Services.
        Specified by:
        addService in interface Server
        Parameters:
        service - The Service to be added
      • stopAwait

        public void stopAwait()
        Stop the await thread by closing the await socket and interrupting the thread.
      • await

        public void await()
        Description copied from interface: Server
        Wait until a proper shutdown command is received, then return.
        Specified by:
        await in interface Server
      • findService

        public Service findService​(java.lang.String name)
        Description copied from interface: Server
        Find the specified Service
        Specified by:
        findService in interface Server
        Parameters:
        name - Name of the Service to be returned
        Returns:
        the specified Service, or null if none exists.
      • findServices

        public Service[] findServices()
        Description copied from interface: Server
        Returns the array of all Services defined within this Server.
        Specified by:
        findServices in interface Server
        Returns:
        the array of Services, or an empty array if none are defined
      • getServiceNames

        public javax.management.ObjectName[] getServiceNames()
        Return the JMX ObjectNames for all configured services.
        Returns:
        the JMX service names.
      • removeService

        public void removeService​(Service service)
        Description copied from interface: Server
        Remove the specified Service from the set associated from this Server.
        Specified by:
        removeService in interface Server
        Parameters:
        service - The Service to be removed
      • getCatalinaBase

        public java.io.File getCatalinaBase()
        Description copied from interface: Server
        Returns the configured base (instance) directory. If not set, the value from Server.getCatalinaHome() is used. Note that home and base may be the same (and are by default).
        Specified by:
        getCatalinaBase in interface Server
        Returns:
        the configured base directory
      • setCatalinaBase

        public void setCatalinaBase​(java.io.File catalinaBase)
        Description copied from interface: Server
        Set the configured base (instance) directory. Note that home and base may be the same (and are by default).
        Specified by:
        setCatalinaBase in interface Server
        Parameters:
        catalinaBase - the configured base directory
      • getCatalinaHome

        public java.io.File getCatalinaHome()
        Description copied from interface: Server
        Returns the configured home (binary) directory. Note that home and base may be the same (and are by default).
        Specified by:
        getCatalinaHome in interface Server
        Returns:
        the configured home directory
      • setCatalinaHome

        public void setCatalinaHome​(java.io.File catalinaHome)
        Description copied from interface: Server
        Set the configured home (binary) directory. Note that home and base may be the same (and are by default).
        Specified by:
        setCatalinaHome in interface Server
        Parameters:
        catalinaHome - the configured home directory
      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Add a property change listener to this component.
        Parameters:
        listener - The listener to add
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Remove a property change listener from this component.
        Parameters:
        listener - The listener to remove
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • storeConfig

        public void storeConfig()
                         throws javax.management.InstanceNotFoundException,
                                javax.management.MBeanException
        Write the configuration information for this entire Server out to the server.xml configuration file.
        Throws:
        javax.management.InstanceNotFoundException - if the managed resource object cannot be found
        javax.management.MBeanException - if the initializer of the object throws an exception, or persistence is not supported
        javax.management.RuntimeOperationsException - if an exception is reported by the persistence mechanism
      • storeContext

        public void storeContext​(Context context)
                          throws javax.management.InstanceNotFoundException,
                                 javax.management.MBeanException
        Write the configuration information for Context out to the specified configuration file.
        Parameters:
        context - the context which should save its configuration
        Throws:
        javax.management.InstanceNotFoundException - if the managed resource object cannot be found
        javax.management.MBeanException - if the initializer of the object throws an exception or persistence is not supported
        javax.management.RuntimeOperationsException - if an exception is reported by the persistence mechanism
      • initInternal

        protected void initInternal()
                             throws LifecycleException
        Subclasses implement this method to perform any instance initialisation required.

        This is used to allow connectors to bind to restricted ports under Unix operating environments.

        Overrides:
        initInternal in class LifecycleMBeanBase
        Throws:
        LifecycleException - If the initialisation fails
      • getParentClassLoader

        public java.lang.ClassLoader getParentClassLoader()
        Description copied from interface: Server
        Returns the parent class loader for this server component. If not explicitly set, returns the parent class loader from Server.getCatalina(). If Catalina has not been set, returns the system class loader.
        Specified by:
        getParentClassLoader in interface Server
        Returns:
        the parent class loader
      • setParentClassLoader

        public void setParentClassLoader​(java.lang.ClassLoader parent)
        Description copied from interface: Server
        Set the parent class loader for this server.
        Specified by:
        setParentClassLoader in interface Server
        Parameters:
        parent - The new parent class loader
      • getDomainInternal

        protected java.lang.String getDomainInternal()
        Description copied from class: LifecycleMBeanBase
        Method implemented by subclasses to identify the domain in which MBeans should be registered.
        Specified by:
        getDomainInternal in class LifecycleMBeanBase
        Returns:
        the MBean domain for this server. The domain is obtained using the following search order:
        1. Name of first Engine.
        2. Name of first Service.
      • getObjectNameKeyProperties

        protected java.lang.String getObjectNameKeyProperties()
        Description copied from class: LifecycleMBeanBase
        Allow subclasses to specify the key properties component of the ObjectName that will be used to register this component.
        Specified by:
        getObjectNameKeyProperties in class LifecycleMBeanBase
        Returns:
        The string representation of the key properties component of the desired ObjectName
      • getUtilityExecutor

        public java.util.concurrent.ScheduledExecutorService getUtilityExecutor()
        Description copied from interface: Server
        Returns the utility executor managed by the server for background tasks.
        Specified by:
        getUtilityExecutor in interface Server
        Returns:
        the utility executor service