Update of /var/cvs/html/mmbase/components/core/cache
In directory james.mmbase.org:/tmp/cvs-serv14585/components/core/cache

Modified Files:
        index.jspx 
Added Files:
        style.css 
Log Message:
new component jspx's for cache


See also: http://cvs.mmbase.org/viewcvs/html/mmbase/components/core/cache


style.css is new



Index: index.jspx
===================================================================
RCS file: /var/cvs/html/mmbase/components/core/cache/index.jspx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- index.jspx  22 Feb 2008 13:32:10 -0000      1.1
+++ index.jspx  23 Feb 2008 16:48:57 -0000      1.2
@@ -2,310 +2,175 @@
     xmlns:c="http://java.sun.com/jsp/jstl/core";
     xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
     xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt";
     class="component ${requestScope.componentClassName}"
     id="${requestScope.componentId}">
-  <jsp:directive.page import="org.mmbase.cache.*" />
-  <mm:cloud rank="administrator"  jspvar="cloud">
-    <mm:import externid="rs_show">-</mm:import>
-    <mm:import externid="rs_action">-</mm:import>
-    <mm:import externid="rs_name">-</mm:import>
-    <h3>Cache Monitor</h3>
-    <style type="text/css">
-      .label{
-         background-color:    #cccccc;
-         width:               50%;
-        float:               left;
-      }
-      .data{
-         float:               left;
-      }
-      .row{
-         border-bottom:       1px solid black;
-         overflow:            auto;
-      }
-      a:visited{
-         color:               blue;
-      }
-      hr{
-         color:               #333333;
-      }
-  </style>
+  <jsp:directive.page 
import="java.util.*,org.mmbase.bridge.*,org.mmbase.cache.*" />
+  <jsp:output omit-xml-declaration="true" />
+  <mm:cloud rank="administrator">
+
+
+<mm:import externid="active" from="request" />
+<mm:import externid="clear"  from="request" />
+
+<div
+  class="component mm_c ${requestScope.componentClassName}"
+  id="${requestScope.componentId}">
 
-  <!-- foei -->
-  <table summary="cache manager" width="100%" cellspacing="0" cellpadding="3" 
border="0">
+  <h3>Cache Monitor</h3>
 
-    <mm:import externid="active" from="request" />
-    <mm:import externid="clear"  from="request" />
+  <table summary="cache manager" cellspacing="0" cellpadding="3" border="0">
+    <caption>
+      This tools hows the performance of the various MMBase caches. You can 
also (temporary) turn
+      on/off the cache here. For a persistant change you should change 
caches.xml.
+    </caption>
 
+    <!-- activate or deactivate cache -->
     <mm:present referid="active">
-      <mm:import externid="cache" from="request" required="true" />
-      <mm:write referid="active" jspvar="active" vartype="String">
-        <mm:write referid="cache" jspvar="cache" vartype="String">
-          
<jsp:scriptlet>CacheManager.getCache(cache).setActive(active.equals("on") ? 
true : false);</jsp:scriptlet>
+      <mm:import externid="cache" />
+      <mm:write referid="active" jspvar="active" vartype="String" 
write="false">
+        <mm:write referid="cache" jspvar="cache" vartype="String" 
write="false">
+          <jsp:scriptlet> 
CacheManager.getCache(cache).setActive(active.equals("on") ? true : false); 
</jsp:scriptlet>
         </mm:write>
       </mm:write>
+      <div class="msg">The cache ${cache} is turned ${active}.</div>
     </mm:present>
 
+    <!-- clear cache -->
     <mm:present referid="clear">
-      <mm:import externid="cache" from="request" required="true" />
-      <mm:write referid="cache" jspvar="cache" vartype="String">
-        <jsp:scriptlet>CacheManager.getCache(cache).clear();</jsp:scriptlet>
+      <mm:import externid="cache" />
+      <mm:write referid="cache" jspvar="cache" vartype="String" write="false">
+        <jsp:scriptlet> CacheManager.getCache(cache).clear(); </jsp:scriptlet>
       </mm:write>
+      <div class="msg">The cache ${cache} is turned cleared.</div>
     </mm:present>
 
