package com.intrbiz.bergamot.ui.router.global;
import org.apache.log4j.Logger;
import com.intrbiz.balsa.engine.route.Router;
import com.intrbiz.balsa.metadata.WithDataAdapter;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.bergamot.ui.BergamotApp;
import com.intrbiz.data.DataManager;
import com.intrbiz.data.cache.Cache;
import com.intrbiz.metadata.Any;
import com.intrbiz.metadata.Prefix;
import com.intrbiz.metadata.RequirePermission;
import com.intrbiz.metadata.RequireValidPrincipal;
import com.intrbiz.metadata.Template;
@Prefix("/global/admin/utils")
@Template("layout/main")
@RequireValidPrincipal()
@RequirePermission("ui.admin")
public class GlobalUtilsAdminRouter extends Router<BergamotApp>
{
private static final Logger logger = Logger.getLogger(GlobalUtilsAdminRouter.class);
@Any("/")
public void index()
{
encode("global/admin/utils/index");
}
@Any("/cache/clear")
@WithDataAdapter(BergamotDB.class)
public void clearCaches(BergamotDB db)
{
logger.warn("Flushing all data caches due to administrative request");
db.cacheClear();
var("cacheCleared", true);
encode("global/admin/utils/index");
}
@Any("/cache/view")
@WithDataAdapter(BergamotDB.class)
public void viewCache(BergamotDB db)
{
Cache cache = DataManager.get().cache("cache.bergamot");
var("cachekeys", cache.keySet(""));
encode("global/admin/utils/cache/view");
}
}