That's a separate concern if I understand you correctly. If I summarize, you want to be able to tell core to initialize one instance of a listener across a set of events provided the listener implements all the required interfaces.
On 2 févr. 2010, at 00:27, Sanne Grinovero wrote: > Didn't follow the full discussion, but this looks like a good moment > to rise a flag > about HSEARCH-314: I'm still not sure if this bug is real or not, > but the ContextHolder could now be removed altogether, removing any > doubt about memory leaks: > > as core registers the listener by reflection if Search is found, and > this Search will need at least this version of Hibernate, registering > the listeners by configuration doesn't make sense anymore. > Also older versions of Search aren't compatible (BTW, what about > changing the eventlistener name and throw an exception if older > incompatible version is found?) > If you remove the ContextHolder and make sure the eventlistener is > initialized only once it should be fine. Core should just create a > single instance of the Search listener for all events, this is already > the case afaik. > > Sanne > > 2010/2/1 Steve Ebersole <st...@hibernate.org>: >> For Search afaict as you mentioned listeners will be the touchpoint >> here. So it depends on what is accessible to the listeners. >> >> At some point this just needs to be a best effort. >> >> >> On Mon, 2010-02-01 at 18:42 +0100, Emmanuel Bernard wrote: >>> Hardy, >>> How would it work for say a DirectoryProvider in Hibernate search (which is >>> a plugin of HSearch which itself is a plugin of Core in a way - listener). >>> >>> Remember we have the hibernate.search.default.[customproperty] category and >>> the hibernate.search.[indexname].[customproperty] category. What would the >>> the impl of PropertyConsumer#collectConsumedProperties like for Hibernate >>> Search? >>> >>> >>> On 1 févr. 2010, at 16:28, Hardy Ferentschik wrote: >>> >>>> The pull approach via an additional PropertyConsumer interface works for >>>> me. >>>> It seems to be a good trade-off. Least invasive while still getting some >>>> order >>>> into the properties. >>>> >>>> --Hardy >>>> >>>> >>>> On Mon, 01 Feb 2010 12:14:02 -0300, Steve Ebersole <st...@hibernate.org> >>>> wrote: >>>> >>>>> On Mon, 2010-02-01 at 09:49 +0100, Emmanuel Bernard wrote: >>>>>> Also "plugins" can make use of the general availability of properties. >>>>>> For example Hibernate Search reads everything under hibernate.search >>>>>> (and it's not a limited set of property names). Likewise, HSearch >>>>>> extensions can use whatever property name they want to configure say the >>>>>> custom backend or the directory providers (either custom or even one of >>>>>> the system properties). >>>>> >>>>> The main use case I was keeping in mind along the way was caching. I >>>>> know in the JBC and Infinispan integrations they added the ability to >>>>> read a lot of config information from our properties. >>>>> >>>>> As long as it is something configured by the Configuration -> >>>>> Settings/SessionFactory process or the something is known to >>>>> SessionFactory at the end of its init it is workable. For example, I >>>>> imagine Validator would be easy to tie in here because of the listeners; >>>>> they are known to the SessionFactory. Not so sure about Search, it >>>>> registers listeners too so maybe its ok. >>>>> >>>>> The first question is whether we want a push or pull (from perspective >>>>> of the things being configured) model here. For example, would the >>>>> ConnectionProvider tell SessionFactory about the properties it consumed >>>>> (push)? Or would the SessionFactory ask the ConnectionProvider for that >>>>> info (pull)? >>>>> >>>>> The pull approach has the advantage of being the least trade-off . We >>>>> could add an optional interface "PropertyConsumer" that things can >>>>> choose to implement. If they do, the method would be something like >>>>> "collectConsumedProperties(Map copy)"; they would put all the property >>>>> keys/values into the given map. >>>>> >>>>> Another potential "pull" approach is to not pass around j.u.Properties >>>>> into these things to configure themselves, but to instead wrap that in a >>>>> class that journals the key/values as they are requested. That is a bit >>>>> more invasive though as it would mean changing quite a few contracts, >>>>> some of which are implemented by classes outside our control. >>>>> >>>>> In the "push" strategy, the things configuring themselves somehow push >>>>> which properties (key/value) they are consuming. Much like the second >>>>> pull-approach, this is pretty invasive because we would need to pass in >>>>> the mechanism for these "configurables" to report back which properties >>>>> they are consuming. Not to mention its tedious. >>>>> >>>>> Long term I like the second pull approach. However, I personally think >>>>> it is too disruptive in the short term and that we should use the first >>>>> pull approach for now. >>>>> >>>>> Thoughts? >>>>> >>>> >>> >> -- >> Steve Ebersole <st...@hibernate.org> >> Hibernate.org >> >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev