org.codehaus.plexus

Class DefaultPlexusContainer

public class DefaultPlexusContainer extends AbstractLogEnabled implements MutablePlexusContainer

  //TODO move lookup code to a separate component
  //TODO  register live components so they can be wired
  //keep track of the interfaces for components
  //todo allow setting of a live configuraton so applications that embed plexus can use
  whatever configuration mechanism they like. They just have to adapt it into something plexus can understand.
  //todo
  make a typesafe configuration model for the container
  //todo pico like registration
  //todo need loggers per execution in the maven embedder
  //todo a simple front-end to make containers of different flavours, a flavour encapsulating
  // a set of behaviours
  //todo the core components should probably have a small lifecycle to pass through
 

Author: Jason van Zyl Kenney Westerhof

Field Summary
protected MapchildContainers
Map<String, PlexusContainer> where the key is the container name.
protected ClassWorldclassWorld
protected ComponentComposerManagercomponentComposerManager
protected ComponentDiscovererManagercomponentDiscovererManager
protected ComponentFactoryManagercomponentFactoryManager
protected ComponentLookupManagercomponentLookupManager
protected ComponentManagerManagercomponentManagerManager
protected ComponentRepositorycomponentRepository
protected PlexusConfigurationconfiguration
protected ReaderconfigurationReader
protected DefaultContextcontainerContext
protected ClassRealmcontainerRealm
protected DatecreationDate
protected static StringDEFAULT_CONTAINER_NAME
protected static StringDEFAULT_REALM_NAME
protected ListinitializationPhases
booleaninitialized
protected LifecycleHandlerManagerlifecycleHandlerManager
protected LoggerManagerloggerManager
ThreadLocallookupRealm
protected Stringname
protected PlexusContainerparentContainer
protected booleanreloadingEnabled
ClassRealmstaticLookupRealm
Used for getLookupRealm for threads when the threadlocal doesn't contain a value.
Constructor Summary
DefaultPlexusContainer()
DefaultPlexusContainer(ContainerConfiguration c)
Method Summary
voidaddComponent(Object component, String role)
voidaddComponentDescriptor(ComponentDescriptor componentDescriptor)
voidaddContextValue(Object key, Object value)
voidaddJarRepository(File repository)
voidaddJarResource(File jar)
voidconstruct(ContainerConfiguration c)
PlexusContainercreateChildContainer(String name, Set urls)
PlexusContainercreateChildContainer(String name, ClassRealm realm)
ClassRealmcreateComponentRealm(String id, List jars)
ListdiscoverComponents(ClassRealm classRealm)
ListdiscoverComponents(ClassRealm classRealm, boolean override)
voiddispose()
protected voiddisposeAllComponents()
PlexusContainergetChildContainer(String name)
ClassWorldgetClassWorld()
ComponentComposerManagergetComponentComposerManager()
ComponentDescriptorgetComponentDescriptor(String role)
ComponentDescriptorgetComponentDescriptor(String role, ClassRealm realm)
ComponentDescriptorgetComponentDescriptor(String role, String hint)
ComponentDescriptorgetComponentDescriptor(String role, String hint, ClassRealm classRealm)
ListgetComponentDescriptorList(String role)
ListgetComponentDescriptorList(String role, ClassRealm realm)
MapgetComponentDescriptorMap(String role)
MapgetComponentDescriptorMap(String role, ClassRealm realm)
ComponentDiscovererManagergetComponentDiscovererManager()
ComponentFactoryManagergetComponentFactoryManager()
ComponentLookupManagergetComponentLookupManager()
ComponentManagerManagergetComponentManagerManager()
ClassRealmgetComponentRealm(String realmId)
ComponentRepositorygetComponentRepository()
PlexusConfigurationgetConfiguration()
ClassRealmgetContainerRealm()
ContextgetContext()
DategetCreationDate()
protected ReadergetInterpolationConfigurationReader(Reader reader)
LifecycleHandlerManagergetLifecycleHandlerManager()
LoggergetLogger()
LoggerManagergetLoggerManager()
ClassRealmgetLookupRealm()
ClassRealmgetLookupRealm(Object component)
Utility method to get a default lookup realm for a component.
StringgetName()
PlexusContainergetParentContainer()
booleanhasChildContainer(String name)
booleanhasComponent(String componentKey)
booleanhasComponent(String componentKey, ClassRealm realm)
booleanhasComponent(String role, String roleHint)
booleanhasComponent(String role, String roleHint, ClassRealm realm)
protected voidinitialize(ContainerConfiguration containerConfiguration)
protected voidinitializeConfiguration(ContainerConfiguration c)
protected voidinitializePhases(ContainerConfiguration containerConfiguration)
booleanisReloadingEnabled()
Objectlookup(String componentKey)
Objectlookup(String componentKey, ClassRealm realm)
Objectlookup(String role, String roleHint)
Objectlookup(String role, String roleHint, ClassRealm realm)
Objectlookup(Class componentClass)
Objectlookup(Class componentClass, ClassRealm realm)
Objectlookup(Class role, String roleHint)
Objectlookup(Class role, String roleHint, ClassRealm realm)
ListlookupList(String role)
ListlookupList(String role, ClassRealm realm)
ListlookupList(String role, List hints)
ListlookupList(String role, List hints, ClassRealm realm)
ListlookupList(Class role)
ListlookupList(Class role, ClassRealm realm)
ListlookupList(Class role, List hints)
ListlookupList(Class role, List hints, ClassRealm realm)
MaplookupMap(String role)
MaplookupMap(String role, ClassRealm realm)
MaplookupMap(String role, List hints)
MaplookupMap(String role, List hints, ClassRealm realm)
MaplookupMap(Class role)
MaplookupMap(Class role, ClassRealm realm)
MaplookupMap(Class role, List hints)
MaplookupMap(Class role, List hints, ClassRealm realm)
voidprocessConfigurationsDirectory()
Process any additional component configuration files that have been specified.
voidregisterComponentDiscoveryListener(ComponentDiscoveryListener listener)
voidrelease(Object component)
voidreleaseAll(Map components)
voidreleaseAll(List components)
voidremoveChildContainer(String name)
voidremoveComponentDiscoveryListener(ComponentDiscoveryListener listener)
voidsetClassWorld(ClassWorld classWorld)
voidsetComponentComposerManager(ComponentComposerManager componentComposerManager)
voidsetComponentDiscovererManager(ComponentDiscovererManager componentDiscovererManager)
voidsetComponentFactoryManager(ComponentFactoryManager componentFactoryManager)
voidsetComponentLookupManager(ComponentLookupManager componentLookupManager)
voidsetComponentManagerManager(ComponentManagerManager componentManagerManager)
voidsetComponentRepository(ComponentRepository componentRepository)
voidsetConfiguration(PlexusConfiguration configuration)
voidsetContainerRealm(ClassRealm containerRealm)
voidsetLifecycleHandlerManager(LifecycleHandlerManager lifecycleHandlerManager)
voidsetLoggerManager(LoggerManager loggerManager)
ClassRealmsetLookupRealm(ClassRealm realm)
voidsetName(String name)
voidsetParentPlexusContainer(PlexusContainer container)
voidsetReloadingEnabled(boolean reloadingEnabled)
protected voidstart()
InputStreamtoStream(String resource)

