com.atlassian.jira.component
Class CachingMutablePicoContainer

java.lang.Object
  extended by com.atlassian.jira.component.CachingMutablePicoContainer
All Implemented Interfaces:
org.picocontainer.Disposable, org.picocontainer.MutablePicoContainer, org.picocontainer.PicoContainer, org.picocontainer.Startable

public class CachingMutablePicoContainer
extends Object
implements org.picocontainer.MutablePicoContainer

Wrapper around MutablePicoContainer which provides simple component caching. This is to workaround performance problems in Pico 2 as reported at https://extranet.atlassian.com/pages/viewpage.action?pageId=2193130032&focusedCommentId=2193132213#comment-2193132213


Constructor Summary
CachingMutablePicoContainer(org.picocontainer.MutablePicoContainer delegatePicoContainer)
           
 
Method Summary
 void accept(org.picocontainer.PicoVisitor visitor)
           
 org.picocontainer.MutablePicoContainer addAdapter(org.picocontainer.ComponentAdapter<?> componentAdapter)
           
 org.picocontainer.MutablePicoContainer addChildContainer(org.picocontainer.PicoContainer child)
           
 org.picocontainer.MutablePicoContainer addComponent(Object implOrInstance)
           
 org.picocontainer.MutablePicoContainer addComponent(Object componentKey, Object componentImplementationOrInstance, org.picocontainer.Parameter... parameters)
           
 org.picocontainer.MutablePicoContainer addConfig(String name, Object val)
           
 org.picocontainer.MutablePicoContainer as(Properties... properties)
           
 org.picocontainer.MutablePicoContainer change(Properties... properties)
           
 void dispose()
           
<T> T
getComponent(Class<T> componentType)
           
<T> T
getComponent(Class<T> componentType, Class<? extends Annotation> binding)
           
 Object getComponent(Object componentKeyOrType)
           
 Object getComponent(Object componentKeyOrType, Type into)
           
<T> org.picocontainer.ComponentAdapter<T>
getComponentAdapter(Class<T> componentType, Class<? extends Annotation> binding)
           
<T> org.picocontainer.ComponentAdapter<T>
getComponentAdapter(Class<T> componentType, org.picocontainer.NameBinding componentNameBinding)
           
 org.picocontainer.ComponentAdapter<?> getComponentAdapter(Object componentKey)
           
 Collection<org.picocontainer.ComponentAdapter<?>> getComponentAdapters()
           
<T> List<org.picocontainer.ComponentAdapter<T>>
getComponentAdapters(Class<T> componentType)
           
<T> List<org.picocontainer.ComponentAdapter<T>>
getComponentAdapters(Class<T> componentType, Class<? extends Annotation> binding)
           
 List<Object> getComponents()
           
<T> List<T>
getComponents(Class<T> componentType)
           
 org.picocontainer.lifecycle.LifecycleState getLifecycleState()
           
 String getName()
           
 org.picocontainer.PicoContainer getParent()
           
 org.picocontainer.MutablePicoContainer makeChildContainer()
           
 boolean removeChildContainer(org.picocontainer.PicoContainer child)
           
<T> org.picocontainer.ComponentAdapter<T>
removeComponent(Object componentKey)
           
<T> org.picocontainer.ComponentAdapter<T>
removeComponentByInstance(T componentInstance)
           
 void setLifecycleState(org.picocontainer.lifecycle.LifecycleState lifecycleState)
           
 void setName(String name)
           
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CachingMutablePicoContainer

public CachingMutablePicoContainer(org.picocontainer.MutablePicoContainer delegatePicoContainer)
Method Detail

addComponent

public org.picocontainer.MutablePicoContainer addComponent(Object componentKey,
                                                           Object componentImplementationOrInstance,
                                                           org.picocontainer.Parameter... parameters)
Specified by:
addComponent in interface org.picocontainer.MutablePicoContainer

addComponent

public org.picocontainer.MutablePicoContainer addComponent(Object implOrInstance)
Specified by:
addComponent in interface org.picocontainer.MutablePicoContainer

addConfig

public org.picocontainer.MutablePicoContainer addConfig(String name,
                                                        Object val)
Specified by:
addConfig in interface org.picocontainer.MutablePicoContainer

addAdapter

public org.picocontainer.MutablePicoContainer addAdapter(org.picocontainer.ComponentAdapter<?> componentAdapter)
Specified by:
addAdapter in interface org.picocontainer.MutablePicoContainer

removeComponent

public <T> org.picocontainer.ComponentAdapter<T> removeComponent(Object componentKey)
Specified by:
removeComponent in interface org.picocontainer.MutablePicoContainer

