On Oct 29, 2005, at 11:51 AM, Dain Sundstrom wrote:
Setting the TCCL around lifecycle methods is one of the changes I made
in XBean. It turns out that there is a lot of code out there that
assumes the TCCL is properly set, so instead of requiring everyone to
write a wrapper class, I just set it. The reason we removed most of
the TCCL setting code from Geronimo was because it was a major
performance impact. I just think we went a little to far :) The life
cycle methods are rarely called and don't happen in code paths where
performance is critical. I think we should change the GBeanInstance
code to set the TCCL around doStart and doStop.
What do you think?
Fine with me. Do you agree that setting the TCCL while deserializing
attribute values is unnecessary?
thanks
david jencks
-dain
On Oct 29, 2005, at 11:37 AM, David Jencks wrote:
I think my previous claims (possibly on IRC) are wrong.
After looking at the code again, my understanding is that:
when the gbean is loaded into the kernel, the TCCL is the
configuration classloader (see
Configuration.loadGBeans(ManageableAttributeStore attributeStore)
lines 296 ff.) Note the comment from Dain wondering why we are doing
this. I think this is a leftover attempt to solve the problem of
deserializing objects using the configuration classloader. We are
now solving this problem with the ObjectInputStreamExt class so I
think this TCCL setting is unnecessary.
when the gbean implementation class constructor and doStart method is
called, the TCCL is indeterminate. I believe the idea is that if you
want to set the TCCL properly, you will include a classLoader
non-persistent "magic" attribute in the gbeanInfo and set the TCCL
yourself.
Sorry for the confusion.
thanks
david jencks
On Oct 29, 2005, at 11:12 AM, Dain Sundstrom wrote:
Now I'm confused. I thought these would be the exact same
classloader. I thought there would only be one. Maybe David Jencks
can help here.
-dain
On Oct 29, 2005, at 10:58 AM, Davanum Srinivas wrote:
The class loader that loaded the GBean. Sorry, i forgot to mention
that.
thanks,
dims
On 10/29/05, Dain Sundstrom <[EMAIL PROTECTED]> wrote:
On Oct 29, 2005, at 10:11 AM, Davanum Srinivas wrote:
DJ mentioned that this is because the TCCL is set to the
configurations' classloader. So i had to forcibly set the context
class loader myself.
What did you forcibly set it to?
-dain
--
Davanum Srinivas : http://wso2.com/blogs/