Class TomcatLoader

  • All Implemented Interfaces:
    org.red5.server.jmx.mxbeans.LoaderMXBean, org.red5.server.jmx.mxbeans.ShutdownMXBean, org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware
    Direct Known Subclasses:
    RTMPTLoader, TomcatVHostLoader

    @ManagedResource(objectName="org.red5.server:type=TomcatLoader",
                     description="TomcatLoader")
    public class TomcatLoader
    extends org.red5.server.LoaderBase
    implements org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean, org.red5.server.jmx.mxbeans.LoaderMXBean
    Red5 loader for Tomcat. http://tomcat.apache.org/tomcat-8.5-doc/api/index.html
    Author:
    Paul Gregoire (mondain@gmail.com)
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  TomcatLoader.DirectoryFilter
      Filters directory content
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.List<TomcatConnector> connectors
      Connectors
      static java.lang.String defaultParentContextKey  
      static java.lang.String defaultSpringConfigLocation  
      protected static EmbeddedTomcat embedded
      Embedded Tomcat service (like Catalina).
      protected static org.apache.catalina.Engine engine
      Tomcat engine.
      protected org.apache.catalina.Host host
      Base container host.
      protected java.util.List<org.apache.catalina.Host> hosts
      Hosts
      protected org.apache.catalina.Realm realm
      Tomcat realm.
      java.lang.String serviceEngineName
      Common name for the Service and Engine components.
      protected java.util.List<org.apache.catalina.Valve> valves
      Valves
      • Fields inherited from class org.red5.server.LoaderBase

        applicationContext, loader, red5AppCtx, webappFolder
    • Constructor Summary

      Constructors 
      Constructor Description
      TomcatLoader()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.catalina.Context addContext​(java.lang.String path, java.lang.String docBase)
      Add context for path and docbase to current host.
      org.apache.catalina.Context addContext​(java.lang.String contextPath, java.lang.String docBase, org.apache.catalina.Host host)
      Add context for path and docbase to a host.
      void afterPropertiesSet()  
      void destroy()
      Shut server down.
      org.apache.catalina.Host getBaseHost()
      Get base host.
      org.apache.catalina.Cluster getCluster()
      Get cluster
      EmbeddedTomcat getEmbedded()
      Getter for embedded object.
      org.apache.catalina.Engine getEngine()
      Return Tomcat engine.
      org.apache.catalina.Host getHost()
      Get the host.
      protected java.lang.String getHostId()
      Returns a semi-unique id for this host based on its host values
      org.apache.catalina.Realm getRealm()
      Getter for realm.
      protected void registerJMX()  
      void removeContext​(java.lang.String path)
      Remove context from the current host.
      void setBaseHost​(org.apache.catalina.Host baseHost)
      Set base host.
      void setCluster​(org.apache.catalina.Cluster cluster)
      Set cluster
      void setConnectors​(java.util.List<TomcatConnector> connectors)
      Set connectors.
      void setContexts​(java.util.Map<java.lang.String,​java.lang.String> contexts)
      Set additional contexts.
      void setEmbedded​(EmbeddedTomcat embedded)
      Setter for embedded object.
      void setHost​(org.apache.catalina.Host host)
      Set the host.
      void setHosts​(java.util.List<org.apache.catalina.Host> hosts)
      Set additional hosts.
      void setRealm​(org.apache.catalina.Realm realm)
      Setter for realm.
      void setValves​(java.util.List<org.apache.catalina.Valve> valves)
      Set additional valves.
      void start()
      Initialization.
      boolean startWebApplication​(java.lang.String applicationName)
      Starts a web application and its red5 (spring) component.
      java.lang.String toString()  
      protected void unregisterJMX()  
      • Methods inherited from class org.red5.server.LoaderBase

        getApplicationContext, getApplicationLoader, getRed5ApplicationContext, getRed5ApplicationContexts, removeRed5ApplicationContext, setApplicationContext, setApplicationLoader, setRed5ApplicationContext, setWebappFolder
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • defaultSpringConfigLocation

        public static final java.lang.String defaultSpringConfigLocation
        See Also:
        Constant Field Values
      • defaultParentContextKey

        public static final java.lang.String defaultParentContextKey
        See Also:
        Constant Field Values
      • serviceEngineName

        public java.lang.String serviceEngineName
        Common name for the Service and Engine components.
      • host

        protected org.apache.catalina.Host host
        Base container host.
      • embedded

        protected static EmbeddedTomcat embedded
        Embedded Tomcat service (like Catalina).
      • engine

        protected static org.apache.catalina.Engine engine
        Tomcat engine.
      • realm

        protected org.apache.catalina.Realm realm
        Tomcat realm.
      • hosts

        protected java.util.List<org.apache.catalina.Host> hosts
        Hosts
      • connectors

        protected java.util.List<TomcatConnector> connectors
        Connectors
      • valves

        protected java.util.List<org.apache.catalina.Valve> valves
        Valves
    • Constructor Detail

      • TomcatLoader

        public TomcatLoader()
    • Method Detail

      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception
      • addContext

        public org.apache.catalina.Context addContext​(java.lang.String path,
                                                      java.lang.String docBase)
                                               throws javax.servlet.ServletException
        Add context for path and docbase to current host.
        Parameters:
        contextPath - Path
        docBase - Document base
        Returns:
        Catalina context (that is, web application)
        Throws:
        javax.servlet.ServletException
      • addContext

        public org.apache.catalina.Context addContext​(java.lang.String contextPath,
                                                      java.lang.String docBase,
                                                      org.apache.catalina.Host host)
                                               throws javax.servlet.ServletException
        Add context for path and docbase to a host.
        Parameters:
        contextPath - Path
        docBase - Document base
        host - Host to add context to
        Returns:
        Catalina context (that is, web application)
        Throws:
        javax.servlet.ServletException
      • removeContext

        public void removeContext​(java.lang.String path)
        Remove context from the current host.
        Specified by:
        removeContext in interface org.red5.server.jmx.mxbeans.LoaderMXBean
        Overrides:
        removeContext in class org.red5.server.LoaderBase
        Parameters:
        path - Path
      • start

        public void start()
                   throws javax.servlet.ServletException
        Initialization.
        Throws:
        javax.servlet.ServletException
      • startWebApplication

        public boolean startWebApplication​(java.lang.String applicationName)
                                    throws javax.servlet.ServletException
        Starts a web application and its red5 (spring) component. This is basically a stripped down version of start().
        Specified by:
        startWebApplication in interface org.red5.server.jmx.mxbeans.LoaderMXBean
        Returns:
        true on success
        Throws:
        javax.servlet.ServletException
      • setBaseHost

        public void setBaseHost​(org.apache.catalina.Host baseHost)
        Set base host.
        Parameters:
        baseHost - Base host
      • getBaseHost

        public org.apache.catalina.Host getBaseHost()
        Get base host.
        Returns:
        Base host
      • getEngine

        public org.apache.catalina.Engine getEngine()
        Return Tomcat engine.
        Returns:
        Tomcat engine
      • setConnectors

        public void setConnectors​(java.util.List<TomcatConnector> connectors)
        Set connectors.
        Parameters:
        connectors -
      • setContexts

        public void setContexts​(java.util.Map<java.lang.String,​java.lang.String> contexts)
                         throws javax.servlet.ServletException
        Set additional contexts.
        Parameters:
        contexts - Map of contexts
        Throws:
        javax.servlet.ServletException
      • setEmbedded

        public void setEmbedded​(EmbeddedTomcat embedded)
        Setter for embedded object.
        Parameters:
        embedded - Embedded object
      • getEmbedded

        public EmbeddedTomcat getEmbedded()
        Getter for embedded object.
        Returns:
        Embedded object
      • getHost

        public org.apache.catalina.Host getHost()
        Get the host.
        Returns:
        host
      • setHost

        public void setHost​(org.apache.catalina.Host host)
        Set the host.
        Parameters:
        host - host
      • setHosts

        public void setHosts​(java.util.List<org.apache.catalina.Host> hosts)
        Set additional hosts.
        Parameters:
        hosts - List of hosts added to engine
      • setRealm

        public void setRealm​(org.apache.catalina.Realm realm)
        Setter for realm.
        Parameters:
        realm - Realm
      • getRealm

        public org.apache.catalina.Realm getRealm()
        Getter for realm.
        Returns:
        Realm
      • setValves

        public void setValves​(java.util.List<org.apache.catalina.Valve> valves)
        Set additional valves.
        Parameters:
        valves - List of valves
      • getHostId

        protected java.lang.String getHostId()
        Returns a semi-unique id for this host based on its host values
        Returns:
        host id
      • registerJMX

        protected void registerJMX()
      • unregisterJMX

        protected void unregisterJMX()
      • destroy

        public void destroy()
                     throws java.lang.Exception
        Shut server down.
        Specified by:
        destroy in interface org.springframework.beans.factory.DisposableBean
        Specified by:
        destroy in interface org.red5.server.jmx.mxbeans.LoaderMXBean
        Specified by:
        destroy in interface org.red5.server.jmx.mxbeans.ShutdownMXBean
        Throws:
        java.lang.Exception
      • toString

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

        public org.apache.catalina.Cluster getCluster()
        Get cluster
        Returns:
        cluster object
      • setCluster

        public void setCluster​(org.apache.catalina.Cluster cluster)
        Set cluster
        Parameters:
        cluster - object