> From: news [mailto:[EMAIL PROTECTED]] On Behalf Of Leo Simons
> 
> The layers IMV:
> 
> NON-FRAMEWORK UTILITY CODE (1)
> --------------------------------------
> CLIENT FRAMEWORK INTERFACES (2)
> --------------------------------------
> CONTAINER FRAMEWORK INTERFACES (3)
> --------------------------------------
> CLIENT FRAMEWORK UTILITY CODE (4)
> --------------------------------------
> CLIENT FRAMEWORK IMPLEMENTATION (5)
> --------------------------------------
> CONTAINER FRAMEWORK UTILITY CODE (6)
> --------------------------------------
> CONTAINER FRAMEWORK IMPLEMENTATION (7)
> --------------------------------------
> OTHER CODE (8)
> 
> 
> (4) & (5) should not depend on (3) but (3) shouldn't depend 
> on (4) and 
> (5) either. So not clean layering. (4)+(5) might be too 
> closely tied in 
> Real Life to seperate them. (8) should ideally tie only to 
> (1)-(3), with 
> the stuff needed from (4)-(7) provided at assembly/deploy time by (7).
> 
> (1) -- logkit, commons-collections, etc
> (2) -- ServiceManager, Logger, Contextualizable, Parameters,
>         Instrumentable, BlockContext, etc
> (3) -- Container, ServiceDescriptor, etc
> (4) -- SAXConfigurationBuilder
> (5) -- DefaultContext, DefaultServiceManager, AbstractLogEnabled,
>         DefaultBlockContext, etc
> (6) -- excalibur-logger, baxter, altrmi, etc
> (7) -- phoenix, merlin, fortress, etc
> (8) -- sevak, cocoon, whatever
> 
> The crucial difference with your setup is that (7) indeed can 
> and should 
> depend on lots of (5) and (6).

I thought the same when I read the top of your mail, actually. There
is a need for a split along

    container-specific components
    -----------------------------
           containers
    -----------------------------
    container agnostic components

So you can use components to build a container. If a container is
dependent
on a component and that component is specific to the container, then the
component is, IMO, part of the container.

What I'd change in your layering is to move BlockContext to a
"container-specific
interfaces" layer, somewhere near (2.5), and DefaultBlockContext goes to
(5.5).

Maybe a stack isn't what we need. Maybe a directed graph is a better
description
of what may depend on what. I'll see if I can do some art with
dot/graphviz.

> Not saying I am against "doing it cleanly", just that it is 
> something to 
> tackle _after_ we get fortress out. You know, reduce the headache.
 
As you say, it is an [RT].

/LS


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to