Field Detail

childContainers

protected Map childContainers
Map<String, PlexusContainer> where the key is the container name.

classWorld

protected ClassWorld classWorld

componentComposerManager

protected ComponentComposerManager componentComposerManager

componentDiscovererManager

protected ComponentDiscovererManager componentDiscovererManager

componentFactoryManager

protected ComponentFactoryManager componentFactoryManager

componentLookupManager

protected ComponentLookupManager componentLookupManager

componentManagerManager

protected ComponentManagerManager componentManagerManager

componentRepository

protected ComponentRepository componentRepository

configuration

protected PlexusConfiguration configuration

configurationReader

protected Reader configurationReader

containerContext

protected DefaultContext containerContext

containerRealm

protected ClassRealm containerRealm

creationDate

protected Date creationDate

DEFAULT_CONTAINER_NAME

protected static final String DEFAULT_CONTAINER_NAME

DEFAULT_REALM_NAME

protected static final String DEFAULT_REALM_NAME

initializationPhases

protected List initializationPhases

initialized

boolean initialized

lifecycleHandlerManager

protected LifecycleHandlerManager lifecycleHandlerManager

loggerManager

protected LoggerManager loggerManager

lookupRealm

private ThreadLocal lookupRealm

name

protected String name

parentContainer

protected PlexusContainer parentContainer

