Berin,

I'm workng on the ContextManager code right now, and I think a different
approach is needed.

Right now we have two ways to set up a logkit config (for example): Pass in
a finished configuration, or load one from a URI. If you load one from a
URI, that will call getComponentManager(), which will instantiate a
component manager. Then you have setComponentManager( ComponentManager
manager ), and suddenly you have a mess of methods that must be called in a
certain order.

I propose to do away with all setXXX methods from ContextManager and have it
work this way:

You pass in an optional root context and override context. Period.

The override context is processed by the ContextManager.

The ContextManager creates a

  childContext = new DefaultContext (rootContext);

And then uses the information in overrideContext to populate the
childContext.

For example, if the override context has a "container.logManager" entry,
this
entry is copied over to childContext unchanged. If not, ContextManager looks
for
container.logManager.config in overrideContext and uses it to set up a
LogKitLoggerManager. If that isn't present, it looks for a
container.logManager.configURI,
loads configurations from that and sets up a LogKitLoggerManager. If that
isn't present
it will look in the root context for a container.logManager, and if that
isn't
present, set up a LogKitLoggerManager with defaults.

This way, we can control the order in which the defaults are applied.

What do you think?

/LS


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

Reply via email to