Inline:

2010/3/9 Emmanuel Bernard <emman...@hibernate.org>:
>
> On 9 mars 2010, at 12:47, Sanne Grinovero wrote:
>
>> Hi all,
>> I'd like to merge the Infinispan DirectoryProvider soon:
>>
>> The code is trivial as it was designed primarily for Search, but some
>> points need to be discussed:
>>
>> 1) Dependencies
>> 1A) Transaction implementation:
>> It does require Infinispan modules, most are transitive dependencies of
>>   <groupId>org.infinispan</groupId>
>>   <artifactId>infinispan-lucene-directory</artifactId>
>>
>> but it also requires a transaction manager implementation, which is
>> not enforced by infinispan as any implementation will do.
>> Shall we "suggest" one as optional dependency?
>> This is going to add many dependencies, but we need something at least
>> for tests.
>
> I'd mark it provided or something like that? What is the strategy that the 
> Infiniboys use for their tests?
>

In Infinispan dependencies like jbossjta are in test scope while the
jboss-transaction-api is in compile scope;
fine for me, I'm just warning that without modularizing Search this is
going to introduce many additional jars.

>>
>> 1B) JGroups
>> Infinispan depends on newer JGroups version than the one currently
>> tested by the jgroups backend. I'd expect the new version to work the
>> same, but are we going to explicitly depend on the same version of
>> Infinispan?
>
> +1, we probably need to use what Hibernate Core is using, ie a central place 
> to declare deps for all HSearch "modules"
>
>>
>> 2) Infinispan initialization
>> A single CacheManager should be shared across many caches; in practice
>> while I'd suggest to use a different cache per index we even do
>> support more than one index in the same cache.
>> At least a configuration property would be needed to point the
>> CacheManager initialization to an Infinispan configuration file -
>> which in turn will lilkely point to a JGroups configuration file.
>> This configuration property could be global or "directory scoped" like
>> we do for other properties but that would be complex.
>>
>> I'd suggest a single global CacheManager configuration - which will
>> trigger a CacheManager initialization in the SearchFactory - and have
>> different Directories be able to select the cache name and index name
>> they want to use;
>> (If two directories use the same cache and same index name they are
>> sharing the same index)
>> It would look like:
>>
>> hibernate.search.infinispan_configuration lucene-cluster-conf.xml
>> hibernate.search.default.directory_provider
>> org.hibernate.search.store.InfinispanDirectoryProvider
>> hibernate.search.default.cache_name defaultLuceneIndexes
>> hibernate.search.Animal.cache_name AnimalsLuceneIndex
>
> Looks good but it means we need some kind of lifecycle hook for this cache 
> manager to be initialized in Hibernate Search before the directory providers.
> For example it would be nice to pass the properties to this initializer hook 
> and let it decide whether or not it needs to do something on SF init and on 
> SF close. These hooks could be discoverable or example by using the service 
> pattern.

I'm not sure about which pattern, do you have an example ? google
found several different things all generically named "service
pattern".

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to