You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2015/07/19 23:21:30 UTC

svn commit: r958985 [4/29] - in /websites/production/tapestry/content: ./ 2009/09/13/ 2009/10/27/ 2009/11/25/ 2010/07/18/ 2010/07/24/ 2010/10/11/ 2010/10/31/ 2010/11/18/ 2010/12/16/ 2010/12/17/ 2011/01/18/ 2011/03/23/ 2011/03/29/ 2011/03/30/ 2011/03/31...

Modified: websites/production/tapestry/content/built-in-mixins.html
==============================================================================
--- websites/production/tapestry/content/built-in-mixins.html (original)
+++ websites/production/tapestry/content/built-in-mixins.html Sun Jul 19 21:21:27 2015
@@ -57,7 +57,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>Tapestry includes the following mixins out-of-the-box.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html">Autocomplete</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>modifies a text field to provide for auto-completion of text using values retrieved from the server as the user types. <a shape="rect" href="ajax-and-zones.html#AjaxandZones-autocomplete">See instructions</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/corelib/mixins/Confirm.html">Confirm</a></td><td colspan="1" rowspan="1" class="confluenceTd">attached to a Form or link component, runs a modal-dialog to force the user to confirm the behavi
 or.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/DiscardBody.html">DiscardBody</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>discards a component's body. Returns false from the BeforeRenderBody phase, which prevents the rendering of the body.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/FormFieldFocus.html">FormFieldFocus</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>instruments the outer Form on which component the focus should be activated. Replaced by OverrideFieldFocus starting in Tapestry 5.4.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestr
 y5/corelib/mixins/FormGroup.html">FormGroup</a></td><td colspan="1" rowspan="1" class="confluenceTd">attached to a field to render an enclosing &lt;div&gt; element and label</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/NotEmpty.html">NotEmpty</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>attaches to any component that renders an element. At the end of the render, if the element is empty, then a non-breaking space (&amp;nbsp;) is injected into the element.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html">OverrideFieldFocus</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when attached to a form field, causes that field to gain focus. Starting in 
 Tapestry 5.4, this supersedes FormFieldFocus.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderClientId.html">RenderClientId</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>forces a client element to render its client id by ensuring that "getClientId" is called.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderDisabled.html">RenderDisabled</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>renders an "disabled" attribute if the containing component is disabled</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderInforma
 ls.html">RenderInformals</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>renders out all informal parameters, at the end of the BeginRender phase. This mixin can be used with components that render a single tag inside the BeginRender phase.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderNotification.html">RenderNotification</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>triggers event notifications to identify when it enters the BeginRender and AfterRender render phases</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/TriggerFragment.html">TriggerFragment</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when applied to a Checkbox or Radio componen
 t, links the input field and a FormFragment, making the field control the client-side visibility of the FormFragment</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/ZoneRefresh.html">ZoneRefresh</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>periodically refreshes a Zone by triggering an event on the server using ajax requests.</p></td></tr></tbody></table></div></div>
+<div id="ConfluenceContent"><p>Tapestry includes the following mixins out-of-the-box.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html">Autocomplete</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>modifies a text field to provide for auto-completion of text using values retrieved from the server as the user types. <a shape="rect" href="ajax-and-zones.html">See instructions</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/corelib/mixins/Confirm.html">Confirm</a></td><td colspan="1" rowspan="1" class="confluenceTd">attached to a Form or link component, runs a modal-dialog to force the user to confirm the behavior.</td></tr><tr><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/DiscardBody.html">DiscardBody</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>discards a component's body. Returns false from the BeforeRenderBody phase, which prevents the rendering of the body.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/FormFieldFocus.html">FormFieldFocus</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>instruments the outer Form on which component the focus should be activated. Replaced by OverrideFieldFocus starting in Tapestry 5.4.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/corelib/mixins/FormGrou
 p.html">FormGroup</a></td><td colspan="1" rowspan="1" class="confluenceTd">attached to a field to render an enclosing &lt;div&gt; element and label</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/NotEmpty.html">NotEmpty</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>attaches to any component that renders an element. At the end of the render, if the element is empty, then a non-breaking space (&amp;nbsp;) is injected into the element.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html">OverrideFieldFocus</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when attached to a form field, causes that field to gain focus. Starting in Tapestry 5.4, this superse
 des FormFieldFocus.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderClientId.html">RenderClientId</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>forces a client element to render its client id by ensuring that "getClientId" is called.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderDisabled.html">RenderDisabled</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>renders an "disabled" attribute if the containing component is disabled</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderInformals.html">RenderInformals</
 a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>renders out all informal parameters, at the end of the BeginRender phase. This mixin can be used with components that render a single tag inside the BeginRender phase.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderNotification.html">RenderNotification</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>triggers event notifications to identify when it enters the BeginRender and AfterRender render phases</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/TriggerFragment.html">TriggerFragment</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when applied to a Checkbox or Radio component, links the input field a
 nd a FormFragment, making the field control the client-side visibility of the FormFragment</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/ZoneRefresh.html">ZoneRefresh</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>periodically refreshes a Zone by triggering an event on the server using ajax requests.</p></td></tr></tbody></table></div></div>
 </div>
 
 <div class="clearer"></div>

