ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <pe...@apache.org>
Subject Re: cvs commit: jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/interfaces/executor ExecutionFrame.java
Date Thu, 25 Apr 2002 02:46:52 GMT
On Thu, 25 Apr 2002 12:30, Adam Murdoch wrote:
> > yep. But now we start to get into territory that is a bit icky. We will
> > end up creating a fully fledged services kernel if we are not careful.
> > The above strategy was one the Cocoon project used to use until they
> > realized that some services/components were accessing other components
> > before those other components were fully initialized. (The same thing
> > happened in Avalon/Phoenix kernel). I believe they ended up creating a
> > directed graph for dependencies between services and so forth which seems
> > like a little overkill for Ant - what do you think?
>
> Definitely overkill.  I think we can get pretty close to what we need by
> doing what DefaultEmbeddor does: create all the services, add them to the
> service manager, and only then start moving them through the lifecycle
> stages. Perhaps if we were to also move all the services through a
> lifecycle stage, before moving to the next stage, might be useful.

The problem with this is that it is going to break in some systems. If you 
write a service that accesses other services in any of the lifecycle methods 
then there is a chance you are accessing an unconfigured service and the 
system goes belly up. Most of our services currently fall into this category. 

The ordering in embeddor is required for current set of implementations - if 
we were ever to change the implementations radically we would need to rewrite 
the embeddor code which is a bit icky. 

I guess we kinda do need proper manager for this stuff but I would really like 
to avoid the complexity of it all. Can you think of any way of avoiding all 
this complexity?

> It always struck me as kinda odd that avalon doesn't have a container that
> does the dependency tracking thing.

We have about 5 at the moment I believe ;) Unfortunately all of them are 
monolithic or add extra layers that ant does not require. Writing a generic 
one is possible but a bit of work that has not yet been done.

-- 
Cheers,

Peter Donald


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


Mime
View raw message