- Revision
- 386
- Author
- mauro
- Date
- 2007-11-15 18:45:27 -0600 (Thu, 15 Nov 2007)
Log Message
Added docs for monitors. Updated all references to classes to link to the javadocs.
Modified Paths
- trunk/distribution/src/site/content/action-methods.html
- trunk/distribution/src/site/content/i18n.html
- trunk/distribution/src/site/content/interceptors.html
- trunk/distribution/src/site/content/lifecycle.html
- trunk/distribution/src/site/content/pluggability.html
- trunk/distribution/src/site/content/registrar.html
- trunk/distribution/src/site/content/sitemap.xml
- trunk/distribution/src/site/content/tutorials/tutorial-one.html
- trunk/distribution/src/site/content/tutorials/tutorial-two.html
Added Paths
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:
