You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Simon Kitching <sk...@apache.org> on 2005/02/11 08:28:06 UTC
[digester2] should useContextClassLoader be true by default?
Hi y'all,
The discussion associated with commons-configuration bugzilla entry
http://issues.apache.org/bugzilla/show_bug.cgi?id=33475
has made me wonder why useContextClassLoader is false by default.
Can anyone see a reason why it should not be *true* by default in
digester2? (I think it's too big a jump to change the default behaviour
of digester 1.x...).
In other words, in what circumstances would a thread have a
context-class-loader set, but not want to use it to load user objects?
If they are rare, then true would seem a better default.
I would appreciate comments from people who are familiar with frameworks
that manipulate classloaders, esp. Tomcat (and that definitely includes
you, Craig!).
Thanks,
Simon
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
Re: [digester2] should useContextClassLoader be true by default?
Posted by Craig McClanahan <cr...@gmail.com>.
On Fri, 11 Feb 2005 20:28:06 +1300, Simon Kitching <sk...@apache.org> wrote:
> Hi y'all,
>
> The discussion associated with commons-configuration bugzilla entry
> http://issues.apache.org/bugzilla/show_bug.cgi?id=33475
> has made me wonder why useContextClassLoader is false by default.
>
> Can anyone see a reason why it should not be *true* by default in
> digester2? (I think it's too big a jump to change the default behaviour
> of digester 1.x...).
>
> In other words, in what circumstances would a thread have a
> context-class-loader set, but not want to use it to load user objects?
> If they are rare, then true would seem a better default.
>
> I would appreciate comments from people who are familiar with frameworks
> that manipulate classloaders, esp. Tomcat (and that definitely includes
> you, Craig!).
>
Thanks for the vote of confidence :-)
The key issue, from a Digester perspective, is that it should work in
a non-J2EE environment as well. We already cover half of that
equation in the current discovery logic -- if there is no context
class loader available, we fall back to the class loader from which
Digester itself was loaded. Thefefore, even in a very simple J2SE
application (with only the system class loader being involved), we do
the right thing.
In a J2EE environemnt, this doesn't matter -- the spec requires that
it be set correctly for, for example, a webapp. Each webapp can
presume that the context class loader will correspond to the set of
classes visible in the /WEB-INF/classes and /WEB-INF/lib directories
of that webapp (plus whatever additional classes are made visible by
the app server).
But what happens if there is a context class loader set, in a J2SE
app, but it's not the desired one? To be honest, I haven't done much
non-J2EE development -- but I cannot think of any case where a default
to assume the context class loader was the right answer (if it is
non-null, of course) is a bad thing -- therefore, I would support the
proposal in a Digester 2.x world to make "true" the default for this,
as long as the fallback logic continued to exist.
> Thanks,
>
> Simon
Craig
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org