-    <caption>
-      This tool shows the performance of the various MMBase caches. You can 
also (temporary) turn
-      on/off the cache here. For a persistant change you should change 
caches.xml.
-    </caption>
-
-    <jsp:scriptlet>
-      List&lt;Cache&gt; caches = new ArrayList&lt;Cache&gt;();
-      List&lt;QueryResultCache&gt; queryCaches = new 
ArrayList&lt;QueryResultCache&gt;();
-      //first sort the caches
-
-      for (String cacheName : CacheManager.getCaches()) {
-          Cache cache = CacheManager.getCache(cachename);
-          if(cache instanceof QueryResultCache){
-          queryCaches.add((QueryResultCache) cache);
-          }else{
-          caches.add(cache);
-          }
-          }
-          Collections.sort(queryCaches, new Comparator(){
-          public int compare(Object o1, Object o2){
-          Cache c1 = (Cache)o1;
-          Cache c2 = (Cache)o2;
-          return 
c1.getName().toLowerCase().compareTo(c2.getName().toLowerCase());
-          }
-          });
-    </jsp:scriptlet>
-    <tr><th colspan="6">Query Caches</th></tr>
-    <tr><td colspan="6"><p>Query caches are used to cache the result of 
different types of
+  <tr>
+    <th colspan="8">Query Caches</th>
+  </tr><tr>
+    <td colspan="8">
+      <p>Query caches are used to cache the result of different types of
     queries. These caches have a plugin like system of for (sets of) rules 
that will decide if
-    a certain change in the cloud should invalidate a query from the cache. 
</p></td></tr>
+      a certain change in the cloud should invalidate a query from the 
cache.</p>
+    </td>
+  </tr>
 
