<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %> <%@ page import="com.opencms.flex.util.*,com.opencms.flex.cache.*,com.opencms.flex.*,com.opencms.core.*" %> <%@ page import="java.util.*" %> Flex Cache Administration <% int sizeEntries = 0; int sizeKeys = 0; CmsFlexCache cache = null; com.opencms.file.CmsObject cms = null; int maxCacheByteSize = 0; int avgCacheByteSize = 0; int currentCacheByteSize = 0; int currentCacheObjectCount = 0; CmsFlexLruCache entryLruCache = null; out = pageContext.getOut(); // initialise Cms Action Element com.opencms.flex.jsp.CmsJspActionElement cmsAction = new com.opencms.flex.jsp.CmsJspActionElement(pageContext, request, response); String locale = "en"; if (request instanceof CmsFlexRequest) { // out.write("

CmsFlexRequest found!

"); CmsFlexRequest req = (CmsFlexRequest)request; cache = req.getCmsCache(); cms = cmsAction.getCmsObject(); // get the current locale locale = com.opencms.workplace.CmsXmlLanguageFile.getCurrentUserLanguage(cms); } else { out.write("

NO CmsFlexRequest!

"); } CmsMessages messages = new CmsMessages("com/opencms/workplace/workplace", locale); out.println("

" + messages.key("flexcache.admin.heading") + "

"); // get the label texts for the submit buttons String label_1 = messages.key("flexcache.admin.label1"); String label_2 = messages.key("flexcache.admin.label2"); String label_5 = messages.key("flexcache.admin.label5"); String label_6 = messages.key("flexcache.admin.label6"); String label_7 = messages.key("flexcache.admin.label7"); String label_8 = messages.key("flexcache.admin.label8"); String label_9 = messages.key("flexcache.admin.label9"); String label_3 = messages.key("flexcache.admin.label3"); String label_4 = messages.key("flexcache.admin.label4"); String label_10 = messages.key("flexcache.admin.label10"); String action = request.getParameter("action"); // out.write("Request action is: " + action); if (action != null) { if (label_1.equals(action)) { // cache.clearEntries(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_ENTRIES)))); } else if (label_2.equals(action)) { // cache.clear(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_ALL)))); } else if (label_6.equals(action)) { // cache.clearOnline(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_ONLINE_ALL)))); } else if (label_5.equals(action)) { // cache.clearOnlineEntries(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_ONLINE_ENTRIES)))); } else if (label_8.equals(action)) { // cache.clearOffline(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_OFFLINE_ALL)))); } else if (label_7.equals(action)) { // cache.clearOfflineEntries(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_OFFLINE_ENTRIES)))); } else if (label_9.equals(action)) { // cache.purgeJspRepository(cms); // cache.clear(cms); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_PURGE_JSP_REPOSITORY, new HashMap(0), true)); A_OpenCms.fireCmsEvent(new CmsEvent(cms, I_CmsEventListener.EVENT_FLEX_CACHE_CLEAR, Collections.singletonMap("action", new Integer(CmsFlexCache.C_CLEAR_ENTRIES)))); } } if (cache != null) { sizeEntries = cache.size(); sizeKeys = cache.keySize(); entryLruCache = cache.getEntryLruCache(); if (entryLruCache!=null) { maxCacheByteSize = entryLruCache.getMaxCacheCosts(); avgCacheByteSize = entryLruCache.getAvgCacheCosts(); currentCacheByteSize = entryLruCache.getObjectCosts(); currentCacheObjectCount = entryLruCache.size(); } } %>
<%= messages.key("flexcache.admin.variants_size") %> <%=sizeEntries%>  
<%= messages.key("flexcache.admin.keys") %> <%=sizeKeys%>  
<%= messages.key("flexcache.admin.variants_maxsize") %> <%=maxCacheByteSize%> <%= messages.key("flexcache.admin.bytes") %>
<%= messages.key("flexcache.admin.variants_avgsize") %> <%=avgCacheByteSize%> <%= messages.key("flexcache.admin.bytes") %>
<%= messages.key("flexcache.admin.variants_cursize") %> <%=currentCacheByteSize%> <%= messages.key("flexcache.admin.bytes") %>

