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.