Added: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary file - no diff available.

Propchange: websites/production/tapestry/content/cache/main.pageCache
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: websites/production/tapestry/content/case-insensitivity.html
==============================================================================
--- websites/production/tapestry/content/case-insensitivity.html (original)
+++ websites/production/tapestry/content/case-insensitivity.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -57,15 +67,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="tapestry-ioc-configuration.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="autoloading-modules.html"><i
 mg align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+<div id="ConfluenceContent">
 
 <h1 id="CaseInsensitivity-CaseInsensitivity">Case Insensitivity</h1>
 
@@ -80,16 +82,7 @@ Thus, <code>getService("Baz", Baz.class)
 <p>Just case is ignored &#8211; other punctuation, as well as whitespace, must exactly match.</p>
 
 <p>Under the covers, this is supported by the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/CaseInsensitiveMap.html">CaseInsensitiveMap</a> class.</p>
-
-<style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="tapestry-ioc-configuration.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="autoloading-modules.html"><i
 mg align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
+</div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/chainbuilder-service.html
==============================================================================
--- websites/production/tapestry/content/chainbuilder-service.html (original)
+++ websites/production/tapestry/content/chainbuilder-service.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -57,15 +67,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="symbols.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="symbols.html">Symbols</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="pipelinebuilder-service.html"><img align="middle" border="0" src="https://cwi
 ki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+<div id="ConfluenceContent">
 
 <h1 id="ChainBuilderService-ChainofCommand">Chain of Command</h1>
 
@@ -89,11 +91,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 <p>Because this pattern is used so often inside Tapestry, a built-in service exists to create implementations of the pattern as needed. The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/ChainBuilder.html">ChainBuilder</a> service takes care of all the work:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 public interface ChainBuilder
 {
   &lt;T&gt; T build(Class&lt;T&gt; commandInterface, List&lt;T&gt; commands);
-}]]></script>
+}</pre>
 </div></div>
 
 <p>All that generics parameterization just ensures that the command interface matches the items in the list, and confirms that a single instance of the command interface will be returned.</p>
@@ -103,13 +105,13 @@ public interface ChainBuilder
 <p>This can be used inside a service builder method. Nothing says a service builder method just has to instantiate a class; it is only required to return an appropriate object. We can just let the ChainBuilder service create that object.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   public static MyChainService build(List&lt;MyChainService&gt; commands,
-    @InjectService(&quot;ChainBuilder&quot;)
+    @InjectService("ChainBuilder")
     ChainBuilder chainBuilder)
   {
      return chainBuilder.build(MyChainService.class, commands);
-  }]]></script>
+  }</pre>
 </div></div>
 
 <p>Here, the behavior of the MyChainService is defined by its configuration: an ordered list of MyChainService commands that are contributed by one or more modules.</p>
@@ -117,16 +119,7 @@ public interface ChainBuilder
 <p>Internally, the ChainBuilder creates a new class that implements the service interface. The list of commands is converted into an array, which is used inside the service implementation (for maximum efficiency). Therefore, changing the list after creating the chain instance will not affect the chain instance's behavior.</p>
 
 <p>ChainBuilder will reuse the fabricated class for any number of chains of the same command interface.</p>
-
-<style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="symbols.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="symbols.html">Symbols</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="pipelinebuilder-service.html"><img align="middle" border="0" src="https://cwi
 ki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
+</div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/class-reloading.html
==============================================================================
--- websites/production/tapestry/content/class-reloading.html (original)
+++ websites/production/tapestry/content/class-reloading.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -125,7 +135,7 @@
 <p>For example, your service may be in the business of creating new classes based on component classes, and keep a cache of those classes:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 
 public class MyServiceImpl implements MyService, InvalidationEventListener
 {
@@ -135,7 +145,7 @@ public class MyServiceImpl implements My
 
   public void objectWasInvalidated() { cache.clear(); }
 }
-]]></script>
+</pre>
 </div></div>
 
 <p>Here, the service implementation implements the InvalidationEventListener interface, as well as its service interface. The question is: how does it register for notifications?</p>
@@ -143,14 +153,14 @@ public class MyServiceImpl implements My
 <p>In your module, you will want to use a service builder method, such as:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 public static MyService buildMyService(@Autobuild MyServiceImpl service, @ComponentClasses InvalidationEventHub hub)
 {
   hub.addInvalidationListener(service);
 
   return service;
 }
-]]></script>
+</pre>
 </div></div>
 
 <p>This is the intent of service builder methods; to do more than just injecting dependencies.</p>
@@ -177,9 +187,9 @@ public static MyService buildMyService(@
 <p>Starting with Tapestry 5.3, Live Class Reloading only works when not in "Production Mode". Check your application module (usually AppModule.java) to be sure you have:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-configuration.add(SymbolConstants.PRODUCTION_MODE, &quot;false&quot;);
-]]></script>
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
+configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
+</pre>
 </div></div>
 
 <p>and that this isn't being overridden to "true" on your application's startup command line.</p>
