Hi devs,
I'm working on a new cache component
(
http://jira.xwiki.org/jira/browse/XWIKI-2359) to replace the current
cache service. For this I'm refactoring a little the API to improve
extensibility.
I will explain what I modified and I would like to have your point of
views, suggestions and corrections on all this.
First of all, how the current service works :
You ask for cache service (which is more a factory than a service in
fact) containing two major type of factory methods :
- get a cache : create and return a new local or distributed (depends
of the implementation) cache where you can put and retrieve object to
cache with eventually a refresh period
- get a local cache : force to get a cache store in the local computer
All these methods return the same XWikiOSCache interface.
I did not made lots of big modifications (as I want to be sure to
correctly support all current service support), the main difference
with the cache service (except the fact it now a factory component) is
that I separate "normal" cache factory and "local" cache factory in
two separate plexus roles. That way it could have different
implementations configured in the xwiki.cfg like
xwiki.cache.cachefactory.hint=memcache
xwiki.cache.localcachefactory.hint=oscache
And XWiki now contains getCacheFactory and getLocalCacheFactory
methods in place of getCacheService.
As a first example I moved the oscache cache service implementation as
component : I attached a patch for it in
http://jira.xwiki.org/jira/browse/XWIKI-2359
Thanks,
--
Thomas Mortagne