We use Spring 1.2, but long ago wrote our own subclass of
ApplicationContext that will grab context override files from
elsewhere (including the local filesystem rather than the classpath).
It offers pretty much the exact functionality you are looking for.
I'm sure it can be applied to spring 2.0 as well.  It lets us have a
default config defined in the application context which works on
developer machines, and then have overrides that live in app context
files on the local filesystem in production boxes.  Any bean defined
in an override file will automatically replace any bean of the same
name found in the application context that would be loaded without the
override.  You can also provide totally unique beans in an override
context. This allows us to drop a developer build directly on a
production machine and the production overrides will be autodetected
and utilized. It probably isn't quite as flexible as hibernate's
mechanism, but it is flexible enough for our use cases.  I can talk to
the lawyerly folks about whether I can make it public if you'd like.

One cute little thing we do with it is to override the name of the CSS
files that get used.  This allows us to have a look and feel that
makes it abundantly clear you are not in a production environment (the
color scheme is pink and lime-green unless you have a production
override).  I'm sure hivemind would give us a more elegant solution to
the same problem(or at least a built-in solution to it), but then I'd
have to know more about hivemind, something I'm trying to avoid, since
we've already got enough frameworks that I have to be expert in
(tapestry, spring, dojo, hibernate, quartz, j2ee, etc).

Honestly, if you can get away with just using hivemind, then I'd
recommend it, if only becuse it will be one less framework you need to
deal with, which is probably a good thing.  But if you must have some
of Spring's features, then my strategy of minimizing our dependancy on
hivemind has worked out very well for us.

--sam

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

Reply via email to