You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gk...@apache.org on 2007/07/23 15:43:37 UTC

svn commit: r558726 - in /cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src: changes/changes.xml main/java/org/apache/cocoon/generation/StatusGenerator.java

Author: gkossakowski
Date: Mon Jul 23 06:43:36 2007
New Revision: 558726

URL: http://svn.apache.org/viewvc?view=rev&rev=558726
Log:
COCOON-2054: StatusGenerator must now show default Store explicitly (because no longer part of StoreJanitor).
Thanks to Alexander Klimetschek for contributing a patch.

Modified:
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/changes/changes.xml
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/main/java/org/apache/cocoon/generation/StatusGenerator.java

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/changes/changes.xml?view=diff&rev=558726&r1=558725&r2=558726
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/changes/changes.xml (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/changes/changes.xml Mon Jul 23 06:43:36 2007
@@ -24,6 +24,11 @@
     +-->
     <document>
       <body>
+        <release version="1.0.0-RC2" date="2007-??-??" description="unreleased">  
+          <action dev="gkossakowski" type="add" due-to="Alexander Klimetschek" due-to-email="alexander.klimetschek@mindquarry.com" issue="COCOON-2054">
+            StatusGenerator must now show default Store explicitly (because no longer part of StoreJanitor)
+          </action>  
+        </release>
         <release version="1.0.0-RC1" date="2007-??-??" description="unreleased">  
           <action dev="reinhard" type="add" due-to="Alexander Klimetschek" due-to-email="alexander.klimetschek@mindquarry.com" issue="COCOON-2047">
             StatusGenerator: Show a list of all Spring beans

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/main/java/org/apache/cocoon/generation/StatusGenerator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/main/java/org/apache/cocoon/generation/StatusGenerator.java?view=diff&rev=558726&r1=558725&r2=558726
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/main/java/org/apache/cocoon/generation/StatusGenerator.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-components/src/main/java/org/apache/cocoon/generation/StatusGenerator.java Mon Jul 23 06:43:36 2007
@@ -135,6 +135,11 @@
     protected StoreJanitor storeJanitor;
 
     /**
+     * The default store
+     */
+    private Store store;
+
+    /**
      * The persistent store
      */
     protected Store storePersistent;
@@ -159,7 +164,6 @@
      */
     private Source libDirectory;
 
-
     /**
      * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
      */
@@ -190,6 +194,12 @@
             getLogger().info("StoreJanitor is not available. Sorry, no cache statistics");
         }
 
+        if (this.manager.hasService(Store.ROLE)) {
+            this.store = (Store) this.manager.lookup(Store.ROLE);
+        } else {
+            getLogger().info("Store is not available. Sorry no cache statistics about it.");
+        }
+        
         if (this.manager.hasService(Store.PERSISTENT_STORE)) {
             this.storePersistent = (Store) this.manager.lookup(Store.PERSISTENT_STORE);
         } else {
@@ -227,6 +237,7 @@
             this.manager.release(this.continuationsManager);
             this.settings = null;
             this.storePersistent = null;
+            this.store = null;
             this.storeJanitor = null;
             this.continuationsManager = null;
         }
@@ -469,44 +480,53 @@
             }
             endGroup();
         }
+        
+        if (this.store != null) {
+            genStore(this.store);
+        }
 
         if (this.storePersistent != null) {
-            startGroup(storePersistent.getClass().getName() + " (hash = 0x" + Integer.toHexString(storePersistent.hashCode()) + ")");
-            int size = 0;
-            int empty = 0;
-            atts.clear();
-            atts.addAttribute(NAMESPACE, "name", "name", "CDATA", "cached");
-            super.contentHandler.startElement(NAMESPACE, "value", "value", atts);
-
-            atts.clear();
-            Enumeration e = this.storePersistent.keys();
-            while (e.hasMoreElements()) {
-                size++;
-                Object key = e.nextElement();
-                Object val = storePersistent.get(key);
-                String line;
-                if (val == null) {
-                    empty++;
-                } else {
-                    line = key + " (class: " + val.getClass().getName() + ")";
-                    super.contentHandler.startElement(NAMESPACE, "line", "line", atts);
-                    super.contentHandler.characters(line.toCharArray(), 0, line.length());
-                    super.contentHandler.endElement(NAMESPACE, "line", "line");
-                }
-            }
-            if (size == 0) {
+            genStore(this.storePersistent);
+        }
+        // END Cache
+
+        endGroup();
+    }
+
+    private void genStore(Store store) throws SAXException {
+        AttributesImpl atts = new AttributesImpl();
+        startGroup(store.getClass().getName() + " (hash = 0x" + Integer.toHexString(store.hashCode()) + ")");
+        int size = 0;
+        int empty = 0;
+        atts.clear();
+        atts.addAttribute(NAMESPACE, "name", "name", "CDATA", "cached");
+        super.contentHandler.startElement(NAMESPACE, "value", "value", atts);
+
+        atts.clear();
+        Enumeration e = store.keys();
+        while (e.hasMoreElements()) {
+            size++;
+            Object key = e.nextElement();
+            Object val = store.get(key);
+            String line;
+            if (val == null) {
+                empty++;
+            } else {
+                line = key + " (class: " + val.getClass().getName() + ")";
                 super.contentHandler.startElement(NAMESPACE, "line", "line", atts);
-                String value = "[empty]";
-                super.contentHandler.characters(value.toCharArray(), 0, value.length());
+                super.contentHandler.characters(line.toCharArray(), 0, line.length());
                 super.contentHandler.endElement(NAMESPACE, "line", "line");
             }
-            super.contentHandler.endElement(NAMESPACE, "value", "value");
-
-            addValue("size", size + " items in cache (" + empty + " are empty)");
-            endGroup();
         }
-        // END Cache
+        if (size == 0) {
+            super.contentHandler.startElement(NAMESPACE, "line", "line", atts);
+            String value = "[empty]";
+            super.contentHandler.characters(value.toCharArray(), 0, value.length());
+            super.contentHandler.endElement(NAMESPACE, "line", "line");
+        }
+        super.contentHandler.endElement(NAMESPACE, "value", "value");
 
+        addValue("size", size + " items in cache (" + empty + " are empty)");
         endGroup();
     }