You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Michael McKibben <mi...@hihat.net> on 2001/12/28 00:54:43 UTC

ExcaliburComponentManager and Parent CM

Why does ExcaliburComponentManager take the parent ComponentManager as a
constructor arg instead of implementing Composable? As it is currently
implemented, it doesn't seem possible to have parent-child built
automatically from a config xml, e.g.

<parent>
	...

	<child-components
role="ChildComponentManager" class="org.apache.avalon.excalibur.component.ExcaliburComponentManager">
	...
	</child-component>
</parent>

Also, I noticed that a ComponentManager is not a component even though
ExcaliburComponentManager implements the Avalon component lifecycle
interfaces. Is this by design? If so why?

Regards,

--mike



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: ExcaliburComponentManager and Parent CM

Posted by Berin Loritsch <bl...@apache.org>.
Michael McKibben wrote:

> Why does ExcaliburComponentManager take the parent ComponentManager as a
> constructor arg instead of implementing Composable? As it is currently
> implemented, it doesn't seem possible to have parent-child built
> automatically from a config xml, e.g.


This is to allow Hierarchical ComponentManager arrangements.  In large
systems like Phoenix, a Block is handed a ComponentManager to gain
access to external Components.  That Block can then initialize it's own
ComponentManager deferring requests for the external components to the
parent.


> 
> <parent>
> 	...
> 
> 	<child-components
> role="ChildComponentManager" class="org.apache.avalon.excalibur.component.ExcaliburComponentManager">
> 	...
> 	</child-component>
> </parent>
> 
> Also, I noticed that a ComponentManager is not a component even though
> ExcaliburComponentManager implements the Avalon component lifecycle
> interfaces. Is this by design? If so why?


We use the Avalon lifecycle interfaces for consistency.  A
ComponentManager is not a Component.  It manages references to
Components.  Rest assured, if the ECM (ExcaliburComponentManager) made
up it's own initialization interfaces you'd ask about that.

The thing about ECM is that it is also a Container, and the Container
needs references to the system information like Context, Logger, etc.


We are improving our design slowly.


----------------------------------------------------
Sign Up for NetZero Platinum Today
Only $9.95 per month!
http://my.netzero.net/s/signup?r=platinum&refcd=PT97

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>