org.alfresco.repo.management.subsystems
Class DefaultChildApplicationContextManager

java.lang.Object
  extended by org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean
      extended by org.alfresco.repo.management.subsystems.DefaultChildApplicationContextManager
All Implemented Interfaces:
java.util.EventListener, ChildApplicationContextManager, PropertyBackedBean, PropertyBackedBeanState, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener

public class DefaultChildApplicationContextManager
extends AbstractPropertyBackedBean
implements ChildApplicationContextManager

A default ChildApplicationContextManager implementation that manages a 'chain' of ChildApplicationContextFactory objects, perhaps corresponding to the components of a chained subsystem such as authentication. As with other PropertyBackedBeans, can be stopped, reconfigured, started and tested. Its one special chain property allows an ordered list of ChildApplicationContextFactory objects to be managed. This property is a comma separated list with the format:

See ChildApplicationContextManager for the meanings of <id> and <typeName>. In the enterprise edition, this property is editable at runtime via JMX. If a new <id> is included in the list then a new ChildApplicationContextFactory will be brought into existence. Similarly, if one is removed from the list, then the corresponding instance will be destroyed. For Alfresco community edition, the chain is best configured through the #setChain(String) method via Spring configuration.


Nested Class Summary
protected  class DefaultChildApplicationContextManager.ApplicationContextManagerState
          The Class ApplicationContextManagerState.
 
Nested classes/interfaces inherited from class org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean
AbstractPropertyBackedBean.DefaultResolver
 
Field Summary
 
Fields inherited from class org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean
DEFAULT_INSTANCE_NAME, lock
 
Constructor Summary
DefaultChildApplicationContextManager()
          Instantiates a new default child application context manager.
 
Method Summary
protected  PropertyBackedBeanState createInitialState()
          Creates the initial state.
 void destroy(boolean permanent)
          Releases any resources held by this component.
 org.springframework.context.ApplicationContext getApplicationContext(java.lang.String id)
          Gets the application context with the given identifier.
 java.lang.String getDescription(java.lang.String name)
          Gets a Human readable description of the property, e.g.
 java.util.Collection getInstanceIds()
          Gets the ordered collection of identifiers, indicating the ordering of the chain.
 void setDefaultChain(java.lang.String defaultChain)
          Configures the default chain of ChildApplicationContextFactory instances.
 void setDefaultTypeName(java.lang.String defaultTypeName)
          Sets the default type name.
 
Methods inherited from class org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean
afterPropertiesSet, applyDefaultOverrides, destroy, doInit, getCategory, getId, getInstancePath, getParent, getProperty, getPropertyDefaults, getPropertyNames, getRegistry, getState, init, isUpdateable, onApplicationEvent, resolveDefault, revert, setApplicationContext, setAutoStart, setBeanName, setCategory, setInstancePath, setProperties, setProperty, setPropertyDefaults, setRegistry, start, start, stop, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultChildApplicationContextManager

public DefaultChildApplicationContextManager()
Instantiates a new default child application context manager.

Method Detail

setDefaultTypeName

public void setDefaultTypeName(java.lang.String defaultTypeName)
Sets the default type name. This is used when a type name is not included after an instance ID in a chain string.

Parameters:
defaultTypeName - the new default type name

setDefaultChain

public void setDefaultChain(java.lang.String defaultChain)
Configures the default chain of ChildApplicationContextFactory instances. May be set on initialization by the Spring container.

Parameters:
defaultChain - a comma separated list in the following format:
  • <id1>:<typeName1>,<id2>:<typeName2>,...,<idn>:<typeNamen>

getDescription

public java.lang.String getDescription(java.lang.String name)
Description copied from class: AbstractPropertyBackedBean
Gets a Human readable description of the property, e.g. to provide via JMX.

Specified by:
getDescription in interface PropertyBackedBean
Overrides:
getDescription in class AbstractPropertyBackedBean
Parameters:
name - the name
Returns:
the description

destroy

public void destroy(boolean permanent)
Description copied from class: AbstractPropertyBackedBean
Releases any resources held by this component.

Overrides:
destroy in class AbstractPropertyBackedBean
Parameters:
permanent - is the component being destroyed forever, i.e. should persisted values be removed? On server shutdown, this value would be false, whereas on the removal of a dynamically created instance, this value would be true.

createInitialState

protected PropertyBackedBeanState createInitialState()
                                              throws java.io.IOException
Description copied from class: AbstractPropertyBackedBean
Creates the initial state.

Specified by:
createInitialState in class AbstractPropertyBackedBean
Returns:
the property backed bean state
Throws:
java.io.IOException - Signals that an I/O exception has occurred.

getInstanceIds

public java.util.Collection getInstanceIds()
Description copied from interface: ChildApplicationContextManager
Gets the ordered collection of identifiers, indicating the ordering of the chain.

Specified by:
getInstanceIds in interface ChildApplicationContextManager
Returns:
an ordered collection of identifiers, indicating the ordering of the chain.

getApplicationContext

public org.springframework.context.ApplicationContext getApplicationContext(java.lang.String id)
Description copied from interface: ChildApplicationContextManager
Gets the application context with the given identifier.

Specified by:
getApplicationContext in interface ChildApplicationContextManager
Parameters:
id - the identifier of the application context to retrieve
Returns:
the application context with the given identifier


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.