Details
-
New Feature
-
Resolution: Unresolved
-
Major
-
None
-
12.10.6
-
None
-
Unknown
-
Description
Similarly to XWIKI-14218 that only seems to disable the displaying, emailing and processing (prefiltering, etc.) of existing recorded events, if we are not using events in any way on a wiki, we should be able to completely disable them from being recorded in the first place.
Starting with XWiki 12.4, the eventstream module introduced a new Solr store and added a configuration property if it should be used or not:
#-# [Since 12.4] #-# Indicate if the new no-SQL oriented event store is enabled. Once enabled the Solr implementation is #-# used by default but other implementations (like a MongoDB based implementation for example) might come later. #-# It's enabled by default since 12.6. # eventstream.store.enabled = true #-# Indicate which event store implementation to use. The default implementation is based on Solr. # eventstream.store = solr
However, if we set eventstream.store.enabled=false, the "legacyStore" (SQL storage/database) is still used, which is counter-intuitive.
So, we could
1. Introduce a global property to disable eventstream entirely, e.g. eventstream.enabled=false
2. Introduce a specific legacy storage property to disable that particular store, e.g. eventstream.legacyStore.enabled=false
3. Synchronize the legacy (hibernate) store with the existing setting eventstream.store.enabled (i.e. if it's disabled, legacy should be disabled as well), while continuing to use legacy as a fallback to the configured store, and if someone wants to disable solr and only use the legacy store, they should set eventstream.store = legacy (or "hibernate"), which will disable the legacy fallback to avoid storing twice inside the same legacy store.
Workaround (partial):
Use eventstream.daystokeepevents=1 to auto-clean the unused events, but this will only delete events from the legacy store and not from the other stores as well, like Solr.