-    <jsp:scriplet>
-      for (QueryResultCache cache : queryCaches) {
-       pageContext.setAttribute("cache", cache);
-    </jsp:scriplet>
+  <mm:functioncontainer>
+    <mm:param name="type">org.mmbase.cache.QueryResultCache</mm:param>
+    <mm:listfunction set="caches" name="list" id="qc">
+      <mm:first>
     <tr>
-      <td colspan="6"><a name="${cache.name}" /></td>
+          <th>Cache</th>
+          <th class="center">Requests</th>
+          <th class="center">Hits</th>
+          <th class="center">Misses</th>
+          <th class="center">Puts</th>
+          <th class="center">Size</th>
+          <th class="center">Performance</th>
+          <th class="view">Action</th>
     </tr>
-    <!--
-    include file="cache/cache_detail.jsp"
-    -->
-
-
-    <!-- Handle the possible action of globally switching strategies on or off 
-->
-    <mm:import id="globalStrategyEnabled" reset="true">
-      <jsp:expression>cache.getReleaseStrategy().isEnabled() ? "enabled" : 
"disabled"</jsp:expression>
-    </mm:import>
-    <mm:present referid="rs_name">
-      <mm:compare referid="rs_name" referid2="cacheName">
-        <mm:present referid="rs_action">
-          <mm:compare referid="rs_action" referid2="globalStrategyEnabled" 
inverse="true">
-            <jsp:scriptlet>cache.getReleaseStrategy().setEnabled( 
request.getParameter("rs_action").equals("enabled") ? true : false 
);</jsp:scriptlet>
-          </mm:compare>
-        </mm:present>
-      </mm:compare>
-    </mm:present>
-
-     <!-- determin the colors for the global strategy line-->
-    <mm:import id="globalStrategyEnabled" 
reset="true"><jsp:expression>cache.getReleaseStrategy().isEnabled() ? "enabled" 
: "disabled"</jsp:expression></mm:import>
-    <mm:compare referid="globalStrategyEnabled" value="enabled">
-      <mm:import id="textStyle" reset="true">color: green;</mm:import>
-      <mm:import id="linkStyle" reset="true">color: green;</mm:import>
-    </mm:compare>
-    <mm:compare referid="globalStrategyEnabled" value="enabled" inverse="true">
-      <mm:import id="textStyle" reset="true">color: red;</mm:import>
-      <mm:import id="linkStyle" reset="true">color: red;</mm:import>
-    </mm:compare>
-
-    <!-- Create the url to toggle global strategy active/inactive for this 
cache -->
-    <mm:import reset="true" id="url">
-      <mm:url>
-        <mm:param name="rs_name"><mm:write referid="cacheName"/></mm:param>
-        <mm:compare referid="globalStrategyEnabled" value="disabled"> 
<mm:param name="rs_action">enabled</mm:param> </mm:compare>
-        <mm:compare referid="globalStrategyEnabled" value="disabled" 
inverse="true"> <mm:param name="rs_action">disabled</mm:param> </mm:compare>
-        </mm:url>#<mm:write referid="cacheName"/>
-    </mm:import>
-
+      </mm:first>
    <tr>
-     <td  colspan="5" style="<mm:write referid="textStyle"/>">Events Analyzed 
: <%= cache.getReleaseStrategy().getTotalEvaluated()%>, Queries preserved : <%= 
cache.getReleaseStrategy().getTotalPreserved() %>, Queries flushed : <%= 
cache.getReleaseStrategy().getTotalEvaluated() - 
cache.getReleaseStrategy().getTotalPreserved()%></td>
-     <td  ><a href="<mm:write referid="url" escape="none"/>"><b><%= 
cache.getReleaseStrategy().isEnabled() ? "disable" : "enable"%></b></a> </td>
+        <td> ${c.name} </td>
+        <td class="center"> ${qc.hits + qc.misses} </td> 
+        <td class="center"> ${qc.hits} </td>
+        <td class="center"> ${qc.misses} </td>
+        <td class="center"> ${qc.puts} </td>
+        <td class="center"> ${qc.size} / ${qc.maxSize} </td>
+        <td class="center"> <fmt:formatNumber value="${qc.ratio}" 
maxFractionDigits="2" type="percent" /> </td>
+        <td class="view">
+          <c:choose>
+            <c:when test="${qc.active}">
+              <mm:link>
+                <mm:param name="cache">${qc.name}</mm:param>
+                <mm:param name="active">off</mm:param>
+                <a href="${_}">turn off</a>
+              </mm:link>
+            </c:when>
+            <c:otherwise>
+              <mm:link>
+                <mm:param name="cache">${qc.name}</mm:param>
+                <mm:param name="active">on</mm:param>
+                <a href="${_}">turn on</a>
+              </mm:link>
+            </c:otherwise>
+          </c:choose> |
+          <mm:link>
+            <mm:param name="cache">${qc.name}</mm:param>
+            <mm:param name="clear">clear</mm:param>
+            <a href="${_}">clear</a>
+          </mm:link> |
+          <mm:link page="showcache">
+            <mm:param name="cache">${qc.name}</mm:param>
+            <a href="${_}">show</a>
+          </mm:link>
+        </td>
+      </tr><tr>
+        <td colspan="8">
+          Events Analyzed: ${qc.releaseStrategy.totalEvaluated}
+          Queries preserved: ${qc.releaseStrategy.totalPreserved}
+          Queries flushed: ${qc.releaseStrategy.totalEvaluated - 
qc.releaseStrategy.totalPreserved}
+        </td>
    </tr>
+    </mm:listfunction>
+  </mm:functioncontainer>
 
-   <!-- create the toggle link for showing / hiding strategy details -->
-   <mm:import reset="true" id="url">
-     <mm:url>
-        <mm:compare referid="rs_show" referid2="cacheName" inverse="true"> 
<mm:param name="rs_show"><mm:write referid="cacheName"/></mm:param> 
</mm:compare>
-        </mm:url>#<mm:write referid="cacheName"/>
-   </mm:import>
-
+  <!-- other caches -->
+  <mm:functioncontainer>
+    <mm:listfunction set="caches" name="list" remove="qc" id="c">
+      <mm:first>
    <tr>
-     <td colspan="5">Switch cache release strategy statistics view</td>
-     <td><a href="<mm:write referid="url"/>"><b>Toggle</b></a> </td>
+          <th>Cache</th>
+          <th class="center">Requests</th>
+          <th class="center">Hits</th>
+          <th class="center">Misses</th>
+          <th class="center">Puts</th>
+          <th class="center">Size</th>
+          <th class="center">Performance</th>
+          <th class="view">Action</th>
    </tr>
-   <!--
-       Release Strategy bit
-   -->
-
-   <mm:compare referid="rs_show" referid2="cacheName">
-
-   <!-- show the statistics -->
-   <tr><td colspan="6">
-   <table border="0" >
-   <%
-      ChainedReleaseStrategy base = cache.getReleaseStrategy();
-      for(Iterator ii = base.iterator(); ii.hasNext(); ){
-         ReleaseStrategy strategy = (ReleaseStrategy) ii.next();
-   %>
-      <mm:import id="strategyName" 
reset="true"><%=saveName(strategy.getName())%></mm:import>
-
-      <%-- handel actions for this strategy --%>
-      <mm:compare referid="rs_name" referid2="strategyName">
-         <mm:compare referid="rs_action"  value="setActive">
-            <% strategy.setEnabled(true); %>
-         </mm:compare>
-         <mm:compare referid="rs_action"  value="setInactive">
-            <% strategy.setEnabled(false); %>
-         </mm:compare>
-      </mm:compare>
-
-
-      <%-- create some action urls --%>
-      <mm:remove referid="toggleActiveUrl"/>
-      <mm:import id="toggleActiveUrl" reset="true">
-         <mm:url id="toggleActiveUrl">
-            <mm:param name="rs_show"><mm:write referid="cacheName"/></mm:param>
-            <mm:param name="rs_action"><%=strategy.isEnabled() ? "setInactive" 
: "setActive"%></mm:param>
-            <mm:param 
name="rs_name"><%=saveName(strategy.getName())%></mm:param>
-         </mm:url>#<mm:write referid="cacheName"/>
-      </mm:import>
-
-      <%-- define the text style --%>
-      <mm:import id="strategyEnabled" reset="true"><%= strategy.isEnabled() ? 
"enabled" : "disabled" %></mm:import>
-      <mm:compare referid="strategyEnabled" value="enabled">
-         <mm:import id="textStyle" reset="true">color: black;</mm:import>
-         <mm:import id="linkStyle" reset="true">color: green;</mm:import>
-      </mm:compare>
-      <mm:compare referid="strategyEnabled" value="enabled" inverse="true">
-         <mm:import id="textStyle" reset="true">color: #666666;</mm:import>
-         <mm:import id="linkStyle" reset="true">color: red;</mm:import>
-      </mm:compare>
-
-      <%-- show the values --%>
-            <tr >
-               <td align="left" valign="top" style="width: 50%;">
-                  <p><b><%=strategy.getName()%></b><p>
-                  <p><%=strategy.getDescription()%></p>
-               </td>
-               <td style="padding: 0px;">
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">enabled:</div>
-                        <div class="data" ><a href="<mm:write escape="none" 
referid="toggleActiveUrl"/>">
-                            <span style="<mm:write referid="linkStyle"/>"><%= 
strategy.isEnabled() ? "enabled" : "disabled"%>(press to toggle)</a> </span>
-                        </div>
-                     </div>
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">total queries evaluated:</div>
-                        <div class="data" style="<mm:write 
referid="textStyle"/>"><%=""+strategy.getTotalEvaluated()%></div>
-                     </div>
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">total queries preserved:</div>
-                        <div class="data" style="<mm:write 
referid="textStyle"/>"><%=""+strategy.getTotalPreserved()%></div>
-                     </div>
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">total evaluation time (millis):</div>
-                        <div class="data" style="<mm:write 
referid="textStyle"/>"><%=""+strategy.getTotalEvaluationTimeMillis()%></div>
-                     </div>
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">avarage evaluation time (millis):</div>
-                        <div class="data" style="<mm:write 
referid="textStyle"/>"><%="" + 
saveDevide(strategy.getTotalEvaluationTimeMillis(), 
strategy.getTotalEvaluated())%></div>
-                     </div>
-                     <div class="row">
-                        <div class="label" style="<mm:write 
referid="textStyle"/>">relative performance:</div>
-                        <div class="data" style="<mm:write 
referid="textStyle"/>"><%="" + savePercentage(strategy.getTotalEvaluated(), 
strategy.getTotalPreserved())%> %</div>
-                     </div>
+      </mm:first>
+      <tr>
+        <td> ${c.name} </td>
+        <td class="center"> ${c.hits + c.misses} </td> 
+        <td class="center"> ${c.hits} </td>
+        <td class="center"> ${c.misses} </td>
+        <td class="center"> ${c.puts} </td>
+        <td class="center"> ${c.size} / ${c.maxSize} </td>
+        <td class="center"> <fmt:formatNumber value="${c.ratio}" 
maxFractionDigits="2" type="percent" /> </td>
+        <td class="view">
+          <c:choose>
+            <c:when test="${c.active}">
+              <mm:link>
+                <mm:param name="cache">${c.name}</mm:param>
+                <mm:param name="active">off</mm:param>
+                <a href="${_}">turn off</a>
+              </mm:link>
+            </c:when>
+            <c:otherwise>
+              <mm:link>
+                <mm:param name="cache">${c.name}</mm:param>
+                <mm:param name="active">on</mm:param>
+                <a href="${_}">turn on</a>
+              </mm:link>
+            </c:otherwise>
+          </c:choose> |
+          <mm:link>
+            <mm:param name="cache">${c.name}</mm:param>
+            <mm:param name="clear">clear</mm:param>
+            <a href="${_}">clear</a>
+          </mm:link> |
+          <mm:link page="showcache">
+            <mm:param name="cache">${c.name}</mm:param>
+            <a href="${_}">show</a>
+          </mm:link>
                </td>
             </tr>
-            <tr><td colspan="2"><hr/></td>  </tr>
-   <%}%>
+    </mm:listfunction>
+  </mm:functioncontainer>
    </table>
 
 
