clear cache only on a post event

This commit is contained in:
Sebastian Sdorra
2012-08-27 08:00:16 +02:00
parent 2030a643d4
commit 585a2559ce
2 changed files with 66 additions and 17 deletions

View File

@@ -44,33 +44,75 @@ public enum HandlerEvent
/** /**
* After a new object is stored by a handler. * After a new object is stored by a handler.
*/ */
CREATE, CREATE(true),
/** /**
* After a object is modified by a handler. * After a object is modified by a handler.
*/ */
MODIFY, MODIFY(true),
/** /**
* After a object is removed by a handler. * After a object is removed by a handler.
*/ */
DELETE, DELETE(true),
/** /**
* Before a new object is stored by a handler. * Before a new object is stored by a handler.
* @since 1.16 * @since 1.16
*/ */
BEFORE_CREATE, BEFORE_CREATE(false),
/** /**
* Before a object is modified by a handler. * Before a object is modified by a handler.
* @since 1.16 * @since 1.16
*/ */
BEFORE_MODIFY, BEFORE_MODIFY(false),
/** /**
* Before a object is removed by a handler. * Before a object is removed by a handler.
* @since 1.16 * @since 1.16
*/ */
BEFORE_DELETE BEFORE_DELETE(false);
/**
* Constructs ...
*
*
* @param post
*/
private HandlerEvent(boolean post)
{
this.post = post;
}
//~--- get methods ----------------------------------------------------------
/**
* Returns true if the event is fired after the action is occurred.
*
*
* @return true if the event is fired after the action is occurred
* @since 1.21
*/
public boolean isPost()
{
return post;
}
/**
* Returns true if the event is fired before the action is occurred.
*
*
* @return true if the event is fired before the action is occurred
* @since 1.21
*/
public boolean isPre()
{
return !post;
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private boolean post;
} }

View File

@@ -158,13 +158,17 @@ public class ScmRealm extends AuthorizingRealm
@Override @Override
public void onEvent(Repository repository, HandlerEvent event) public void onEvent(Repository repository, HandlerEvent event)
{ {
if (logger.isDebugEnabled()) if (event.isPost())
{ {
logger.debug("clear cache, because repository {} has changed",
repository.getName());
}
cache.clear(); if (logger.isDebugEnabled())
{
logger.debug("clear cache, because repository {} has changed",
repository.getName());
}
cache.clear();
}
} }
/** /**
@@ -177,14 +181,17 @@ public class ScmRealm extends AuthorizingRealm
@Override @Override
public void onEvent(User user, HandlerEvent event) public void onEvent(User user, HandlerEvent event)
{ {
if (logger.isDebugEnabled()) if (event.isPost())
{ {
logger.debug( if (logger.isDebugEnabled())
"clear cache of user {}, because user properties have changed", {
user.getName()); logger.debug(
} "clear cache of user {}, because user properties have changed",
user.getName());
}
cache.remove(user.getId()); cache.remove(user.getId());
}
} }
/** /**