Class ContextLoader

java.lang.Object
org.red5.server.ContextLoader
All Implemented Interfaces:
ContextLoaderMXBean, ShutdownMXBean, Aware, DisposableBean, InitializingBean, ApplicationContextAware

@ManagedResource(objectName="org.red5.server:name=contextLoader,type=ContextLoader", description="ContextLoader") public class ContextLoader extends Object implements ApplicationContextAware, InitializingBean, DisposableBean, ContextLoaderMXBean
Red5 applications loader
Author:
The Red5 Project, Tiago Jacobs (tiago@imdt.com.br), Paul Gregoire (mondain@gmail.com)
  • Field Details

    • log

      protected static org.slf4j.Logger log
    • applicationContext

      protected ApplicationContext applicationContext
      Spring Application context
    • parentContext

      protected ApplicationContext parentContext
      Spring parent app context
    • contextsConfig

      protected String contextsConfig
      Context location files
    • oName

      private ObjectName oName
      MBean object name used for de/registration purposes.
    • contextMap

      protected ConcurrentMap<String,ApplicationContext> contextMap
      Context map
  • Constructor Details

    • ContextLoader

      public ContextLoader()
  • Method Details

    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Registers with JMX and registers a shutdown hook.
      Specified by:
      afterPropertiesSet in interface InitializingBean
      Throws:
      Exception - I/O exception, casting exception and others
    • destroy

      public void destroy() throws Exception
      Un-loads or un-initializes the contexts; this is a shutdown method for this loader.
      Specified by:
      destroy in interface DisposableBean
      Specified by:
      destroy in interface ShutdownMXBean
      Throws:
      Exception
    • init

      public void init() throws IOException
      Loads context settings from ResourceBundle (.properties file)
      Specified by:
      init in interface ContextLoaderMXBean
      Throws:
      IOException
    • loadContext

      public void loadContext(String name, String config)
      Loads a context (Red5 application) and stores it in a context map, then adds it's beans to parent (that is, Red5)
      Specified by:
      loadContext in interface ContextLoaderMXBean
      Parameters:
      name - Context name
      config - Filename
    • unloadContext

      public void unloadContext(String name)
      Unloads a context (Red5 application) and removes it from the context map, then removes it's beans from the parent (that is, Red5)
      Specified by:
      unloadContext in interface ContextLoaderMXBean
      Parameters:
      name - Context name
    • shutdown

      public void shutdown()
      Shut server down.
      Specified by:
      shutdown in interface ContextLoaderMXBean
    • getContext

      public ApplicationContext getContext(String name)
      Return context by name
      Parameters:
      name - Context name
      Returns:
      Application context for given name
    • setParentContext

      public void setParentContext(String parentContextKey, String appContextId)
      Sets a parent context for child context based on a given key.
      Specified by:
      setParentContext in interface ContextLoaderMXBean
      Parameters:
      parentContextKey - key for the parent context
      appContextId - id of the child context
    • registerJMX

      protected void registerJMX()
    • unregisterJMX

      protected void unregisterJMX()
    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
      Specified by:
      setApplicationContext in interface ApplicationContextAware
      Parameters:
      applicationContext - Spring application context
      Throws:
      BeansException - Top level exception for app context (that is, in fact, beans factory)
    • setParentContext

      public void setParentContext(ApplicationContext parentContext)
      Setter for parent application context
      Parameters:
      parentContext - Parent Spring application context
    • getParentContext

      public ApplicationContext getParentContext()
      Return parent context
      Returns:
      parent application context
    • setContextsConfig

      public void setContextsConfig(String contextsConfig)
      Setter for context config name
      Specified by:
      setContextsConfig in interface ContextLoaderMXBean
      Parameters:
      contextsConfig - Context config name
    • getContextsConfig

      public String getContextsConfig()
      Specified by:
      getContextsConfig in interface ContextLoaderMXBean