Title: [waffle-scm] [386] trunk/distribution/src/site/content: Added docs for monitors.

Diff

Modified: trunk/distribution/src/site/content/action-methods.html (385 => 386)

--- trunk/distribution/src/site/content/action-methods.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/action-methods.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -242,10 +242,13 @@
   </p>
 
   <ul>
-    <li><b>View</b> - An ActionMethod which returns an instance of <i>org.codehaus.waffle.view.View</i> or
-      <i>org.codehaus.waffle.view.RedirectView</i> will forward or redirect, respectively. By default Waffle assumes
+    <li><b>View</b> - An ActionMethod which returns an instance of <i><a href=""
+        org.codehaus.waffle.view.View</a></i> or
+      <i><a href=""
+        org.codehaus.waffle.view.RedirectView</a></i> will forward or redirect, respectively. By default Waffle assumes
       that each View defines the full URL the user is to be sent to. This behavior can be altered by definning a
-      different implementation of the <i>org.codehaus.waffle.view.ViewResolver</i>. Waffle was built to be pluggable
+      different implementation of the <i><a href=""
+        org.codehaus.waffle.view.ViewResolver</a></i>. Waffle was built to be pluggable
       this is the first example of how Waffle components can be customized and configured. Read the section on
       <a href="" pluggability</a> for further details.
     </li>

Modified: trunk/distribution/src/site/content/i18n.html (385 => 386)

--- trunk/distribution/src/site/content/i18n.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/i18n.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -14,9 +14,11 @@
   same file name that other web action frameworks use. The OS will load
   the most appropriate for the locale that happens to be in the WAR
   file.</li>
-  <li>A component <b>org.codehaus.waffle.i18n.DefaultMessageResourcesConfiguration</b>
+  <li>A component <b><a href=""
+        org.codehaus.waffle.i18n.DefaultMessageResourcesConfiguration</a></b>
   that provides default messages, can be swapped for your own
