Hi Andrey,
Looks good to me.
Regards,
On Wed, Apr 27, 2016 at 5:53 PM, abtv <andreybutov(a)mail.ru> wrote:
Hi Denis!
Did you inserted code example to show how to use ReadWriteLock in place? Or
I should override the default class? I just added ReadWriteLock, is it ok?
There is my final solution with Listener and it works on my machine:
I added the following to components.txt:
0:com.myproject.xwiki.cache.CustomSecurityCacheRulesInvalidatorListener
@Component
@Named("SecurityCacheRulesInvalidatorListener")
@Singleton
public class CustomSecurityCacheRulesInvalidatorListener extends
AbstractEventListener {
@Inject
@Named(DefaultSecurityCacheRulesInvalidator.NAME)
private ReadWriteLock readWriteLock;
@Inject
private SecurityCache securityCache;
@Inject
private SecurityReferenceFactory securityReferenceFactory;
public CustomSecurityCacheRulesInvalidatorListener() {
super(DefaultSecurityCacheRulesInvalidator.NAME, new
CleanCacheEvent());
}
public void onEvent(Event event, Object source, Object data) {
System.out.println("invalidating xwiki cache");
readWriteLock.writeLock().lock();
try {
SecurityReference root =
securityReferenceFactory.newEntityReference(null);
securityCache.remove(root);
} finally {
readWriteLock.writeLock().unlock();
}
}
}
--
View this message in context:
http://xwiki.475771.n2.nabble.com/How-to-invalidate-security-cache-tp759913…
Sent from the XWiki- Dev mailing list archive at
Nabble.com.
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Denis Gervalle
SOFTEC sa - CEO