Package org.exoplatform.container
Class ConcurrentContainerMT
- java.lang.Object
-
- org.exoplatform.container.AbstractContainer
-
- org.exoplatform.container.AbstractInterceptor
-
- org.exoplatform.container.ConcurrentContainer
-
- org.exoplatform.container.ConcurrentContainerMT
-
- All Implemented Interfaces:
Serializable,org.exoplatform.container.spi.Container,org.exoplatform.container.spi.Interceptor,org.picocontainer.Disposable,org.picocontainer.Startable
public class ConcurrentContainerMT extends org.exoplatform.container.ConcurrentContainer- Version:
- $Id$
- Author:
- Nicolas Filotto
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.exoplatform.container.ConcurrentContainer
org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<T extends Object>
-
-
Field Summary
Fields Modifier and Type Field Description static StringTHREAD_POOL_SIZE_PARAM_NAMEThe name of the system parameter to indicate the total amount of threads to use for the kernel
-
Constructor Summary
Constructors Constructor Description ConcurrentContainerMT()Creates a new container with the defaultComponentAdapterFactoryand a parent container.ConcurrentContainerMT(org.exoplatform.container.ExoContainer holder, org.exoplatform.container.ExoContainer parent)Creates a new container with the defaultComponentAdapterFactoryand a parent container.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<T>addComponentToCtx(Object key)<T> TcreateComponent(Class<T> clazz)<T> TcreateComponent(Class<T> clazz, org.exoplatform.container.xml.InitParams params)<T> ComponentTask<T>createComponentTask(Constructor<T> constructor, org.exoplatform.container.xml.InitParams params, List<Dependency> dependencies, DependencyStackListener caller)protected <T> Texecute(ComponentTask<T> task, org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<?> cCtx)<T> Object[]getArguments(Constructor<T> constructor, org.exoplatform.container.xml.InitParams params, List<Dependency> dependencies)<T> TgetComponentFromSharedMemory(Object key)Gives a value from the shared memoryprotected <T> TgetComponentInstanceFromContext(org.exoplatform.container.spi.ComponentAdapter<T> componentAdapter, Class<T> bindType)<T> List<T>getComponentInstancesOfType(Class<T> componentType)A multi-threaded implementation of the start methodComponentTaskContextgetComponentTaskContext()Gives the current context<T> Constructor<T>getConstructor(Class<T> clazz, List<Dependency> dependencies)protected org.exoplatform.container.spi.ComponentAdapterFactorygetDefaultComponentAdapterFactory()StringgetId()voidinitialize()<T> booleaninitializeComponent(Class<T> targetClass, List<Dependency> dependencies, List<ComponentTask<Void>> componentInitTasks, DependencyStackListener caller)Initializes the instance by injecting objects into fields and the methods with the annotationInjectvoidloadArguments(Object[] args)voidloadDependencies(Object originalComponentKey, ComponentTaskContext ctx, Collection<Dependency> dependencies, ComponentTaskType type)voidonStartupComplete()voidremoveComponentFromCtx(Object key)voidsetComponentTaskContext(ComponentTaskContext ctx)Set the current contextvoidstart()A multi-threaded implementation of the start methodprotected voidstart(Collection<org.exoplatform.container.spi.ComponentAdapter<?>> adapters, Map<org.exoplatform.container.spi.ComponentAdapter<?>,Object> alreadyStarted, Set<org.exoplatform.container.spi.ComponentAdapter<?>> startInProgress, AtomicReference<Exception> error, boolean skippable)Starts all the provided adapters-
Methods inherited from class org.exoplatform.container.ConcurrentContainer
accept, addMethods, addOrderedComponentAdapter, dispose, getCache, getComponentAdapter, getComponentAdapterOfType, getComponentAdapters, getComponentAdaptersOfType, getComponentInstance, getComponentInstanceOfType, getComponentInstances, getHolder, getInstance, getManagementContext, getMBeanServer, getScopingObjectName, initializeComponent, registerComponent, registerComponentImplementation, registerComponentInstance, setHolder, stop, unregisterComponent
-
-
-
-
Field Detail
-
THREAD_POOL_SIZE_PARAM_NAME
public static final String THREAD_POOL_SIZE_PARAM_NAME
The name of the system parameter to indicate the total amount of threads to use for the kernel- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ConcurrentContainerMT
public ConcurrentContainerMT()
Creates a new container with the defaultComponentAdapterFactoryand a parent container.
-
ConcurrentContainerMT
public ConcurrentContainerMT(org.exoplatform.container.ExoContainer holder, org.exoplatform.container.ExoContainer parent)Creates a new container with the defaultComponentAdapterFactoryand a parent container.- Parameters:
holder- the holder of the containerparent- the parent container (used for component dependency lookups).
-
-
Method Detail
-
initialize
public void initialize()
- Specified by:
initializein interfaceorg.exoplatform.container.spi.Container- Overrides:
initializein classorg.exoplatform.container.ConcurrentContainer
-
getDefaultComponentAdapterFactory
protected org.exoplatform.container.spi.ComponentAdapterFactory getDefaultComponentAdapterFactory()
- Overrides:
getDefaultComponentAdapterFactoryin classorg.exoplatform.container.ConcurrentContainer
-
getComponentInstanceFromContext
protected <T> T getComponentInstanceFromContext(org.exoplatform.container.spi.ComponentAdapter<T> componentAdapter, Class<T> bindType)- Overrides:
getComponentInstanceFromContextin classorg.exoplatform.container.ConcurrentContainer
-
getComponentFromSharedMemory
public <T> T getComponentFromSharedMemory(Object key)
Gives a value from the shared memory
-
addComponentToCtx
public <T> org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<T> addComponentToCtx(Object key)
- Overrides:
addComponentToCtxin classorg.exoplatform.container.ConcurrentContainer
-
removeComponentFromCtx
public void removeComponentFromCtx(Object key)
- Overrides:
removeComponentFromCtxin classorg.exoplatform.container.ConcurrentContainer
-
getComponentInstancesOfType
public <T> List<T> getComponentInstancesOfType(Class<T> componentType) throws org.exoplatform.container.spi.ContainerException
A multi-threaded implementation of the start method- Specified by:
getComponentInstancesOfTypein interfaceorg.exoplatform.container.spi.Container- Overrides:
getComponentInstancesOfTypein classorg.exoplatform.container.ConcurrentContainer- Throws:
org.exoplatform.container.spi.ContainerException
-
start
public void start()
A multi-threaded implementation of the start method- Specified by:
startin interfaceorg.picocontainer.Startable- Overrides:
startin classorg.exoplatform.container.ConcurrentContainer
-
start
protected void start(Collection<org.exoplatform.container.spi.ComponentAdapter<?>> adapters, Map<org.exoplatform.container.spi.ComponentAdapter<?>,Object> alreadyStarted, Set<org.exoplatform.container.spi.ComponentAdapter<?>> startInProgress, AtomicReference<Exception> error, boolean skippable)
Starts all the provided adapters
-
getConstructor
public <T> Constructor<T> getConstructor(Class<T> clazz, List<Dependency> dependencies) throws Exception
- Throws:
Exception
-
initializeComponent
public <T> boolean initializeComponent(Class<T> targetClass, List<Dependency> dependencies, List<ComponentTask<Void>> componentInitTasks, DependencyStackListener caller)
Initializes the instance by injecting objects into fields and the methods with the annotationInject- Returns:
trueif at least Inject annotation has been found,falseotherwise
-
createComponent
public <T> T createComponent(Class<T> clazz) throws Exception
- Overrides:
createComponentin classorg.exoplatform.container.ConcurrentContainer- Throws:
Exception
-
createComponent
public <T> T createComponent(Class<T> clazz, org.exoplatform.container.xml.InitParams params) throws Exception
- Specified by:
createComponentin interfaceorg.exoplatform.container.spi.Container- Overrides:
createComponentin classorg.exoplatform.container.ConcurrentContainer- Throws:
Exception
-
createComponentTask
public <T> ComponentTask<T> createComponentTask(Constructor<T> constructor, org.exoplatform.container.xml.InitParams params, List<Dependency> dependencies, DependencyStackListener caller) throws Exception
- Throws:
Exception
-
loadArguments
public void loadArguments(Object[] args)
-
loadDependencies
public void loadDependencies(Object originalComponentKey, ComponentTaskContext ctx, Collection<Dependency> dependencies, ComponentTaskType type) throws Exception
- Throws:
Exception
-
getComponentTaskContext
public ComponentTaskContext getComponentTaskContext()
Gives the current context
-
setComponentTaskContext
public void setComponentTaskContext(ComponentTaskContext ctx)
Set the current context
-
execute
protected <T> T execute(ComponentTask<T> task, org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<?> cCtx) throws Exception
- Throws:
Exception
-
getArguments
public <T> Object[] getArguments(Constructor<T> constructor, org.exoplatform.container.xml.InitParams params, List<Dependency> dependencies)
-
getId
public String getId()
- Specified by:
getIdin interfaceorg.exoplatform.container.spi.Interceptor- Overrides:
getIdin classorg.exoplatform.container.AbstractInterceptor
-
onStartupComplete
public void onStartupComplete()
-
-