org.codehaus.plexus

Class DefaultPlexusContainer

public class DefaultPlexusContainer extends AbstractLogEnabled implements PlexusContainer

UNKNOWN: clarify configuration handling vis-a-vis user vs default values use classworlds whole hog, plexus' concern is applications. 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.

Field Summary
static StringBOOTSTRAP_CONFIGURATION
MapchildContainers
ClassWorldclassWorld
ComponentComposerManagercomponentComposerManager
ComponentDiscovererManagercomponentDiscovererManager
ComponentFactoryManagercomponentFactoryManager
ComponentManagerManagercomponentManagerManager
ComponentRepositorycomponentRepository
protected PlexusConfigurationconfiguration
ReaderconfigurationReader
DefaultContextcontext
ClassRealmcoreRealm
DatecreationDate
booleaninitialized
LifecycleHandlerManagerlifecycleHandlerManager
LoggerManagerloggerManager
Stringname
PlexusContainerparentContainer
ClassRealmplexusRealm
booleanstarted
Constructor Summary
DefaultPlexusContainer()
Method Summary
voidaddComponentDescriptor(ComponentDescriptor componentDescriptor)
voidaddContextValue(Object key, Object value)
voidaddJarRepository(File repository)
voidaddJarResource(File jar)
voidcomposeComponent(Object component, ComponentDescriptor componentDescriptor)
PlexusContainercreateChildContainer(String name, List classpathJars, Map context)
PlexusContainercreateChildContainer(String name, List classpathJars, Map context, List discoveryListeners)
ObjectcreateComponentInstance(ComponentDescriptor componentDescriptor)
ComponentManagercreateComponentManager(ComponentDescriptor descriptor)
ListdiscoverComponents(ClassRealm classRealm)
TODO: Enhance the ComponentRepository so that it can take entire ComponentSetDescriptors instead of just ComponentDescriptors.
voiddispose()
protected voiddisposeAllComponents()
PlexusContainergetChildContainer(String name)
ClassWorldgetClassWorld()
ComponentDescriptorgetComponentDescriptor(String componentKey)
ListgetComponentDescriptorList(String role)
MapgetComponentDescriptorMap(String role)
ClassRealmgetComponentRealm(String id)
ClassRealmgetContainerRealm()
ContextgetContext()
ClassRealmgetCoreRealm()
DategetCreationDate()
protected ReadergetInterpolationConfigurationReader(Reader reader)
LoggergetLogger()
LoggerManagergetLoggerManager()
StringgetName()
booleanhasChildContainer(String name)
booleanhasComponent(String componentKey)
booleanhasComponent(String role, String roleHint)
voidinitialize()
voidinitializeClassWorlds()
protected voidinitializeConfiguration()
voidinitializeContext()
voidinitializeCoreComponents()
voidinitializeLoggerManager()
protected voidinitializeName()
Create a name for our application if one doesn't exist.
voidinitializeResources()
voidinitializeSystemProperties()
booleanisInitialized()
booleanisStarted()
protected voidloadComponentsOnStart()
Objectlookup(String componentKey)
Objectlookup(String role, String roleHint)
ListlookupList(String role)
MaplookupMap(String role)
voidprocessConfigurationsDirectory()
Process any additional component configuration files that have been specified.
voidprocessCoreComponentConfiguration(String role, BasicComponentConfigurator configurator, PlexusConfiguration c)
voidregisterComponentDiscoveryListener(ComponentDiscoveryListener listener)
voidregisterComponentDiscoveryListeners()
voidrelease(Object component)
voidreleaseAll(Map components)
voidreleaseAll(List components)
voidremoveChildContainer(String name)
voidremoveComponentDiscoveryListener(ComponentDiscoveryListener listener)
voidresume(Object component)
voidsetClassWorld(ClassWorld classWorld)
voidsetConfigurationResource(Reader configuration)
voidsetCoreRealm(ClassRealm coreRealm)
voidsetLoggerManager(LoggerManager loggerManager)
voidsetName(String name)
voidsetParentPlexusContainer(PlexusContainer parentContainer)
voidstart()
voidsuspend(Object component)

Field Detail

BOOTSTRAP_CONFIGURATION

public static final String BOOTSTRAP_CONFIGURATION

childContainers

private Map childContainers

classWorld

private ClassWorld classWorld

componentComposerManager

private ComponentComposerManager componentComposerManager

componentDiscovererManager

private ComponentDiscovererManager componentDiscovererManager

componentFactoryManager