-      <div id="st_<%=cache.getName()%>" >
-         <table>
-
-         </table>
-      </td>
-   </td></tr>
-   </mm:compare>
-<%--
-   End of release Strategy bit
---%>
-<% } %>
-<tr><td colspan="6"><h3>Other Caches </h3></td></tr>
-<%
-    //first sort the caches
-    Collections.sort(caches, new Comparator(){
-        public int compare(Object o1, Object o2){
-            Cache c1 = (Cache)o1;
-            Cache c2 = (Cache)o2;
-            return 
c1.getName().toLowerCase().compareTo(c2.getName().toLowerCase());
-        }
-    });
-    for( Iterator i = caches.iterator(); i.hasNext(); ){
-    Cache cache = (Cache) i.next();
-%>
-
-   <[EMAIL PROTECTED] file="cache/cache_detail.jsp"%>
-<%
-   }
-
- Module mmAdmin=ContextProvider.getDefaultCloudContext().getModule("mmadmin");
-
-%>
-
-
-<tr><td>&nbsp;</td></tr>
-<tr align="left">
-  <th class="header">Relation Cache Property</th>
-  <th class="header">Value</th>
-</tr>
-<tr>
-  <td class="data">Requests</td>
-  <td 
class="data"><%=mmAdmin.getInfo("RELATIONCACHEREQUESTS",request,response)%></td>
-</tr>
-<tr>
-  <td class="data">Hits</td>
-  <td 
class="data"><%=mmAdmin.getInfo("RELATIONCACHEHITS",request,response)%></td>
-</tr>
-<tr>
-  <td class="data">Misses</td>
-  <td 
class="data"><%=mmAdmin.getInfo("RELATIONCACHEMISSES",request,response)%></td>
-</tr>
-<tr>
-  <td class="data">Performance</td>
-  <td 
class="data"><%=mmAdmin.getInfo("RELATIONCACHEPERFORMANCE",request,response)%></td>
-</tr>
-
-<tr><td>&nbsp;</td></tr>
-<tr align="left">
-  <th class="header">Temporary Node Cache Property</th>
-  <th class="header">Value</th>
-</tr>
-<tr>
-  <td class="data">Size</td>
-  <td 
class="data"><%=mmAdmin.getInfo("TEMPORARYNODECACHESIZE",request,response)%></td>
-</tr>
-
-<tr><td>&nbsp;</td></tr>
-
-<tr>
-<td class="navigate"><a href="<mm:url page="../default.jsp" />" 
target="_top"><img src="<mm:url page="/mmbase/style/images/back.gif" />" 
alt="back" border="0" align="left" /></a></td>
-<td class="data">Return to home page</td>
-</tr>
-</table>
 </div>
 </mm:cloud>
+</div>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to