removeComponentByInstance

public <T> org.picocontainer.ComponentAdapter<T> removeComponentByInstance(T componentInstance)
Specified by:
removeComponentByInstance in interface org.picocontainer.MutablePicoContainer

makeChildContainer

public org.picocontainer.MutablePicoContainer makeChildContainer()
Specified by:
makeChildContainer in interface org.picocontainer.MutablePicoContainer

addChildContainer

public org.picocontainer.MutablePicoContainer addChildContainer(org.picocontainer.PicoContainer child)
Specified by:
addChildContainer in interface org.picocontainer.MutablePicoContainer

removeChildContainer

public boolean removeChildContainer(org.picocontainer.PicoContainer child)
Specified by:
removeChildContainer in interface org.picocontainer.MutablePicoContainer

change

public org.picocontainer.MutablePicoContainer change(Properties... properties)
Specified by:
change in interface org.picocontainer.MutablePicoContainer

as

public org.picocontainer.MutablePicoContainer as(Properties... properties)
Specified by:
as in interface org.picocontainer.MutablePicoContainer

setName

public void setName(String name)
Specified by:
setName in interface org.picocontainer.MutablePicoContainer

setLifecycleState

public void setLifecycleState(org.picocontainer.lifecycle.LifecycleState lifecycleState)
Specified by:
setLifecycleState in interface org.picocontainer.MutablePicoContainer

getName

public String getName()
Specified by:
getName in interface org.picocontainer.MutablePicoContainer

getLifecycleState

public org.picocontainer.lifecycle.LifecycleState getLifecycleState()
Specified by:
getLifecycleState in interface org.picocontainer.MutablePicoContainer

getComponent

public Object getComponent(Object componentKeyOrType)
Specified by:
getComponent in interface org.picocontainer.PicoContainer

getComponent

public Object getComponent(Object componentKeyOrType,
                           Type into)
Specified by:
getComponent in interface org.picocontainer.PicoContainer

getComponent

public <T> T getComponent(Class<T> componentType)
Specified by:
getComponent in interface org.picocontainer.PicoContainer

getComponent

public <T> T getComponent(Class<T> componentType,
                          Class<? extends Annotation> binding)
Specified by:
getComponent in interface org.picocontainer.PicoContainer

getComponents

public List<Object> getComponents()
Specified by:
getComponents in interface org.picocontainer.PicoContainer

getParent

public org.picocontainer.PicoContainer getParent()
Specified by:
getParent in interface org.picocontainer.PicoContainer

getComponentAdapter

public org.picocontainer.ComponentAdapter<?> getComponentAdapter(Object componentKey)
Specified by:
getComponentAdapter in interface org.picocontainer.PicoContainer

getComponentAdapter

public <T> org.picocontainer.ComponentAdapter<T> getComponentAdapter(Class<T> componentType,
                                                                     org.picocontainer.NameBinding componentNameBinding)
Specified by:
getComponentAdapter in interface org.picocontainer.PicoContainer

getComponentAdapter

public <T> org.picocontainer.ComponentAdapter<T> getComponentAdapter(Class<T> componentType,
                                                                     Class<? extends Annotation> binding)
Specified by:
getComponentAdapter in interface org.picocontainer.PicoContainer

getComponentAdapters

public Collection<org.picocontainer.ComponentAdapter<?>> getComponentAdapters()
Specified by:
getComponentAdapters in interface org.picocontainer.PicoContainer

getComponentAdapters

public <T> List<org.picocontainer.ComponentAdapter<T>> getComponentAdapters(Class<T> componentType)
Specified by:
getComponentAdapters in interface org.picocontainer.PicoContainer

getComponentAdapters

public <T> List<org.picocontainer.ComponentAdapter<T>> getComponentAdapters(Class<T> componentType,
                                                                            Class<? extends Annotation> binding)
Specified by:
getComponentAdapters in interface org.picocontainer.PicoContainer

getComponents

public <T> List<T> getComponents(Class<T> componentType)
Specified by:
getComponents in interface org.picocontainer.PicoContainer

accept

public void accept(org.picocontainer.PicoVisitor visitor)
Specified by:
accept in interface org.picocontainer.PicoContainer

start

public void start()
Specified by:
start in interface org.picocontainer.Startable

stop

public void stop()
Specified by:
stop in interface org.picocontainer.Startable

dispose

public void dispose()
Specified by:
dispose in interface org.picocontainer.Disposable


Copyright © 2002-2014 Atlassian. All Rights Reserved.