[hibernate-dev] Interceptor question

Emmanuel Bernard emmanuel at hibernate.org
Mon May 14 04:06:08 EDT 2012


To me index / purge / purgeAll are not simply about what the MassIndexer does.
I can see use cases where you manually control indexing without considering
doing this en mass. remember, people can disable event based indexing.

On 13 mai 2012, at 23:17, Sanne Grinovero wrote:

> [thread diverged, not sure how to reply on each point.. so clean sheet:]
> 
> I agree as a user it's not simple to deal with two "massindex"
> approaches, even worse if they behave differently. Your
> straight-forward take on it is to make sure they behave the same, and
> I see some good value in it.. still we end up having two ways to
> achieve the same thing, which is *one too much*. Let's go one step
> further conceptually, and remove one (give me a second..).
> 
> Second point is, with the exclusive indexing and the IndexManager
> abstraction, it's pretty hard for the user to make "free form" changes
> to the index: we don't allow external tools to connect to the index
> and apply changes as we own the lock; the only option for the power
> user is to use #index, #purge, #purgeAll to make "advanced" self
> controlled changes to the index. This is the only option a user has to
> override all the automagic behaviour, and let him deal with changes
> directly. I think it's important that we have such an option to expose
> the ultimate control toe the user overriding any internal filtering
> logic, and these methods have always had this role.
> 
> Proposal: after we clarify the fact that these methods go straight to
> the index without any interception (no doubt clarification is needed),
> we change the chapter describing the "old style indexing" from being
> one of the suggested methods for reindexing, to be "just an example"
> of the index method, and for example how it could be done to write
> your own MassIndexer - however some wiring would be needed, for
> example 1)the manual session clear and 2)apply indexing interceptors
> are concerns the user has to take care of.
> 
> I think it's important to keep that example in the docs for those
> cases there is a problem with the MassIndexer, or just as a great
> example for those index controlling methods - but it's confusing to
> suggest two ways to do the same thing as we do today.
> 
> +0,8 to optionally (with a boolean) enable interception on those
> methods. I guess it might be handy, but I'm not fully convinced on
> their use and it's yet-another-method, we're getting a bit complex.
> At least it's better than always applying the interceptor as the
> missing method would make it clear that this wouldn't work on
> #purgeAll: as Emmanuel pointed out that's not going to fly.
> 
> Cheers,
> Sanne




More information about the hibernate-dev mailing list