private ComponentFactoryManager componentFactoryManager

componentManagerManager

private ComponentManagerManager componentManagerManager

componentRepository

private ComponentRepository componentRepository

configuration

protected PlexusConfiguration configuration

configurationReader

private Reader configurationReader

context

private DefaultContext context

coreRealm

private ClassRealm coreRealm

creationDate

private final Date creationDate

initialized

private boolean initialized

lifecycleHandlerManager

private LifecycleHandlerManager lifecycleHandlerManager

loggerManager

private LoggerManager loggerManager

name

private String name

parentContainer

private PlexusContainer parentContainer

plexusRealm

private ClassRealm plexusRealm

started

private boolean started

Constructor Detail

DefaultPlexusContainer

public DefaultPlexusContainer()

Method Detail

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)

composeComponent

public void composeComponent(Object component, ComponentDescriptor componentDescriptor)

createChildContainer

public PlexusContainer createChildContainer(String name, List classpathJars, Map context)

createChildContainer

public PlexusContainer createChildContainer(String name, List classpathJars, Map context, List discoveryListeners)

createComponentInstance

public Object createComponentInstance(ComponentDescriptor componentDescriptor)

createComponentManager

private ComponentManager createComponentManager(ComponentDescriptor descriptor)

discoverComponents

public List discoverComponents(ClassRealm classRealm)
TODO: Enhance the ComponentRepository so that it can take entire ComponentSetDescriptors instead of just ComponentDescriptors.

dispose

public void dispose()

disposeAllComponents

protected void disposeAllComponents()

getChildContainer

public PlexusContainer getChildContainer(String name)

getClassWorld

public ClassWorld getClassWorld()

getComponentDescriptor

public ComponentDescriptor getComponentDescriptor(String componentKey)

getComponentDescriptorList

public List getComponentDescriptorList(String role)

getComponentDescriptorMap

public Map getComponentDescriptorMap(String role)

getComponentRealm

public ClassRealm getComponentRealm(String id)

Deprecated: Use getContainerRealm() instead.

getContainerRealm

public ClassRealm getContainerRealm()

getContext

public Context getContext()

getCoreRealm

public ClassRealm getCoreRealm()

getCreationDate

public Date getCreationDate()

getInterpolationConfigurationReader

protected Reader getInterpolationConfigurationReader(Reader reader)

getLogger

public Logger getLogger()

getLoggerManager

public LoggerManager getLoggerManager()

getName

public String getName()

hasChildContainer

public boolean hasChildContainer(String name)

hasComponent

public boolean hasComponent(String componentKey)

hasComponent

public boolean hasComponent(String role, String roleHint)

initialize

public void initialize()

initializeClassWorlds

private void initializeClassWorlds()

initializeConfiguration

protected void initializeConfiguration()

initializeContext

private void initializeContext()

initializeCoreComponents

private void initializeCoreComponents()

initializeLoggerManager

private void initializeLoggerManager()

initializeName

protected void initializeName()
Create a name for our application if one doesn't exist.

initializeResources

public void initializeResources()

initializeSystemProperties

private void initializeSystemProperties()

isInitialized

public boolean isInitialized()

isStarted

public boolean isStarted()

loadComponentsOnStart

protected void loadComponentsOnStart()

lookup

public Object lookup(String componentKey)

lookup

public Object lookup(String role, String roleHint)

lookupList

public List lookupList(String role)

UNKNOWN: Change this to include components looked up from parents as well...

lookupMap

public Map lookupMap(String role)

UNKNOWN: Change this to include components looked up from parents as well...

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.

processCoreComponentConfiguration

private void processCoreComponentConfiguration(String role, BasicComponentConfigurator configurator, PlexusConfiguration c)

registerComponentDiscoveryListener

public void registerComponentDiscoveryListener(ComponentDiscoveryListener listener)

registerComponentDiscoveryListeners

public void registerComponentDiscoveryListeners()

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)

resume

public void resume(Object component)

setClassWorld

public void setClassWorld(ClassWorld classWorld)

setConfigurationResource

public void setConfigurationResource(Reader configuration)

See Also: setConfigurationResource

UNKNOWN: don't hold this reference - the reader will remain open forever

setCoreRealm

public void setCoreRealm(ClassRealm coreRealm)

setLoggerManager

public void setLoggerManager(LoggerManager loggerManager)

setName

public void setName(String name)

setParentPlexusContainer

public void setParentPlexusContainer(PlexusContainer parentContainer)

start

public void start()

suspend

public void suspend(Object component)