Stephen McConnell wrote:
Thoughts?
I have trouble envisioning exactly what you mean. I'm also confused about the mentioning of classloaders. To me it sounds like a lot of complexity; I don't understand what the use case is.
Are you saying that excalibur-logger should be refactored and be built around the repository package? Gut feeling...that seems the wrong way around.
Let me explain what I'm thinking in a little more detail:
The repository package lets you create an object using a common factory pattern. It hides the problems related to building the object that is returned including the implementation classloader with the related implementation classes). So for example, let say you wanted a LogKit logging solution - you would use the repo to create this based on an artifact url (e.g. "artifact:avalon-logging/logkit/logkit-impl"). The repo will construct the classloader with all of the stuff needed for a logkit logging strategy together with a logging system configuration.
The factory implementation would read the configuration and identify the target factories that required. For each target factory (e.g. File, JDBC, JMS, LF5, Servlet, whatever, the factory implementation would use the repository facility to load each target factory. This means that any implementation resources (e.g. servlet stuff, or JMS stuff gets pushed into its own classloader - and that dependencies for the respective solutions are handled automatically by the repository).
Cheers, Stephen.
Anyway, if the known excalibur-logger clients keep working without modification, go ahead and commit it IMHO. We can roll things back later if it turns out a nightmare :D
--
|------------------------------------------------| | Magic by Merlin | | Production by Avalon | | | | http://avalon.apache.org/merlin | | http://dpml.net/merlin/distributions/latest | |------------------------------------------------|
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