reloadingEnabled

protected boolean reloadingEnabled

staticLookupRealm

private ClassRealm staticLookupRealm
Used for getLookupRealm for threads when the threadlocal doesn't contain a value.

Constructor Detail

DefaultPlexusContainer

public DefaultPlexusContainer()

DefaultPlexusContainer

public DefaultPlexusContainer(ContainerConfiguration c)

Method Detail

addComponent

public void addComponent(Object component, String role)

addComponentDescriptor

public void addComponentDescriptor(ComponentDescriptor componentDescriptor)

addContextValue

public void addContextValue(Object key, Object value)

addJarRepository

public void addJarRepository(File repository)

addJarResource

public void addJarResource(File jar)

construct

private void construct(ContainerConfiguration c)

createChildContainer

public PlexusContainer createChildContainer(String name, Set urls)

createChildContainer

public PlexusContainer createChildContainer(String name, ClassRealm realm)

createComponentRealm

public ClassRealm createComponentRealm(String id, List jars)

discoverComponents

public List discoverComponents(ClassRealm classRealm)

discoverComponents

public List discoverComponents(ClassRealm classRealm, boolean override)

See Also: MutablePlexusContainer

dispose

public void dispose()

disposeAllComponents

protected void disposeAllComponents()

getChildContainer

public PlexusContainer getChildContainer(String name)

getClassWorld

public ClassWorld getClassWorld()

getComponentComposerManager

public ComponentComposerManager getComponentComposerManager()

getComponentDescriptor

public ComponentDescriptor getComponentDescriptor(String role)

getComponentDescriptor

public ComponentDescriptor getComponentDescriptor(String role, ClassRealm realm)

getComponentDescriptor

public ComponentDescriptor getComponentDescriptor(String role, String hint)

getComponentDescriptor

public ComponentDescriptor getComponentDescriptor(String role, String hint, ClassRealm classRealm)

getComponentDescriptorList

public List getComponentDescriptorList(String role)

getComponentDescriptorList

public List getComponentDescriptorList(String role, ClassRealm realm)

getComponentDescriptorMap

public Map getComponentDescriptorMap(String role)

getComponentDescriptorMap

public Map getComponentDescriptorMap(String role, ClassRealm realm)

getComponentDiscovererManager

public ComponentDiscovererManager getComponentDiscovererManager()

getComponentFactoryManager

public ComponentFactoryManager getComponentFactoryManager()

getComponentLookupManager

public ComponentLookupManager getComponentLookupManager()

getComponentManagerManager

public ComponentManagerManager getComponentManagerManager()

getComponentRealm

public ClassRealm getComponentRealm(String realmId)

getComponentRepository

public ComponentRepository getComponentRepository()

getConfiguration

public PlexusConfiguration getConfiguration()

getContainerRealm

public ClassRealm getContainerRealm()

getContext

public Context getContext()

getCreationDate

public Date getCreationDate()

getInterpolationConfigurationReader

protected Reader getInterpolationConfigurationReader(Reader reader)

getLifecycleHandlerManager

public LifecycleHandlerManager getLifecycleHandlerManager()

getLogger

public Logger getLogger()

getLoggerManager

public LoggerManager getLoggerManager()

getLookupRealm

public ClassRealm getLookupRealm()

getLookupRealm

public ClassRealm getLookupRealm(Object component)
Utility method to get a default lookup realm for a component.

getName

public String getName()

getParentContainer

public PlexusContainer getParentContainer()

hasChildContainer

public boolean hasChildContainer(String name)

