On 02/08/2012 08:14 AM, Galder Zamarreño wrote:
>
> On Feb 8, 2012, at 11:27 AM, Sanne Grinovero wrote:
>
>> On 8 February 2012 04:14, Scott Marlow<[email protected]>  wrote:
>>> On 02/07/2012 10:25 AM, Sanne Grinovero wrote:
>>>>
>>>> On 7 February 2012 15:21, Scott Marlow<[email protected]>   wrote:
>>>>>
>>>>> On 02/07/2012 10:07 AM, Sanne Grinovero wrote:
>>>>>>>>
>>>>>>>>   I'm not that worried about OGM (unless someone wants double buffering
>>>>>>>>   ;), its more about users wanting to package in different versions in
>>>>>>>>   Hibernate (newer/older).
>>>>>>
>>>>>> Even if someone wanted double buffering, OGM was already upgraded to
>>>>>> use Hibernate 4, so this doesn't apply.
>>>>>>
>>>>>>
>>>>>
>>>>> I think it depends on whether OGM will always work with the Hibernate
>>>>> 4.x version that is used in AS 7.x.  If OGM moves forward (Hibernate
>>>>> version wise) and starts requiring a different version than the one that
>>>>> is static wired into the Infinispan module, the user might want multiple
>>>>> Hibernate 4.x versions to be wired into the Infinispan module.  I'm not
>>>>> sure but if Infinispan has multiple versions of Hibernate in its
>>>>> classpath, that probably would interfere with the custom commands (I
>>>>> would think).
>>>>
>>>>
>>>> Good point. It's unlikely for OGM to need a 2nd level cache, but this
>>>> reasoning applies to Hibernate Search as well, for which we often
>>>> depend on a newer version of Core than what is provided by the AS.
>>>
>>>
>>> How hard would it be to allow a different way of passing the custom commands
>>> in?  Would this be a short term change in the next few weeks or longer term?
>>
>> Sorry I'm not sure I understood what you are proposing. How do you
>> suggest it should work?
>
> Hmmm, I don't see an easy/quick way to fix this. So far, these are the 
> options that could be implemented in Infinispan:
>
> 1. Separate between cache-level and global module command extensions. By 
> doing that, Hibernate 2LC can implement a cache command factory and that 
> would get resolved (via service loader) when the cache is created, which 
> happens when application is deployed. This avoids AS7 Infinispan subsystem 
> being tied to Hibernate.
>
> 2. Alternatively something suggested by Sanne is plugging the command 
> factories (and initializer) via an SPI (i.e. addModuleCommandExtensions or 
> similar), so that loading happens in Hibernate and it passes it into the 
> created cache (similar to listeners). A problem with this is unless this is 
> passed when the cache is started, there could be a small window when the 
> cache receives a command for which no factory to resolve it is available cos 
> addModuleCommandExtensions has not been called yet.
>
> I also see an option for those in charge of managed environments:
>
> 3. A third solution here is for AS7, or any other managed env, to associate a 
> cache manager with each deployment and associate pass the right classloader 
> in. That way, the cache manager is created when deployment comes in and we 
> can pass in the right Hibernate and Infinispan CLs. As said by Paul, this 
> would require work on the AS7, but conceptually, this is in line with what we 
> want to do with https://issues.jboss.org/browse/ISPN-1413 long term…
>
> I personally favour this 3rd option

I started a thread on Hibernate-dev about this as well, to propose some 
short term solutions (since none of the above are easy/quick to fix).


>
>> --Sanne
>>
>> _______________________________________________
>> infinispan-dev mailing list
>> [email protected]
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
> --
> Galder Zamarreño
> Sr. Software Engineer
> Infinispan, JBoss Cache
>

_______________________________________________
infinispan-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to