Class CachingMutablePicoContainer

java.lang.Object
com.atlassian.jira.component.pico.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 Details

    • CachingMutablePicoContainer

      public CachingMutablePicoContainer(org.picocontainer.MutablePicoContainer delegatePicoContainer)
  • Method Details

    • 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