hasComponent

public boolean hasComponent(String componentKey)

hasComponent

public boolean hasComponent(String componentKey, ClassRealm realm)

hasComponent

public boolean hasComponent(String role, String roleHint)

hasComponent

public boolean hasComponent(String role, String roleHint, ClassRealm realm)

initialize

protected void initialize(ContainerConfiguration containerConfiguration)

initializeConfiguration

protected void initializeConfiguration(ContainerConfiguration c)

initializePhases

protected void initializePhases(ContainerConfiguration containerConfiguration)

isReloadingEnabled

public boolean isReloadingEnabled()

lookup

public Object lookup(String componentKey)

lookup

public Object lookup(String componentKey, ClassRealm realm)

lookup

public Object lookup(String role, String roleHint)

lookup

public Object lookup(String role, String roleHint, ClassRealm realm)

lookup

public Object lookup(Class componentClass)

lookup

public Object lookup(Class componentClass, ClassRealm realm)

lookup

public Object lookup(Class role, String roleHint)

lookup

public Object lookup(Class role, String roleHint, ClassRealm realm)

lookupList

public List lookupList(String role)

lookupList

public List lookupList(String role, ClassRealm realm)

lookupList

public List lookupList(String role, List hints)

lookupList

public List lookupList(String role, List hints, ClassRealm realm)

lookupList

public List lookupList(Class role)

lookupList

public List lookupList(Class role, ClassRealm realm)

lookupList

public List lookupList(Class role, List hints)

lookupList

public List lookupList(Class role, List hints, ClassRealm realm)

lookupMap

public Map lookupMap(String role)

lookupMap

public Map lookupMap(String role, ClassRealm realm)

lookupMap

public Map lookupMap(String role, List hints)

lookupMap

public Map lookupMap(String role, List hints, ClassRealm realm)

lookupMap

public Map lookupMap(Class role)

lookupMap

public Map lookupMap(Class role, ClassRealm realm)

lookupMap

public Map lookupMap(Class role, List hints)

lookupMap

public Map lookupMap(Class role, List hints, ClassRealm realm)

processConfigurationsDirectory

private void processConfigurationsDirectory()
Process any additional component configuration files that have been specified. The specified directory is scanned recursively so configurations can be within nested directories to help with component organization.

registerComponentDiscoveryListener

public void registerComponentDiscoveryListener(ComponentDiscoveryListener listener)

release

public void release(Object component)

releaseAll

public void releaseAll(Map components)

releaseAll

public void releaseAll(List components)

removeChildContainer

public void removeChildContainer(String name)

removeComponentDiscoveryListener

public void removeComponentDiscoveryListener(ComponentDiscoveryListener listener)

setClassWorld

public void setClassWorld(ClassWorld classWorld)

setComponentComposerManager

public void setComponentComposerManager(ComponentComposerManager componentComposerManager)

setComponentDiscovererManager

public void setComponentDiscovererManager(ComponentDiscovererManager componentDiscovererManager)

setComponentFactoryManager

public void setComponentFactoryManager(ComponentFactoryManager componentFactoryManager)

setComponentLookupManager

public void setComponentLookupManager(ComponentLookupManager componentLookupManager)

setComponentManagerManager

public void setComponentManagerManager(ComponentManagerManager componentManagerManager)

setComponentRepository

public void setComponentRepository(ComponentRepository componentRepository)

setConfiguration

public void setConfiguration(PlexusConfiguration configuration)

setContainerRealm

public void setContainerRealm(ClassRealm containerRealm)

setLifecycleHandlerManager

public void setLifecycleHandlerManager(LifecycleHandlerManager lifecycleHandlerManager)

setLoggerManager

public void setLoggerManager(LoggerManager loggerManager)

setLookupRealm

public ClassRealm setLookupRealm(ClassRealm realm)

setName

public void setName(String name)

setParentPlexusContainer

public void setParentPlexusContainer(PlexusContainer container)

setReloadingEnabled

public void setReloadingEnabled(boolean reloadingEnabled)

start

protected void start()

toStream

private InputStream toStream(String resource)