[infinispan-dev] [Pull Request] Modular Classloading Compatibility
Manik Surtani
manik at jboss.org
Wed Jun 8 08:03:17 EDT 2011
On 8 Jun 2011, at 11:42, Dan Berindei wrote:
>>
>> Yes, no reason why the delegate Cache can't do this. These setters would need to exist on the Cache interface though. For now, we should just restrict to setClassLoader().
>>
>>> From an implementation perspective, given where we are with 5.0 now, I suggest we implement by holding the ClassLoader in the CacheDelegate impl, and each method invocation impl would:
>>
>> 1) Set TCCL with the instance's ClassLoader field
>> 2) Do work
>> 3) In a finally block, reset TCCL.
>>
>> This is just a temp measure, since I don't want to re-work how Marshallers, etc get a hold of the class loader. They use TCCLs right now, and while sub-optimal in many ways, this approach gives us an easy mechanism to implement while still preventing any leaks, etc otherwise common with TCCLs.
>>
>
> The CacheDelegate instance returned by CM.getCache() is shared between
> all the users that called getCache(), so if we want different users to
> have different classloaders I think we need another Cache wrapper
> class that will set/reset the TCCL.
Yes, that's what I have in mind.
--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani
Lead, Infinispan
http://www.infinispan.org
More information about the infinispan-dev
mailing list