@@ -210,16 +220,7 @@ configuration.add(SymbolConstants.PRODUC
 
 <ul><li>Be sure your project source files (your workspace in Eclipse, for example), are on a local drive, NOT a network location. Network drives are always slower, and the file system scanning needed for LCR can add a noticable lag if I/O is slow. If you use Maven, be sure to put your local repository (e.g. ~/.m2/repository) on a local drive for similar reasons.</li><li>Since LCR adds classes to your PermGen space, you may be running low on PermGen memory (and may eventually get a "java.lang.OutOfMemoryError: PermGen space" error). Try increasing PermGen size with a JVM argument of something like <code>-XX:MaxPermSize=400m</code></li></ul>
 
-
-<style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="runtime-exceptions.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="runtime-exceptions.html">Runtime Exceptions</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="user-guide.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="user-guide.html">User Guide</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="component-reference.html">Component Reference</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="component-reference.html"><img 
 align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
+</div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/client-side-javascript.html
==============================================================================
--- websites/production/tapestry/content/client-side-javascript.html (original)
+++ websites/production/tapestry/content/client-side-javascript.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -59,24 +69,24 @@
 <div id="content">
 <div id="ConfluenceContent"><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px">
 <div class="error"><span class="error">Error formatting macro: contentbylabel: com.atlassian.confluence.api.service.exceptions.BadRequestException: Could not parse cql : null</span> </div></div><p>Perhaps nothing in Tapestry has changed over the years so much as the way client-side JavaScript is supported. From the get go, the goal was to make JavaScript a first-class citizen in the Tapestry world, and make it easy to encapsulate JavaScript within components.</p><p>The <a shape="rect" href="legacy-javascript.html">legacy JavaScript</a> page discusses the earlier approaches; the main feature of Tapestry 5.4 is a total rewrite of all things client-side, with the following goals:</p><ul><li>Break the hard linkage of Tapestry to <a shape="rect" class="external-link" href="http://prototypejs.org/" >Prototype</a> and <a shape="rect" class="external-link" href="http://script.aculo.us/" >Scriptaculous</a>, by introducing an abstraction layer</li><li>Remove the clumsy <code>Tapestry</code> a
 nd <code>T5</code> "namespaces"</li><li>Reduce the amount of page-specific JavaScript initialization</li><li>Make it easier to override behavior associated with client elements</li><li>Support CoffeeScript and (potentially) other languages that target JavaScript</li><li>Organize client-side JavaScript using <a shape="rect" href="javascript-modules.html">modules</a></li><li>Make pages load faster</li><li>Integrate <a shape="rect" class="external-link" href="http://getbootstrap.com/" >Bootstrap</a></li><li>Make it easier for rich client libraries such as&#160;<a shape="rect" class="external-link" href="http://backbonejs.org/" >Backbone</a> or&#160;<a shape="rect" class="external-link" href="https://angularjs.org/" >AngularJS</a> to operate within a page</li><li>Properly document Tapestry's client support</li></ul><h3 id="Client-SideJavaScript-TheOverallVision">The Overall Vision</h3><p>The overall vision for the client-side in Tapestry is encapsulation, at several different levels.</p
 ><p>On the server-side, a Tapestry component (or mixin) will exposes configurable parameters. The component will write DOM elements or attributes, as well as some amount of JavaScript initialization. The encapsulation here allows developers with little or no knowledge of client-side JavaScript to enjoy the benefits (as consumers of components created by developers who are versed in client-side coding and Tapestry components).</p><p>On the client-side, the JavaScript combines with the special markup to produce the behaviors that are desired ... anything from controlling the initial focus field, to performing client-side input field validation, to running complex Ajax workflows.</p><p>Where possible, all of this behavior is driven by <code>data-</code> attributes on the elements, combined with top-level event handlers. On the client side, events are used not only to respond directly to user actions (with "click", "mouseOver", "submit", or other event listeners) but also to allow eleme
 nts to collaborate in various ways. &#160;For example, input validation is based on triggering a specific custom event on each form control element, and top-level event handlers can then manage the validation for any number of fields.</p><h3 id="Client-SideJavaScript-Prototypevs.jQuery">Prototype vs. jQuery</h3><p>For several years, it has been obvious that Tapestry "backed the wrong horse" with respect to Prototype and jQuery. When the first code was being laid down in 2007 or 2008, it wasn't so clear that jQuery with its odd abstractions and unfamiliar approach, would go on to conquer the world. Meanwhile, Prototype was very strongly integrated into Ruby on Rails and had first class documentation and books.</p><p>That being said, jQuery may not be the be-all and end-all. Tapestry 5.4 introduces an abstraction layer, that allows many components to write code that doesn't care whether the foundation framework in Prototype or jQuery. This is especially useful during the arduous proce
 ss of moving Tapestry 5.3 client-side code forward to 5.4.</p><p>If you like jQuery then there's no problem: write your application using just jQuery and you can ignore a lot of the features in the abstraction layer. Your code will likely be just a bit more efficient.</p><p>If you are building a reusable component or library, writing to the abstraction layer may be worth the effort; it is entirely possible that someone may write a replacement for the abstraction layer that targets your favorite foundation framework, such as ExtJS, MooTools, or something not even known of today.</p><h3 id="Client-SideJavaScript-Heavyvs.Light">Heavy vs. Light</h3><p>Earlier Tapestry JavaScript was&#160;<em>heavy</em>. Essentially, each component would write some very specific JavaScript initialization that would include the component's DOM id and many other details. This initialization would reference a function on the <code>T5.inits</code> namespace.</p><p>The function there would typically locate th
 e specific element by its client DOM id, then attach event handlers to the one element. It might also create some form of client-side controller object. There were issues due to this: for complex pages (or perhaps even typical pages), the "blob" of JavaScript initialization at the bottom of the page could be quite large.</p><p>The use of individual event handlers meant that Tapestry applications would use more client-side objects that a bespoke jQuery solution ... because the normal approach in jQuery is to attach a single event handler to the document or body that handles any events that bubble up to the top&#160;<em>and</em> match a CSS selector.</p><p>In Tapestry 5.4, the goal is to make things&#160;<em>light</em>. In most cases, there will not be a specific initialization function; instead a <a shape="rect" href="javascript-modules.html">JavaScript module</a> will be loaded, and it will install one or more top-level event handlers; the elements will have <a shape="rect" class="e
 xternal-link" href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes" ><code>data-</code> attributes</a> that are used by those top level handlers to recognize which elements they are responsible for.</p><p>This is more of a full lifecycle approach; adding or removing page content (such as with a&#160;<a shape="rect" href="ajax-and-zones.html">Zone</a> component) is both cheaper and less error prone using top-level event handlers than per-element event handlers; there's also less of a chance of memory leaks under Internet Explorer.</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Internet Explorer is pretty well known for memory leaks; its DOM and JavaScript run in different kinds of memory, which are garbage collected individually. This means that a reference from JavaScript t
 o a DOM element will keep the DOM element live, even if that's the only reference to the DOM element anywhere. Meanwhile, event handler JavaScript functions are kept live from the DOM element, making a cycle that can't be broken. Libraries like Prototype and jQuery have to expend some effort to break this link by unregistering event handlers from DOM elements when removing them from the DOM.</p></div></div><p>A specific example of this approach is how client-side validation now works; in the past, there was a complex system of classes and event listeners that were specific to each individual field. Field controllers had to register with Form controllers. Validators had to register with Field controllers.</p><p>Under 5.4, there are a number of&#160;<code>data-</code> attributes that can be attached to any DOM element. A form will search for elements with a non-blank value for&#160;<code>data-validation</code>; each such element has a series of custom events triggered on it. The top-l
 evel handlers for those events will receive notifications for elements throughout the document.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>t5/core/validation.coffee (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[define [&quot;underscore&quot;, &quot;./dom&quot;, &quot;./events&quot;, &quot;./utils&quot;, &quot;./messages&quot;, &quot;./fields&quot;],
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">define ["underscore", "./dom", "./events", "./utils", "./messages", "./fields"],
   (_, dom, events, utils, messages) -&gt;
 
 
   ...
- 
-    dom.onDocument events.field.optional, &quot;[data-optionality=required]&quot;, (event, memo) -&gt;
+&#160;
+    dom.onDocument events.field.optional, "[data-optionality=required]", (event, memo) -&gt;
       if utils.isBlank memo.value
-        memo.error =  (@attr &quot;data-required-message&quot;) or &quot;REQUIRED&quot;
+        memo.error =  (@attr "data-required-message") or "REQUIRED"
 
 
   ...
- 
-    dom.onDocument events.field.validate, &quot;[data-validate-min-length]&quot;, (event, memo) -&gt;
-      min = parseInt @attr &quot;data-validate-min-length&quot;
+&#160;
+    dom.onDocument events.field.validate, "[data-validate-min-length]", (event, memo) -&gt;
+      min = parseInt @attr "data-validate-min-length"
       if memo.translated.length &lt; min
-        memo.error = (@attr &quot;data-min-length-message&quot;) or &quot;TOO SHORT&quot;
-        return false]]></script>
+        memo.error = (@attr "data-min-length-message") or "TOO SHORT"
+        return false</pre>
 </div></div><p>The&#160;<code>t5/core/events</code> module defines constants for different custom event name, it's also a handy place to <a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/coffeescript/events.html">hang documentation</a> about those events.</p><p>The&#160;<code>t5/core/dom</code> namespace is the abstraction layer. &#160;<code>onDocument</code> is a handy way to attach a top-level event handler.</p><p>Fields that are required will have the attribute&#160;<code>data-optionality=required</code>; the event handler is passed a&#160;<em>memo</em> object that includes a&#160;<code>value</code> property, the value from the field. This makes it easier to generate an error if the value is blank. &#160;Because the exact error message may be customized or localized, it is provided in the element as well, as the&#160;<code>data-required-message</code> attribute. Setting&#160;<code>memo.error</code> to a validation error string will cause the field to be d
 ecorated with the error message and will indicate that the form itself is in error and not ready for submission.</p><p>A different event is triggered after the optionality check; The&#160;<code>memo.translated</code> property is the value translated before validation (for a numeric field, it would be translated from a string to a number, for example). Again, the&#160;<code>error</code> property is set, and the&#160;<code>return false</code> ensures that the event will stop bubbling to containing elements or event handlers.</p><p>What's very useful in this overall approach is that it no longer matters whether the fields were rendered by Tapestry on the server, or rendered locally (perhaps using Backbone or AngularJS) on the client. As long as they have the correct&#160;<code>data-</code> attributes, then they can participate in Tapestry's overall form validation and submission cycle, and even leverage the default validation decoration behavior.</p><h3 id="Client-SideJavaScript-TheAbs
 tractionLayer">The Abstraction Layer</h3><p>The abstraction layer is defined by the&#160;<code>t5/core/dom</code> module. This module is two different implementations - one is a wrapper around Prototype, and the other is a wrapper around jQuery.</p><p>The result is a a bit schizophrenic; it mostly looks like jQuery, but events look a bit more like Prototype. It also doesn't have jQuery's concept of operating on a matched set of elements.</p><p>The abstraction is both transitional and permanent. It is transitional in that it is about allowing existing sites with a heavy investment in Prototype to continue to operate with Prototype in the mix. It is permanent &#160;in that it is desirable for third party library developers to keep an abstraction layer between Tapestry's client-side code and any underlying framework, so that particular applications can provide their own abstraction layer and operate without breaking built-in components.</p><p>Most applications should transition to jQue
 ry and feel free to use jQuery directly. &#160;It is still best to inject module <span style="font-family: monospace;">jquery</span>&#160;into your own modules (usually as parameter&#160;<code>$</code>).&#160;</p><p>If you are writing a third-party application and want to maximize re-use, then use the abstraction.</p><p>It is often easier to use the abstraction to respond correctly to custom Tapestry events.</p></div>
 </div>
 

Modified: websites/production/tapestry/content/coffeescript.html
==============================================================================
--- websites/production/tapestry/content/coffeescript.html (original)
+++ websites/production/tapestry/content/coffeescript.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -59,11 +69,11 @@
 <div id="content">
 <div id="ConfluenceContent"><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px">
 <div class="error"><span class="error">Error formatting macro: contentbylabel: com.atlassian.confluence.api.service.exceptions.BadRequestException: Could not parse cql : null</span> </div></div><p><strong>CoffeeScript</strong> (<a shape="rect" class="external-link" href="http://coffeescript.org" >http://coffeescript.org</a>) is a language that compiles down to JavaScript.</p><p><em>Starting with version 5.4,</em> Tapestry can automatically compile your CoffeeScript code into JavaScript on the fly. This is done with the optional tapestry-webresources module. It is highly recommended for anyone who wants to use CoffeeScript in their application ... just let Tapestry do the compilation at runtime (with access to Tapestry's full exception reporting capabilities).</p><p>To use the tapestry-webresources module, just add the JAR to your project. For example, if you're using Maven:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="borde
 r-bottom-width: 1px;"><b>pom.xml (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.tapestry&lt;/groupId&gt;
     &lt;artifactId&gt;tapestry-webresources&lt;/artifactId&gt;
     &lt;version&gt;${tapestry-release-version}&lt;/version&gt;
-&lt;/dependency&gt;]]></script>
+&lt;/dependency&gt;</pre>
 </div></div><p>All of Tapestry's own client-side code is written in CoffeeScript and compiled, at <em>build</em> time, to JavaScript.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>You are completely free to use either JavaScript or CoffeeScript in your Tapestry application.</p></div></div><h2 id="CoffeeScript-CoffeeScriptversusJavaScript">CoffeeScript versus JavaScript</h2><p>CoffeeScript can be quite controversial, but also quite effective.</p><p>On the controversial side, it uses significant whitespace to denote blocks of code (like Python or Haskell) rather than curl braces (like Java, JavaScript, or Ruby). In fact, it draws influences from a wide rage of other languages, incorporating many functional programming features, a rudimentary class system, string interpolation, destructuring assignment
 , and more.</p><p>However, for all that, it is very close to JavaScript; it simply rounds out many of the rough edges of JavaScript (and adds a few of its own). As wide ranging as CoffeeScript syntax can be, there's generally a very close mapping from CoffeeScript to JavaScript.</p><p>CoffeeScript code often approaches Python's goal of being a "executable psuedo-code"; code that looks like a placeholder that will actually run. Some people find it more pleasant to read than JavaScript ... more&#160;<em>essence</em> and less&#160;<em>ceremony</em>.</p><p>You can still write bad code in CoffeeScript. You can write bad code in any language.</p></div>
 </div>
 

Modified: websites/production/tapestry/content/community.html
==============================================================================
--- websites/production/tapestry/content/community.html (original)
+++ websites/production/tapestry/content/community.html Sun Jul 19 21:21:27 2015
@@ -57,7 +57,18 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>Tapestry has an active community of users and developers. This is an overview of how to participate, along with a list of some of the great contributions of the community members.</p><p></p><div class="toc-macro client-side-toc-macro" data-headerelements="H1,H2,H3,H4,H5,H6,H7"></div><h1 id="Community-GettingInvolved">Getting Involved</h1><h2 id="Community-ReportingProblems/GettingSupport">Reporting Problems / Getting Support</h2><p>Like all Apache projects, Tapestry uses mailing lists for most communication. You can subscribe by sending e-mail to the addresses below. For each list, there are subscribe, unsubscribe, and archive links. All Tapestry users are welcome to subscribe to any of these lists, however questions on how to <em>use</em> Tapestry in your application are best sent to the <em>user</em> mailing list.</p><p>Please note that the Nabble archives are set to read-only and don't allow for posting or answering using Nabble's web interface. You
  have to subscribe to the mailing list in order to post.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" class="confluenceTh"><p>Subscribe</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Unsubscribe</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Apache Archive</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Nabble Archive</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MarkMail Archive</p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry User List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:users-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:users-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td><td colspan="1" r
 owspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-users/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble.com/Tapestry-User-f2375125.html" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.users" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry Developer List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:dev-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:dev-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-dev/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble.com/Tapestry-Dev-f2438278.html" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.dev" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry Commits List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:commits-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:commits-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td>
 <td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-commits/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.commits" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Search Multiple Lists</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble.com/" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href=
 "http://tapestry.markmail.org/search/?q=#query:+page:1+state:facets" >tapestry.markmail.org</a></p></td></tr></tbody></table></div><p>Tapestry issues are tracked in the <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/TAP5">Apache JIRA</a>.</p><p>Unless your problem is clear as day, it's a good idea to discuss it on the Tapestry Users mailing list first, before adding an issue. At the same time, it's generally unlikely that a bug will be fixed <em>unless</em> a JIRA Issue is created.</p><p>Eric Raymond has a detailed <a shape="rect" class="external-link" href="http://catb.org/esr/faqs/smart-questions.html" >guide to asking questions the right way</a>. If you are not getting a response to your problem, it's likely because you aren't asking it the right way.</p><p>Just saying something is "broken" or "failed" is not enough. How did it fail? Did it do the wrong thing? Throw an exception? Not respond in any way? What exactly did you expect to happen? All
  of this information should be made available when looking for help, plus context on the general problem you were trying to solve in the first place (there may be a better solution entirely). Read Eric Raymond's guide ... it's fun and informative.</p><h2 id="Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing translations for Tapestry built-in messages</h2><p>If Tapestry's built-in messages aren't available in your language, you are welcome to contribute a new translation of the message catalogs. For easy instructions, see <a shape="rect" href="localization.html#Localization-ProvidingtranslationsforTapestrybuiltinmessages">Localization</a>.</p><h2 id="Community-SourceCodeAccess">Source Code Access</h2><p>Source code for Tapestry can be <a shape="rect" href="download.html">downloaded</a> along with pre-compiled binaries.</p><p>Tapestry uses <a shape="rect" class="external-link" href="http://git-scm.com/" >Git</a> to manage the project's source code.</p><p>Web 
 access to the Tapestry repository is available as <a shape="rect" class="external-link" href="https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git">GIT-WIP at Apache</a>.</p><p>Access using Git client:</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<div id="ConfluenceContent"><p>Tapestry has an active community of users and developers. This is an overview of how to participate, along with a list of some of the great contributions of the community members.</p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1437340791015 {padding: 0px;}
+div.rbtoc1437340791015 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1437340791015 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1437340791015">
+<ul class="toc-indentation"><li><a shape="rect" href="#Community-GettingInvolved">Getting Involved</a>
+<ul class="toc-indentation"><li><a shape="rect" href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting Support</a></li><li><a shape="rect" href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing translations for Tapestry built-in messages</a></li><li><a shape="rect" href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a shape="rect" href="#Community-BecomingaContributor">Becoming a Contributor</a></li><li><a shape="rect" href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul>
+</li><li><a shape="rect" href="#Community-CommunityContributions">Community Contributions</a>
+<ul class="toc-indentation"><li><a shape="rect" href="#Community-Modules">Modules</a></li></ul>
+</li><li><a shape="rect" href="#Community-Extensions">Extensions</a></li><li><a shape="rect" href="#Community-Tutorials">Tutorials</a></li><li><a shape="rect" href="#Community-IDEIntegrations">IDE Integrations</a></li></ul>
+</div><h1 id="Community-GettingInvolved">Getting Involved</h1><h2 id="Community-ReportingProblems/GettingSupport">Reporting Problems / Getting Support</h2><p>Like all Apache projects, Tapestry uses mailing lists for most communication. You can subscribe by sending e-mail to the addresses below. For each list, there are subscribe, unsubscribe, and archive links. All Tapestry users are welcome to subscribe to any of these lists, however questions on how to <em>use</em> Tapestry in your application are best sent to the <em>user</em> mailing list.</p><p>Please note that the Nabble archives are set to read-only and don't allow for posting or answering using Nabble's web interface. You have to subscribe to the mailing list in order to post.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" class="confluenceTh"><p>Subscribe</p></th><th colspan="1" rowspan="1" class="confluenceT
 h"><p>Unsubscribe</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Apache Archive</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Nabble Archive</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MarkMail Archive</p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry User List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:users-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:users-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-users/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble.com/T
 apestry-User-f2375125.html" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.users" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry Developer List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:dev-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:dev-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-dev/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble
 .com/Tapestry-Dev-f2438278.html" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.dev" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry Commits List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:commits-subscribe@tapestry.apache.org" >Subscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="mailto:commits-unsubscribe@tapestry.apache.org" >Unsubscribe</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-commits/">mail-archives.apache.org</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a
  shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.commits" >tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Search Multiple Lists</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.1045711.n5.nabble.com/" >www.nabble.com</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.markmail.org/search/?q=#query:+page:1+state:facets" >tapestry.markmail.org</a></p></td></tr></tbody></table></div><p>Tapestry issues are tracked in the <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/TAP5">Apache JIRA</a>.</p><p>Unless your problem is clear 
 as day, it's a good idea to discuss it on the Tapestry Users mailing list first, before adding an issue. At the same time, it's generally unlikely that a bug will be fixed <em>unless</em> a JIRA Issue is created.</p><p>Eric Raymond has a detailed <a shape="rect" class="external-link" href="http://catb.org/esr/faqs/smart-questions.html" >guide to asking questions the right way</a>. If you are not getting a response to your problem, it's likely because you aren't asking it the right way.</p><p>Just saying something is "broken" or "failed" is not enough. How did it fail? Did it do the wrong thing? Throw an exception? Not respond in any way? What exactly did you expect to happen? All of this information should be made available when looking for help, plus context on the general problem you were trying to solve in the first place (there may be a better solution entirely). Read Eric Raymond's guide ... it's fun and informative.</p><h2 id="Community-ContributingtranslationsforTapestrybuilt
 -inmessages">Contributing translations for Tapestry built-in messages</h2><p>If Tapestry's built-in messages aren't available in your language, you are welcome to contribute a new translation of the message catalogs. For easy instructions, see <a shape="rect" href="localization.html">Localization</a>.</p><h2 id="Community-SourceCodeAccess">Source Code Access</h2><p>Source code for Tapestry can be <a shape="rect" href="download.html">downloaded</a> along with pre-compiled binaries.</p><p>Tapestry uses <a shape="rect" class="external-link" href="http://git-scm.com/" >Git</a> to manage the project's source code.</p><p>Web access to the Tapestry repository is available as <a shape="rect" class="external-link" href="https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git">GIT-WIP at Apache</a>.</p><p>Access using Git client:</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>$ git clone http://git-wip-us.apache.org/repos/asf/tapestry-5.git
 </pre>
 </div></div><p>(See <a shape="rect" href="building-tapestry-from-source.html">Building Tapestry from Source</a> for more info.)</p><h2 id="Community-BecomingaContributor">Becoming a Contributor</h2><p>The best way to become a contributor is to become active on the mailing list; Tapestry is known to have an active and helpful community on the mailing list, and the more mentors we can add, the better.</p><p>If you want to help out with documentation, you must sign an <a shape="rect" class="external-link" href="http://www.apache.org/licenses/#clas">Apache Contributor License Agreement</a>, at which point we can grant write access to the Confluence Wiki (where official documentation is created).</p><p>Providing patches (with tests!) is another way to become a contributor. (See the&#160;<a shape="rect" href="developer-bible.html">Developer Bible</a> for important guidance on source code formatting, class naming conventions, etc.)</p><h2 id="Community-BecomingaCommitter">Becoming a Commit
 ter</h2><p>Active contributors may be asked to become full committers, with write access to the source code. Generally, contributors who have been consistently active and helpful for three to six months are eligible for committer access. If you think you are in that category, don't be shy about contacting members of the Tapestry PMC (Project Management Committee).</p><hr><h1 id="Community-CommunityContributions">Community Contributions</h1><div class="sectionColumnWrapper"><div class="sectionMacro"><div class="sectionMacroRow"><div class="columnMacro" style="width:50%;min-width:50%;max-width:50%;"><p><span class="confluence-anchor-link" id="Community-modules"></span></p><p>&#160;</p><div id="third-parties"><p>&#160;</p><h2 id="Community-Modules">Modules</h2><p><a shape="rect" class="external-link" href="https://github.com/chenillekit/chenillekit" >Chenille Kit</a> by Massimo Lusetti</p><blockquote><p>Collection of modules, services, utilities and components (many of which require on
 ly tapestry-ioc). Includes Accordion, ColorPicker, Editor, Kaptcha, MultipleSelect, RoundCornerContainer, ThumbNail, and many more useful components. Also provides integrations with Google services, LDAP, Lucene, Mail, Quartz, JasperReports, Bean Scripting Framework, and more.</p></blockquote><p><a shape="rect" class="external-link" href="http://equanda.org/equanda-tapestry5/" >Equanda-tapestry5</a> by Joachim Van der Auwera</p><blockquote><p>Components useful for building enterprise applications. Includes Accordion, Form Traversal, Tabs, TextAreaAutoExpander, TreeTable, . Among other things, these focus on easy input of data without the need for a mouse.</p></blockquote><p><a shape="rect" class="external-link" href="http://tapestry.ioko.com/" >ioko-tapestry-commons</a> by Ben Gidley, et al.</p><blockquote><p>Provides components for caching, cache control, and simple Flash movie integration.</p></blockquote><p><a shape="rect" class="external-link" href="http://tapestry.formos.com/ni
 ghtly/tapx/" >Tapx</a> by Howard M. Lewis Ship</p><blockquote><p>Collection of modules and components: improved DatePicker, dynamic Tapestry templates, offline rendering using Tapestry, YUI integration, Confirm dialog mixin, Kaptcha components, and more!</p></blockquote><p><a shape="rect" class="external-link" href="http://tapestry5-jquery.com/" >Tapestry5-jQuery</a> by GOT5</p><blockquote><p>Tapestry5-Jquery lets you use jQuery to completely replace Prototype, Scriptaculous and the base tapestry.js script.</p></blockquote><p><a shape="rect" class="external-link" href="http://exanpe-t5-lib.appspot.com/" >Exanpe-T5-Lib</a> by Laurent Gu&#233;rin et Julien Maupoux</p><blockquote><p>A library of components: accordion, ajax loader, slider, tab view, secured password, color picker, tooltip, hideable panel and more! Live demo is provided.</p></blockquote><p><a shape="rect" class="external-link" href="http://code.google.com/p/flowlogix/" >FlowLogix</a> by Lenny Primak</p><blockquote><p>a c
 ollection of components, services and utilities that integrates Tapestry into JEE environments and provides other commonly needed functionality.</p></blockquote><p><a shape="rect" href="modules.html">More Modules</a>...</p><h1 id="Community-Extensions">Extensions</h1><p><a shape="rect" class="external-link" href="http://www.arsmachina.com.br/" >Ars Machina</a> by Thiago H. de Paula Figueiredo</p><blockquote><p>Tapestry/Hibernate extensions for Generic DAOs, standard CRUD interfaces, and user access logging and tracking.</p></blockquote><p><a shape="rect" class="external-link" href="http://tynamo.org/" >Tynamo project</a> by Tynamo Team / Kalle Korhonen &amp; Alejandro Scandroli</p><blockquote><p>Tynamo is model-driven, full-stack web framework based on Tapestry 5, allowing you to jump directly from your Hibernate entities to a full-blown CRUD application. Tynamo provides several modules, including tapestry-model, tapestry-conversations, tapestry-hibernate-seedentity, tapestry-restea
 sy and tapestry-security.</p></blockquote></div><div class="columnMacro"><h1 id="Community-Tutorials">Tutorials</h1><p><a shape="rect" class="external-link" href="http://jumpstart.doublenegative.com.au/jumpstart" >Tapestry JumpStart</a> by Geoff Callender</p><blockquote><p>JumpStart is an easy way to learn Tapestry by example. It's an online demo application, and also a downloadable open source app ready for you to explore and modify.</p></blockquote><p><a shape="rect" class="external-link" href="http://tapestry-stitch.uklance.cloudbees.net/" >Tapestry Stitch</a> by Lance</p><blockquote><p>Sample components and concepts in Apache Tapestry 5</p></blockquote><p><a shape="rect" class="external-link" href="http://code.google.com/p/shams/" >Shams Examples</a> by Mohammad H. Shamsi</p><blockquote><p>A variety of examples of Tapestry 5 pages and components.</p></blockquote><p><a shape="rect" class="external-link" href="http://wiki.apache.org/tapestry/FrontPage">Community's Wiki</a> (Moin M
 oin)</p><blockquote><p>The wiki contains a wealth of user-generated tips and techniques for using Tapestry</p></blockquote><h1 id="Community-IDEIntegrations">IDE Integrations</h1><p><a shape="rect" class="external-link" href="https://github.com/anjlab/eclipse-tapestry5-plugin" >Eclipse-tapestry5-plugin</a></p><blockquote><p>An Eclipse plugin for Tapestry 5 by Dmitry Gusev, with a "Quick Switch" between templates and component classes, a Tapestry Context view, and many other convenience features. <span style="color: rgb(112,112,112);">This is currently the best choice for Eclipse users.</span></p></blockquote><p><a shape="rect" class="external-link" href="http://code.google.com/p/tapestrytools/wiki/Install_Guide_Lightweight_TapestryTools" >Tapestry Tools</a> by Gavin Lei</p><blockquote><p>Tapestry Tools is an Eclipse plugin for Tapestry 5 which has been built by Gavin Lei within the timeframe of GSoC 2012.</p></blockquote><p><a shape="rect" class="external-link" href="http://www.jetb
 rains.com/idea" >IntelliJ 10</a> by JetBrains</p><blockquote><p>IntelliJ has Tapestry 5 support included <a shape="rect" class="external-link" href="http://www.jetbrains.com/idea/features/tapestry_5.html" >right out of the box</a>.</p></blockquote><p><a shape="rect" class="external-link" href="http://code.google.com/p/loom-t5/" >loom-t5</a> by Chris Scheid</p><blockquote><p>Eclipse plugin for building Tapestry 5 projects</p></blockquote><p><a shape="rect" class="external-link" href="http://wiki.apache.org/tapestry/Tapestry5JSPEditorEclipse">Code Completion in Eclipse</a></p><blockquote><p>How to use the built in JSP Eclipse Editor and a custom tld file to get Tapestry 5 code completion in Eclipse</p></blockquote></div></div></div></div></div></div>