avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcus Crafter <craft...@fztig938.bank.dresdner.net>
Subject Re: Draft implementation: Custom Marker Proposal
Date Tue, 18 Jun 2002 13:52:57 GMT
Hi Leo,

On Thu, Jun 13, 2002 at 06:23:22PM +0200, Leo Simons wrote:
> nope. I'd say you should have a singleton-like handler/factory/whatever
> you call it, that you put into your CM, which acts as a full-fledged
> container, to which you can add all the extensions you like. That way,
> you *can* figure out in what stage your component is.
> But I believe fortress also has provisions for container hierarchies;
> don't know how that works though.

	Ok, I've looked through handlers/containers a little bit more.
	From what I can see, writing a custom handler isn't the way to go,
	this is because the functionality one wants to add (ie. new
	lifecycle stages) is common amongst all handlers (ThreadSafe,
	Factory, Poolable, etc) and would require subclasses of each handler,
	or modification of the AbstractHandler class (in fortresses case
	which is what I already did).
	Writing a custom container actually looks pretty easy and
	straightforward to do, even generating one from a tool wouldn't be
	too hard.
	I think it's even possible to handle instantiation level and access
	level lifecycle extensions stages in the Container.
	The only issue at the container level seems to be mixing hierarchies.
	In our project we maintain a Cocoon application, Cocoon has its
	own extensions - RequestLifecycleComponent, and we have our own.
	Mixing the 2 seems to be problematic, as I presume in the future
	Cocoon will have a CocoonContainer, subclassed from AbstractContainer.
	We would need to subclass CocoonContainer to be eg. BankContainer.
	But what if for example Instrumentable wasn't in the
	AbstractContainer. We need to copy instrumentable code into a new
	subclass, or one of the existing extension containers :(
	Not sure how to handle this one.
     ,,$$$$$$$$$,      Marcus Crafter
    ;$'      '$$$$:    Computer Systems Engineer
    $:         $$$$:   ManageSoft GmbH
     $       o_)$$$:   82-84 Mainzer Landstrasse
     ;$,    _/\ &&:'   60327 Frankfurt Germany
       '     /( &&&

To unsubscribe, e-mail:   <mailto:avalon-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-dev-help@jakarta.apache.org>

View raw message