-  implementation of <b>org.codehaus.waffle.i18n.MessageResources</b>.
+  implementation of <b><a href=""
+        org.codehaus.waffle.i18n.MessageResources</a></b>.
   This is a more programatic way of handling message localisation. It
   needs to be registered in <b>web.xml</b> (refer to <a
     href=""

Modified: trunk/distribution/src/site/content/interceptors.html (385 => 386)

--- trunk/distribution/src/site/content/interceptors.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/interceptors.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -68,7 +68,8 @@
 
     <p>
       You can ensure that your MethodInterceptors are called in a particular order by having them implement the
-      <i>org.codehaus.waffle.action.intercept.Sortable</i> interface. Non-Sortable MethodInterceptors will be placed at
+      <i><a href=""
+        org.codehaus.waffle.intercept.Sortable</a></i> interface. Non-Sortable MethodInterceptors will be placed at
       the end of the InterceptorChain.
     </p>
   </body>

Modified: trunk/distribution/src/site/content/lifecycle.html (385 => 386)

--- trunk/distribution/src/site/content/lifecycle.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/lifecycle.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -10,7 +10,8 @@
 
   <p>
     Waffle provides lifecycle support which means we can register component with the Registrar that implement
-    <b>org.codehaus.waffle.Startable</b>.  This will allow a component to be started as soon as a context (application,
+    <b><a href=""
+        org.codehaus.waffle.Startable</a></b>.  This will allow a component to be started as soon as a context (application,
     session or request) is initialized and stopped when the context is destroyed. This is an extremly useful and
     powerful ability.  With this feature it is possible to register "Janitor" type of components that will
     cleanup resources when their particular context is being destroyed (i.e. closing jdbc resources).

Added: trunk/distribution/src/site/content/monitors.html (0 => 386)

--- trunk/distribution/src/site/content/monitors.html	                        (rev 0)
+++ trunk/distribution/src/site/content/monitors.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <title>Monitors</title>
+  </head>
+  <body>
+
+  <h2>Monitors</h2>
+  <p>
+    Waffle was designed to provide easy monitoring of every aspect of its functionality.
+    The Monitor Pattern has been adopted to allow the use to be notified of the relevant events.
+    Each major area of functionaliy has a corresponding Monitor interface which defines events:
+  </p>
+  <table class="bodyTable">
+    <tbody>
+      <tr class="a">
+        <td align="left"><b>Monitor</b></td>
+      </tr>      
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ActionMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.BindMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ContextMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ControllerMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.RegistrarMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ServletMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ValidationMonitor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.monitor.ViewMonitor</a></td>
+      </tr>
+    </tbody>
+  </table>
+
+  <h2>Writing Monitors</h2>
+  
+  <p>
+    Waffle provides an abstract implementation of <b>all</b> the monitor interfaces in 
+    <b><a href=""
+        org.codehaus.waffle.monitor.AbstractWritingMonitor</a></b> and two concrete implementations:
+    <b><a href=""
+        org.codehaus.waffle.monitor.CommonsLoggingMonitor</a></b> (which delegates to Commons Logging) 
+    and <b><a href=""
+        org.codehaus.waffle.monitor.SilentMonitor</a></b> (which writes nothing).
+  </p>
+    
+  <p>
+    <b><a href=""
+        org.codehaus.waffle.monitor.AbstractWritingMonitor</a></b> defines a default 
+        <b><a href=""
+        org.codehaus.waffle.monitor.Monitor.Level</a> for each event and a default message
+        template, which can be overridden via the <b>eventLevels()</b> and <b>eventTemplates()</b>
+        methods.  By convention, the levels and templates are held in maps keyed on the event name:
+        
+   <textarea class="xml:nogutter:nocontrols" name="code">
+        protected Map<String, Level> eventLevels(){
+            Map<String, Level> levels = super.eventLevels();
+            // change from INFO to DEBUG
+            levels.put("defaultActionMethodFound", DEBUG); 
+            return levels;
+        }         
+        protected Map<String, String> eventTemplates(){
+            Map<String, Level> templates = super.eventTemplates();
+            // changed text to be more verbose
+            templates.put("defaultActionMethodFound", "The default ActionMethod has been found: {0}"); 
+            return templates;
+        }         
+   </textarea>
+  </p>
+  
+</body>
+
+</html>

Modified: trunk/distribution/src/site/content/pluggability.html (385 => 386)

--- trunk/distribution/src/site/content/pluggability.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/pluggability.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -26,73 +26,115 @@
 </textarea>
 
 <p>
-  The <b>param-name</b> defines the interface of the component to
-  be over-written and the <b>param-value</b> represents the implementing
-  class. The following table lists all of the components that can
-  currently be customized in Waffle:
-</p>
-<table class="bodyTable">
-  <tbody>
-    <tr class="a">
-      <td align="left"><b>Key Interface</b></td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.action.ActionMethodExecutor</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.action.ActionMethodResponseHandler</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.action.ArgumentResolver</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.action.MethodDefinitionFinder</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.action.MethodNameResolver</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.bind.BindErrorMessageResolver</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.bind.DataBinder</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.bind.RequestAttributeBinder</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.context.ContextContainerFactory</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.controller.ControllerDefinitionFactory</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.controller.ControllerNameResolver</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.i18n.MessageResources</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.monitor.ActionMonitor</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.monitor.BindMonitor</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.monitor.ServletMonitor</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.validation.Validator</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.view.ViewDispatcher</td>
-    </tr>
-    <tr class="b">
-      <td align="left">org.codehaus.waffle.view.ViewResolver</td>
-    </tr>
-  </tbody>
-</table>
-
+    The <b>param-name</b> defines the interface of the component to
+    be over-written and the <b>param-value</b> represents the implementing
+    class. The following table lists the components that can
+    currently be customized in Waffle (excluding <a href=""
+  </p>
+  <table class="bodyTable">
+    <tbody>
+      <tr class="a">
+        <td align="left"><b>Interface</b></td><td align="left"><b>Default Implementation</b></td>
+      </tr>      
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.ActionMethodExecutor</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.InterceptingActionMethodExecutor</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.ActionMethodResponseHandler</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.DefaultActionMethodResponseHandler</a></td>
+      </tr>
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.ArgumentResolver</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.HierarchicalArgumentResolver</a></td>
+      </tr>
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.MethodDefinitionFinder</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.AnnotatedMethodDefinitionFinder</a></td>
+      </tr>
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.MethodNameResolver</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.action.RequestParameterMethodNameResolver</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.BindErrorMessageResolver</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.DefaultBindErrorMessageResolver</a></td>
+      </tr>
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.DataBinder</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.OgnlDataBinder</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.RequestAttributeBinder</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.IntrospectingRequestAttributeBinder</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.TypeConverter</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.bind.OgnlTypeConverter</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.context.ContextContainerFactory</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.context.PicoContextContainerFactory</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.controller.ControllerDefinitionFactory</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.controller.ContextControllerDefinitionFactory</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.controller.ControllerNameResolver</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.controller.ContextPathControllerNameResolver</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.i18n.MessageResources</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.i18n.DefaultMessageResources</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.validation.Validator</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.validation.DefaultValidator</a></td>
+      </tr>
+      <tr class="a">
+        <td align="left"><a href=""
+        org.codehaus.waffle.view.ViewDispatcher</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.view.DefaultViewDispatcher</a></td>
+      </tr>
+      <tr class="b">
+        <td align="left"><a href=""
+        org.codehaus.waffle.view.ViewResolver</a></td>
+        <td align="left"><a href=""
+        org.codehaus.waffle.view.DefaultViewResolver</a></td>
+      </tr>
+    </tbody>
+  </table>
+  
 <p>
   Most application will never need to deal with any of these
   components. But it is nice to know that you can change any of the
@@ -111,7 +153,6 @@
   for those components that should be instantiated new each time.
 </p>
 
-
 <textarea class="xml:nogutter:nocontrols" name="code">
   <context-param>
     <param-name>register:java.util.List</param-name>
@@ -120,7 +161,9 @@
 </textarea>
 
 <p>
-  For a more concrete example Waffle defines the interface <i>org.codehaus.waffle.bind.WaffleTypeConverter</i>.
+  For a more concrete example Waffle defines the interface <i>
+  <a href=""
+        org.codehaus.waffle.bind.WaffleTypeConverter</a></i>.
   Implementations of this interface allows you to write custom conversions
   for a specific class type. The following is an example of how you can
   register your converters with Waffle. Waffle's <i>OgnlTypeConverter</i>

Modified: trunk/distribution/src/site/content/registrar.html (385 => 386)

--- trunk/distribution/src/site/content/registrar.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/registrar.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
 <html>
 <head>

Modified: trunk/distribution/src/site/content/sitemap.xml (385 => 386)

--- trunk/distribution/src/site/content/sitemap.xml	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/sitemap.xml	2007-11-16 00:45:27 UTC (rev 386)
@@ -32,6 +32,7 @@
     <page>pluggability.html</page>
     <page>binding-validation.html</page>
     <page>lifecycle.html</page>
+    <page>monitors.html</page>
     <page>ajax.html</page>
     <page>webxml.html</page>
     <page>webapp-structure.html</page>

Modified: trunk/distribution/src/site/content/tutorials/tutorial-one.html (385 => 386)

--- trunk/distribution/src/site/content/tutorials/tutorial-one.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/tutorials/tutorial-one.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -72,18 +72,22 @@
 files we still must create a <b>web.xml</b>. The web.xml example below
 has four points worth mentioning.</p>
 <ol type="1">
-  <li><b>org.codehaus.waffle.registrar.Registrar</b> is the key
+  <li><b><a href=""
+        org.codehaus.waffle.registrar.Registrar</a></b> is the key
   used to register your applications custom Registrar. The key is the
   fully qualified name of the basic Registrar interface.</li>
-  <li><b>org.codehaus.waffle.context.pico.PicoWaffleContextListener</b>
+  <li><b><a href=""
+        org.codehaus.waffle.context.pico.PicoWaffleContextListener</a></b>
   needs to be registered as a listener so that Waffle can be notified of
   context level (application, session) events.</li>
   <li>
-    <b>org.codehaus.waffle.context.WaffleRequestFilter</b> this is the Filter Waffle uses to handle request level
+    <b><a href=""
+        org.codehaus.waffle.context.WaffleRequestFilter</a></b> this is the Filter Waffle uses to handle request level
     events. This is superior to a RequestAttributeListeners implementation because we can ensure a request level
     container will only be created when appropriate (i.e. not when images or cascading style sheets are requested).
   </li>
-  <li><b>org.codehaus.waffle.servlet.WaffleServlet</b> is Waffle's front controller for handling requests.</li>
+  <li><b><a href=""
+        org.codehaus.waffle.servlet.WaffleServlet</a></b> is Waffle's front controller for handling requests.</li>
 </ol>
 
 <textarea class="xml:nogutter:nocontrols" name="code">

Modified: trunk/distribution/src/site/content/tutorials/tutorial-two.html (385 => 386)

--- trunk/distribution/src/site/content/tutorials/tutorial-two.html	2007-11-16 00:14:57 UTC (rev 385)
+++ trunk/distribution/src/site/content/tutorials/tutorial-two.html	2007-11-16 00:45:27 UTC (rev 386)
@@ -212,11 +212,14 @@
 thrown, from an <b>ActionMethod</b> after it has been invoked. Below we
 define defines how each case is handled in the Waffle framework:</p>
 <ul>
-  <li><b>View</b> - An ActionMethod which returns an instance of <i>org.codehaus.waffle.view.View</i>
-  or <i>org.codehaus.waffle.view.RedirectView</i> will forward or
+  <li><b>View</b> - An ActionMethod which returns an instance of <i><a href=""
+        org.codehaus.waffle.view.View</a></i>
+  or <i><a href=""
+        org.codehaus.waffle.view.RedirectView</a></i> will forward or
   redirect, respectively. By default Waffle assumes that each View
   defines the full URL the user is to be sent to. This behavior can be
-  altered by definning a different implementation of the <i>org.codehaus.waffle.view.ViewResolver</i>.
+  altered by definning a different implementation of the <i><a href=""
+        org.codehaus.waffle.view.ViewResolver</a></i>.
   Waffle was built to be pluggable this is the first example of how
   Waffle components can be customized and configured. Read the section
   on Waffle's <a href="" for further


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to