org.red5.server
Class ContextLoader

java.lang.Object
  extended by 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 ([email protected]), Tiago Jacobs ([email protected]), Paul Gregoire ([email protected])

Field Summary
protected  ApplicationContext applicationContext
          Spring Application context
protected  ConcurrentMap<String,ApplicationContext> contextMap
          Context map
protected  String contextsConfig
          Context location files
protected static Logger log
           
protected  ApplicationContext parentContext
          Spring parent app context
 
Constructor Summary
ContextLoader()
           
 
Method Summary
 void afterPropertiesSet()
          Registers with JMX and registers a shutdown hook.
 void destroy()
          Un-loads or un-initializes the contexts; this is a shutdown method for this loader.
 ApplicationContext getContext(String name)
          Return context by name
 String getContextsConfig()
           
 ApplicationContext getParentContext()
          Return parent context
 void init()
          Loads context settings from ResourceBundle (.properties file)
 boolean isUseShutdownHook()
          Whether or not the shutdown hook is enabled.
 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)
protected  void registerJMX()
           
 void setApplicationContext(ApplicationContext applicationContext)
           
 void setContextsConfig(String contextsConfig)
          Setter for context config name
 void setParentContext(ApplicationContext parentContext)
          Setter for parent application context
 void setParentContext(String parentContextKey, String appContextId)
          Sets a parent context for child context based on a given key.
 void setUseShutdownHook(boolean useShutdownHook)
          Enables or disables the shutdown hook.
 void shutdown()
          Shut server down.
 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)
protected  void unregisterJMX()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static Logger log

applicationContext

protected ApplicationContext applicationContext
Spring Application context


parentContext

protected ApplicationContext parentContext
Spring parent app context


contextsConfig

protected String contextsConfig
Context location files


contextMap

protected ConcurrentMap<String,ApplicationContext> contextMap
Context map

Constructor Detail

ContextLoader

public ContextLoader()
Method Detail

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
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
Specified by:
shutdown in interface ShutdownMXBean

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

isUseShutdownHook

public boolean isUseShutdownHook()
Whether or not the shutdown hook is enabled.

Returns:
true if enabled, false otherwise

setUseShutdownHook

public void setUseShutdownHook(boolean useShutdownHook)
Enables or disables the shutdown hook.

Parameters:
useShutdownHook - true to enable, false to disable


Copyright © 2006-2012 The Red5 Project