<%= messages.key("flexcache.admin.clear_options") %>

<% if (cache.cacheOffline()) { %>

<%= messages.key("flexcache.admin.clear_options2") %>

<%= messages.key("flexcache.admin.online") %> <%= messages.key("flexcache.admin.cache") %> <%= messages.key("flexcache.admin.offline") %> <%= messages.key("flexcache.admin.cache") %>
<% } %>

<%= messages.key("flexcache.admin.jsp_options") %>

<%= messages.key("flexcache.admin.cached_resources") %>

<% if ((action != null) && (cache != null)) { if (label_3.equals(action) || label_4.equals(action)) { boolean showall = false; if (label_4.equals(action)) { showall = true; out.write("

"+messages.key("flexcache.admin.cached_keys_variants")+"

"); } else { out.write("

"+messages.key("flexcache.admin.cached_keys")+"

"); } Set set = cache.getCachedResources(cms); if (cache.cacheOffline()) { List online = new ArrayList(); List offline = new ArrayList(); Iterator i = set.iterator(); while(i.hasNext()) { String resource = (String)i.next(); if (resource.endsWith(cache.C_CACHE_OFFLINESUFFIX)) { offline.add(resource); } else { online.add(resource); } } Collections.sort(offline); Collections.sort(online); out.write("

"+messages.key("flexcache.admin.online")+"

"); i = online.iterator(); while(i.hasNext()) { String resource = (String)i.next(); out.write(messages.key("flexcache.admin.resource")+": " + resource + "   "+messages.key("flexcache.admin.key")+": " + cache.getCachedKey(resource, cms) + "
"); if (showall) { Set variations = cache.getCachedVariations(resource, cms); if (variations.size() > 0) { List outlist = new ArrayList(); for(Iterator j = variations.iterator(); j.hasNext(); outlist.add(j.next())); Collections.sort(outlist); Iterator s = outlist.iterator(); while (s.hasNext()) { String v = (String)s.next(); out.write("        "+messages.key("flexcache.admin.variant")+": " + v + "
"); } } } } if (online.size() == 0) out.write(messages.key("flexcache.admin.err_online")); out.write("

"+messages.key("flexcache.admin.offline")+"

"); i = offline.iterator(); while(i.hasNext()) { String resource = (String)i.next(); out.write(messages.key("flexcache.admin.resource")+": " + resource + "   "+messages.key("flexcache.admin.key")+": " + cache.getCachedKey(resource, cms) + "
"); if (showall) { Set variations = cache.getCachedVariations(resource, cms); if (variations.size() > 0) { List outlist = new ArrayList(); for(Iterator j = variations.iterator(); j.hasNext(); outlist.add(j.next())); Collections.sort(outlist); Iterator s = outlist.iterator(); while (s.hasNext()) { String v = (String)s.next(); out.write("        "+messages.key("flexcache.admin.variant")+": " + v + "
"); } } } } if (offline.size() == 0) out.write(messages.key("flexcache.admin.err_offline")); } else { List online = new ArrayList(); online.addAll(set); Collections.sort(online); Iterator i = online.iterator(); while(i.hasNext()) { String resource = (String)i.next(); out.write(messages.key("flexcache.admin.resource")+": " + resource + "   "+messages.key("flexcache.admin.key")+": " + cache.getCachedKey(resource, cms) + "
"); if (showall) { Set variations = cache.getCachedVariations(resource, cms); if (variations.size() > 0) { List outlist = new ArrayList(); for(Iterator j = variations.iterator(); j.hasNext(); outlist.add(j.next())); Collections.sort(outlist); Iterator s = outlist.iterator(); while (s.hasNext()) { String v = (String)s.next(); out.write("        "+messages.key("flexcache.admin.variant")+": " + v + "
"); } } } } if (set.size() == 0) out.write(messages.key("flexcache.admin.err_empty")); } } } %>