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:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.exoplatform.container.ConcurrentContainer
org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of the system parameter to indicate the total amount of threads to use for the kernelFields inherited from class org.exoplatform.container.ConcurrentContainer
children, componentAdapters, componentKeyToAdapterCache, orderedComponentAdaptersFields inherited from class org.exoplatform.container.AbstractInterceptor
holder, parentFields inherited from class org.exoplatform.container.AbstractContainer
delegate -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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
Modifier and TypeMethodDescription<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> TGives 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 methodGives the current context<T> Constructor<T> getConstructor(Class<T> clazz, List<Dependency> dependencies) protected org.exoplatform.container.spi.ComponentAdapterFactorygetId()void<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) voidvoidvoidSet 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 adaptersMethods 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, registerComponentAdapter, registerComponentImplementation, registerComponentInstance, setHolder, stop, unregisterComponentMethods inherited from class org.exoplatform.container.AbstractInterceptor
setParent, setSuccessorMethods inherited from class org.exoplatform.container.AbstractContainer
getSuccessorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.exoplatform.container.spi.Container
getSuccessor
-
Field Details
-
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:
-
-
Constructor Details
-
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 Details
-
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
-
addComponentToCtx
public <T> org.exoplatform.container.ConcurrentContainer.CreationalContextComponentAdapter<T> addComponentToCtx(Object key) - Overrides:
addComponentToCtxin classorg.exoplatform.container.ConcurrentContainer
-
removeComponentFromCtx
- 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
- 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
-
loadDependencies
public void loadDependencies(Object originalComponentKey, ComponentTaskContext ctx, Collection<Dependency> dependencies, ComponentTaskType type) throws Exception - Throws:
Exception
-
getComponentTaskContext
Gives the current context -
setComponentTaskContext
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
- Specified by:
getIdin interfaceorg.exoplatform.container.spi.Interceptor- Overrides:
getIdin classorg.exoplatform.container.AbstractInterceptor
-
onStartupComplete
public void onStartupComplete()
-