Modified: websites/production/tapestry/content/ioc-run.html
==============================================================================
--- websites/production/tapestry/content/ioc-run.html (original)
+++ websites/production/tapestry/content/ioc-run.html Tue Nov  8 12:22:26 2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - run</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - run</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc-serialization.html
==============================================================================
--- websites/production/tapestry/content/ioc-serialization.html (original)
+++ websites/production/tapestry/content/ioc-serialization.html Tue Nov  8 
12:22:26 2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - serialization</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - serialization</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc-shadow.html
==============================================================================
--- websites/production/tapestry/content/ioc-shadow.html (original)
+++ websites/production/tapestry/content/ioc-shadow.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - shadow</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - shadow</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc-startup.html
==============================================================================
--- websites/production/tapestry/content/ioc-startup.html (original)
+++ websites/production/tapestry/content/ioc-startup.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - startup</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - startup</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc-strategy.html
==============================================================================
--- websites/production/tapestry/content/ioc-strategy.html (original)
+++ websites/production/tapestry/content/ioc-strategy.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - strategy</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - strategy</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc-symbols.html
==============================================================================
--- websites/production/tapestry/content/ioc-symbols.html (original)
+++ websites/production/tapestry/content/ioc-symbols.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - symbols</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IoC - symbols</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/ioc.html
==============================================================================
--- websites/production/tapestry/content/ioc.html (original)
+++ websites/production/tapestry/content/ioc.html Tue Nov  8 12:22:26 2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IOC</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">IOC</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -59,55 +54,31 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>Tapestry's <strong>Inversion of 
Control</strong> container is a built-in Tapestry module based on <a  
class="external-link" 
href="http://www.martinfowler.com/articles/injection.html"; 
rel="nofollow">inversion of control</a> (IoC), a design approach that allows a 
working system to be fabricated from many small, easily testable 
pieces.</p><div class="aui-label" style="float:right" title="Related Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="ioc.html">IOC</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="ioc-cookbook.html">IoC cookbook</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="tapestry-ioc-overview.html">Tapestry IoC 
Overview</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  
href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control 
FAQ</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>An additional benefit of using IoC is that, by breaking a complex 
system into small pieces, it becomes easier to modify and extend the system, by 
overriding or replacing selected parts of the system.</p><p>The use of IoC in 
Tapestry represents an evolution from Tapestry 3 to Tapestry 4 to Tapestry 5. 
Tapestry 3 did not use IoC, though it included some weaker mechanisms, such as 
extensions, that served a similar purpose. To make large scale changes to the 
behavior of Tapestry 3 required subclassing key classes and overriding 
methods.</p><p>Tapestry 4 introduced the use of the <a  class="external-link" 
href="http://hivemind.apache.org/";>Apache HiveMind</a> IoC container. In fact, 
the HiveMind project was created specifically for use as the IoC container for 
Tapestry 4. Tapestry 4 has met its goals for extensibility and configurability, 
largely because of HiveMind's flexibility.</p><p>Tapestry 5 extends on this, 
replacing HiveMind with a new container specifically build for Ta
 pestry 5, designed for greater ease of use, expressiveness and performance. 
HiveMind itself has been subsequently shelved; T5 IoC can be considered a 
streamlined and improved HiveMind. And T5 IoC can be used separately from the 
rest of Tapestry!</p><h2 id="IOC-WhyNotSpring?">Why Not Spring?</h2><p><a  
class="external-link" href="http://www.springframework.org"; 
rel="nofollow">Spring</a> is the most successful IoC container project. The 
Spring project combines a very good IoC container, integrated <a  
class="external-link" href="http://www.eclipse.org/aspectj/"; 
rel="nofollow">AspectJ</a> support, and a large number of libraries built on 
top of the container. Spring is an excellent <em>application</em> container, 
but lacks a number of features necessary for a <em>framework</em> 
container:</p><ul><li>Spring beans can be wired together by name (or id), but 
it is not possible to introduce additional naming abstractions. Tapestry 4's 
"infrastructure:" abstraction was the key to allowing ea
 sy spot overrides of internal Tapestry services without having to duplicate 
the large web of interrelated services (nearly 200 in Tapestry 
4.0).</li><li>Although Spring allows beans to be intercepted, it does so in the 
form of a new bean, leaving the un-intercepted bean visible (and subject to 
misuse). Tapestry IoC "wraps" the service inside interceptors, preventing 
un-intercepted access to the core service implementation.</li><li>Spring's XML 
configuration files are quite verbose. This has improved with Spring 2.0, but 
still far more verbose that T5 IoC module classes.</li><li>Spring has a simple 
map/list/value configuration scheme, but it is not distributed; it is part of a 
single bean definition. Tapestry 5 IoC allows a service configuration to be 
assembled from multiple modules. This is very important for seamless 
extensibility of the framework, with zero configuration (just drop the module 
into the classpath and everything hooks together).</li></ul><h2 
id="IOC-WhyNotHiveMind?">
 Why Not HiveMind?</h2><p>The difficulty of managing the release schedules of 
two complex frameworks proved to be an issue.</p><p>The use of HiveMind was 
also related to one of the common criticisms of Tapestry 4: startup time. The 
time it took to parse and organize all that XML showed up as several seconds of 
startup time. Creating a streamlined IoC container that is not driven by XML 
has alleviated those issues.</p><p>With the advent of new technologies (in 
particular, JDK 1.5 <a  class="external-link" 
href="http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html"; 
rel="nofollow">Annotations</a> and runtime class generation via <a  
class="external-link" href="http://www.jboss.org/products/javassist"; 
rel="nofollow">Javassist</a>) some of the precepts of HiveMind were undermined. 
That is to say, in HiveMind (as in Spring), all that XML was an awkward way to 
describe a few basic Java operations: instantiating classes and invoking 
methods on those classes (to inject depe
 ndencies into the instantiated instances). The central concept in Tapestry IoC 
is to eliminate XML and build an equivalent system around simple objects and 
methods.</p><p>Tapestry IoC also represents many simplifications of HiveMind, 
building on lessons learned from both HiveMind and Tapestry 4. The HiveMind 
project itself is no longer under development, and most of the user base has 
moved to Tapestry 5.</p><h2 id="IOC-WhynotGuice?">Why not Guice?</h2><p><a  
class="external-link" href="http://code.google.com/p/google-guice/"; 
rel="nofollow">Google Guice</a> is a relative newcomer to the IoC landscape. 
Guice and T5 IoC are very close and, in fact, T5 IoC expressly borrows many 
great and innovative ideas from Guice. Guice abandons not only XML but even any 
concept of a service id ... for injection, services are matched by type and 
perhaps filtered based on annotations.</p><p>Guice is still missing some core 
ideas needed in T5 IoC. There's no concept of configurations or anything simila
 r. And there are limitations on injection based on scope (a request scoped 
value can't be injected into a global scope service; in T5 IoC, scope is 
internal to the proxy and never an issue).</p><h1 
id="IOC-Goals">Goals</h1><p>As with Tapestry 5 in general, the goal of Tapestry 
IoC is greater simplicity, greater power, and an avoidance of 
XML.</p><p>Existing IoC containers such as HiveMind and Spring typically 
contain large amounts of XML configuration that exists to describe how and when 
to instantiate a particular JavaBean, and how to provide that bean with its 
dependencies (either by constructor injection, or by property injection). Other 
XML is used to hook objects into some form of life cycle ... typically callback 
methods invoked when the object is instantiated and configured, or when it is 
being discarded.</p><p>The core concept of Tapestry IoC is that the Java 
language itself is the easiest and most succinct way to describe object 
creation and method invocation. Any approxima
 tion in XML is ultimately more verbose and unwieldy. As the <a  
href="defining-tapestry-ioc-services.html">examples</a> show, a small amount of 
Java code and a handful of naming conventions and annotations is far simpler 
and easier than a big chunk of XML.</p><p>In addition, moving from XML to Java 
code encourages testing; you can unit test the service builder methods of your 
module class, but you can't realistically unit test an XML 
descriptor.</p><p>Tapestry IoC modules are easily packaged into JAR files, 
supporting zero-configuration usage: just drop the JAR onto the 
classpath.</p><p>Another goal is "developer friendliness". This is a true 
cross-cutting concern, and one not likely to be packaged into an aspect any 
time soon. The Tapestry IoC framework is designed to be easy to use and easy to 
understand. Further, when things go wrong, it actively attempts to help you via 
comprehensive checks and carefully composed error messages. Further, all 
user-visible objects implement a <a  
 class="external-link" 
href="http://howardlewisship.com/blog/2003/08/importance-of-tostring.html"; 
rel="nofollow">reasonable toString() method</a>, to help you understand what's 
going when you inevitably try to figure things out in the debugger.</p><p>In 
terms of building services using Tapestry IoC ... the objective here is 
"lightness", a term borrowed from the board game <a  class="external-link" 
href="http://boardgamegeek.com/game/188"; rel="nofollow">Go</a>. In Go, two 
players place stones on an initially empty board, creating walls to enclose 
territory or eliminate the encroaching stones played by the opponent. The 
winner at the end of the game controls the most territory, and it is the 
constant tension between taking territory and defending existing territory that 
drives the game. In Go, groups of playing stones are "light" (or have "good 
shape") when the minimum number of them control the maximum area on the board. 
Playing "heavy" just gives your opponent a free chance to take c
 ontrol of another section of the board.</p><p>In software development, we are 
also attempting to create complex systems from simple pieces, but our tension 
is derived from the need to add functionality balanced against the need to test 
and maintain existing code. Too often in the world of software development, the 
need to add functionality trumps all, and testing and maintenance is deferred 
... until too late.</p><p>IoC containers in general, and Tapestry IoC very 
specifically, exist to address this issue, to provide the foundations for 
balancing the need to quickly add functionality against the need to test new 
functionality and maintain existing functionality. IoC containers provide the 
means to break large, complex, monolithic blocks into light, small, testable 
pieces.</p><p>When building a registry of services, lightness refers to the 
proper division of responsibility, the separation of concerns, and the limiting 
of dependencies between different parts of the system. This style 
 is often called <a  class="external-link" 
href="http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/general-formulation.html";
 rel="nofollow">Law of Demeter</a>. Using an IoC container makes it easier to 
embrace this approach, since one critical concern, which objects are 
responsible for instantiating which others, is entirely managed by the 
container. With this life cycle concern removed, it becomes very easy to reduce 
complex chunks of code into small, testable, reusable services.</p><p>"Light" 
means:</p><ul><li>Small interfaces of two or three methods.</li><li>Small 
methods, with two or three parameters (because dependencies are injected in 
behind the scenes, rather than passed into the method).</li><li>Anonymous 
communication via events, rather than explicit method invocations. The service 
implementation can implement an event listener interface.</li></ul><p>See <a  
class="external-link" 
href="http://www.pragmaticprogrammer.com/ppbook/index.shtml"; rel="nofollow">T
 he Pragmatic Programmer</a> for more insights into building solid code.</p><h1 
id="IOC-Terminology">Terminology</h1><p>The basic unit in Tapestry IoC is a 
<strong>service</strong>. A service consists of a <strong>service 
interface</strong> and a <strong>service implementation</strong>. The service 
interface is an ordinary Java interface. The service implementation is a Java 
object that implements the service interface. Often there will only be a single 
service per service interface, but in some situations, there may be many 
different services and service implementations all sharing the same service 
interface.</p><p>Services are identified by a unique id. Typically, a service 
id matches the unqualified name of the service interface, but this is simply a 
convention.</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-bo
 dy"><p>The evolutionary direction of the Tapestry IoC is to eventually 
eliminate service ids and work totally in terms of service interfaces and 
marker annotations.</p></div></div><p>Services are aggregated into 
<strong>modules</strong>:</p><ul><li>A module is defined by a <strong>module 
class</strong>, a specific class containing a mix of static or instance 
methods, used to define services, decorate them (see below), or contribute to 
service configurations (again, more below).</li><li>Methods of the module class 
define the services provided by the module, and the same methods are 
responsible for instantiating the service implementation.</li></ul><p>The 
methods which define and construct services are called <strong>service builder 
methods</strong>.</p><p>The <strong>registry</strong> is the outside world's 
view of the modules and services. From the registry, it is possible to obtain a 
service, via its unique id or by its service interface. Access by unique id is 
<em>caseless</em> (m
 eaning, a match will be found even the case of the search key doesn't match 
the case of the service id itself).</p><p>Services may be 
<strong>decorated</strong> by <strong>service decorator methods</strong>. These 
methods create <strong>interceptor</strong> objects that wrap around core 
service implementations, adding behavior such as logging, security access, or 
transaction management. Interceptors implement the same service interface as 
the service. Control is given over the order in which decorators are applied to 
a service.</p><p>A service may have a <strong>configuration</strong>. The 
configuration is either a map, a collection, or an ordered list. The service 
defines the type of object allowed to be contributed into the configuration. 
The configuration is constructed from <strong>contributions</strong> provided 
by one or more modules. <strong>Service contributor methods</strong> are 
invoked to contribute objects into configurations.</p><p>Services are 
instantiated as needed. I
 n this case, "need" translates to "when a method of the service is invoked". A 
service is represented (to the outside world, or to other services) as a 
<strong>proxy</strong> that implements the service interface. The first time a 
method is invoked on the proxy, the full service (consisting of the core 
service implementation wrapped with any interceptors) is constructed. This 
occurs in a completely <strong>thread-safe</strong> manner. Just-in-time 
instantiation allows for more complex, more finely grained networks of 
services, and improves start-up time.</p><p>Instantiating a service, injecting 
dependencies, and decorating the service are all parts of service 
<strong>realization</strong>, the point at which a service transitions from 
virtual (just a proxy) to real (fully instantiated and ready to 
operate).</p><p>Services define a <strong>scope</strong> that controls when the 
service is constructed, as well as its visibility. The default scope is 
<strong>singleton</strong>, meaning a
  single global instance created as needed. Other scopes allow service 
implementations to be bound to the current thread (i.e., the current request in 
a servlet application).</p><p><strong>Dependencies</strong> are other services 
(or other objects) that are needed by a service implementation. These 
dependencies can be <strong>injected</strong> into a service builder method and 
provided, from there, to a service implementation via its constructor, or via 
methods on the service implementation. These may also be referred to as 
<strong>collaborators</strong>, especially in the context of writing unit 
tests.</p><p>The <strong>point of Injection</strong> is a field, method 
parameter, or constructor parameter that receives an injected value. The type 
of service (or other dependency) is determined by the type of the field or 
parameter. Often, annotations further identify what is to be injected, or in 
the case of field injection, that an injection is required.</p><h2 
id="IOC-IoCSubtopics">IoC
  Subtopics</h2><p></p><ul class="childpages-macro"><li><a  
href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a  
href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a  
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a  href="service-advisors.html">Service 
Advisors</a></li><li><a  href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a  href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a  href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a  href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a  href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a  
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a  
href="symbols.html">Symbols</a></li><li><a  
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a  
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li>
 <li><a  href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a 
 href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a  
href="injection-in-detail.html">Injection in Detail</a></li><li><a  
href="object-providers.html">Object Providers</a></li><li><a  
href="service-serialization.html">Service Serialization</a></li><li><a  
href="type-coercion.html">Type Coercion</a></li><li><a  
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a  
href="registry-startup.html">Registry Startup</a></li><li><a  
href="parallel-execution.html">Parallel Execution</a></li><li><a  
href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a  
href="using-jsr-330-standard-annotations.html">Using JSR 330 standard 
annotations</a></li><li><a  href="operation-tracker.html">Operation 
Tracker</a></li></ul></div>
+                <div id="ConfluenceContent"><p>Tapestry's <strong>Inversion of 
Control</strong> container is a built-in Tapestry module based on <a  
class="external-link" 
href="http://www.martinfowler.com/articles/injection.html"; 
rel="nofollow">inversion of control</a> (IoC), a design approach that allows a 
working system to be fabricated from many small, easily testable 
pieces.</p><div class="aui-label" style="float:right" title="Related 
Articles"><h3>Related Articles</h3><ul class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="ioc.html">IOC</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="ioc-cookbook.html">IoC cookbook</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="tapestry-ioc-overview.html">Tapestry IoC Overview</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of 
Control FAQ</a> 
+  </div> </li></ul></div><p>An additional benefit of using IoC is that, by 
breaking a complex system into small pieces, it becomes easier to modify and 
extend the system, by overriding or replacing selected parts of the 
system.</p><p>The use of IoC in Tapestry represents an evolution from Tapestry 
3 to Tapestry 4 to Tapestry 5. Tapestry 3 did not use IoC, though it included 
some weaker mechanisms, such as extensions, that served a similar purpose. To 
make large scale changes to the behavior of Tapestry 3 required subclassing key 
classes and overriding methods.</p><p>Tapestry 4 introduced the use of the <a  
class="external-link" href="http://hivemind.apache.org/";>Apache HiveMind</a> 
IoC container. In fact, the HiveMind project was created specifically for use 
as the IoC container for Tapestry 4. Tapestry 4 has met its goals for 
extensibility and configurability, largely because of HiveMind's 
flexibility.</p><p>Tapestry 5 extends on this, replacing HiveMind with a new 
container specif
 ically build for Tapestry 5, designed for greater ease of use, expressiveness 
and performance. HiveMind itself has been subsequently shelved; T5 IoC can be 
considered a streamlined and improved HiveMind. And T5 IoC can be used 
separately from the rest of Tapestry!</p><h2 id="IOC-WhyNotSpring?">Why Not 
Spring?</h2><p><a  class="external-link" href="http://www.springframework.org"; 
rel="nofollow">Spring</a> is the most successful IoC container project. The 
Spring project combines a very good IoC container, integrated <a  
class="external-link" href="http://www.eclipse.org/aspectj/"; 
rel="nofollow">AspectJ</a> support, and a large number of libraries built on 
top of the container. Spring is an excellent <em>application</em> container, 
but lacks a number of features necessary for a <em>framework</em> 
container:</p><ul><li>Spring beans can be wired together by name (or id), but 
it is not possible to introduce additional naming abstractions. Tapestry 4's 
"infrastructure:" abstraction was the
  key to allowing easy spot overrides of internal Tapestry services without 
having to duplicate the large web of interrelated services (nearly 200 in 
Tapestry 4.0).</li><li>Although Spring allows beans to be intercepted, it does 
so in the form of a new bean, leaving the un-intercepted bean visible (and 
subject to misuse). Tapestry IoC "wraps" the service inside interceptors, 
preventing un-intercepted access to the core service 
implementation.</li><li>Spring's XML configuration files are quite verbose. 
This has improved with Spring 2.0, but still far more verbose that T5 IoC 
module classes.</li><li>Spring has a simple map/list/value configuration 
scheme, but it is not distributed; it is part of a single bean definition. 
Tapestry 5 IoC allows a service configuration to be assembled from multiple 
modules. This is very important for seamless extensibility of the framework, 
with zero configuration (just drop the module into the classpath and everything 
hooks together).</li></ul><h2 id="IO
 C-WhyNotHiveMind?">Why Not HiveMind?</h2><p>The difficulty of managing the 
release schedules of two complex frameworks proved to be an issue.</p><p>The 
use of HiveMind was also related to one of the common criticisms of Tapestry 4: 
startup time. The time it took to parse and organize all that XML showed up as 
several seconds of startup time. Creating a streamlined IoC container that is 
not driven by XML has alleviated those issues.</p><p>With the advent of new 
technologies (in particular, JDK 1.5 <a  class="external-link" 
href="http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html"; 
rel="nofollow">Annotations</a> and runtime class generation via <a  
class="external-link" href="http://www.jboss.org/products/javassist"; 
rel="nofollow">Javassist</a>) some of the precepts of HiveMind were undermined. 
That is to say, in HiveMind (as in Spring), all that XML was an awkward way to 
describe a few basic Java operations: instantiating classes and invoking 
methods on those clas
 ses (to inject dependencies into the instantiated instances). The central 
concept in Tapestry IoC is to eliminate XML and build an equivalent system 
around simple objects and methods.</p><p>Tapestry IoC also represents many 
simplifications of HiveMind, building on lessons learned from both HiveMind and 
Tapestry 4. The HiveMind project itself is no longer under development, and 
most of the user base has moved to Tapestry 5.</p><h2 id="IOC-WhynotGuice?">Why 
not Guice?</h2><p><a  class="external-link" 
href="http://code.google.com/p/google-guice/"; rel="nofollow">Google Guice</a> 
is a relative newcomer to the IoC landscape. Guice and T5 IoC are very close 
and, in fact, T5 IoC expressly borrows many great and innovative ideas from 
Guice. Guice abandons not only XML but even any concept of a service id ... for 
injection, services are matched by type and perhaps filtered based on 
annotations.</p><p>Guice is still missing some core ideas needed in T5 IoC. 
There's no concept of configurations
  or anything similar. And there are limitations on injection based on scope (a 
request scoped value can't be injected into a global scope service; in T5 IoC, 
scope is internal to the proxy and never an issue).</p><h1 
id="IOC-Goals">Goals</h1><p>As with Tapestry 5 in general, the goal of Tapestry 
IoC is greater simplicity, greater power, and an avoidance of 
XML.</p><p>Existing IoC containers such as HiveMind and Spring typically 
contain large amounts of XML configuration that exists to describe how and when 
to instantiate a particular JavaBean, and how to provide that bean with its 
dependencies (either by constructor injection, or by property injection). Other 
XML is used to hook objects into some form of life cycle ... typically callback 
methods invoked when the object is instantiated and configured, or when it is 
being discarded.</p><p>The core concept of Tapestry IoC is that the Java 
language itself is the easiest and most succinct way to describe object 
creation and method invoca
 tion. Any approximation in XML is ultimately more verbose and unwieldy. As the 
<a  href="defining-tapestry-ioc-services.html">examples</a> show, a small 
amount of Java code and a handful of naming conventions and annotations is far 
simpler and easier than a big chunk of XML.</p><p>In addition, moving from XML 
to Java code encourages testing; you can unit test the service builder methods 
of your module class, but you can't realistically unit test an XML 
descriptor.</p><p>Tapestry IoC modules are easily packaged into JAR files, 
supporting zero-configuration usage: just drop the JAR onto the 
classpath.</p><p>Another goal is "developer friendliness". This is a true 
cross-cutting concern, and one not likely to be packaged into an aspect any 
time soon. The Tapestry IoC framework is designed to be easy to use and easy to 
understand. Further, when things go wrong, it actively attempts to help you via 
comprehensive checks and carefully composed error messages. Further, all 
user-visible objec
 ts implement a <a  class="external-link" 
href="http://howardlewisship.com/blog/2003/08/importance-of-tostring.html"; 
rel="nofollow">reasonable toString() method</a>, to help you understand what's 
going when you inevitably try to figure things out in the debugger.</p><p>In 
terms of building services using Tapestry IoC ... the objective here is 
"lightness", a term borrowed from the board game <a  class="external-link" 
href="http://boardgamegeek.com/game/188"; rel="nofollow">Go</a>. In Go, two 
players place stones on an initially empty board, creating walls to enclose 
territory or eliminate the encroaching stones played by the opponent. The 
winner at the end of the game controls the most territory, and it is the 
constant tension between taking territory and defending existing territory that 
drives the game. In Go, groups of playing stones are "light" (or have "good 
shape") when the minimum number of them control the maximum area on the board. 
Playing "heavy" just gives your opponent a fr
 ee chance to take control of another section of the board.</p><p>In software 
development, we are also attempting to create complex systems from simple 
pieces, but our tension is derived from the need to add functionality balanced 
against the need to test and maintain existing code. Too often in the world of 
software development, the need to add functionality trumps all, and testing and 
maintenance is deferred ... until too late.</p><p>IoC containers in general, 
and Tapestry IoC very specifically, exist to address this issue, to provide the 
foundations for balancing the need to quickly add functionality against the 
need to test new functionality and maintain existing functionality. IoC 
containers provide the means to break large, complex, monolithic blocks into 
light, small, testable pieces.</p><p>When building a registry of services, 
lightness refers to the proper division of responsibility, the separation of 
concerns, and the limiting of dependencies between different parts of the 
 system. This style is often called <a  class="external-link" 
href="http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/general-formulation.html";
 rel="nofollow">Law of Demeter</a>. Using an IoC container makes it easier to 
embrace this approach, since one critical concern, which objects are 
responsible for instantiating which others, is entirely managed by the 
container. With this life cycle concern removed, it becomes very easy to reduce 
complex chunks of code into small, testable, reusable services.</p><p>"Light" 
means:</p><ul><li>Small interfaces of two or three methods.</li><li>Small 
methods, with two or three parameters (because dependencies are injected in 
behind the scenes, rather than passed into the method).</li><li>Anonymous 
communication via events, rather than explicit method invocations. The service 
implementation can implement an event listener interface.</li></ul><p>See <a  
class="external-link" href="http://www.pragmaticprogrammer.com/ppbook/index.shtm
 l" rel="nofollow">The Pragmatic Programmer</a> for more insights into building 
solid code.</p><h1 id="IOC-Terminology">Terminology</h1><p>The basic unit in 
Tapestry IoC is a <strong>service</strong>. A service consists of a 
<strong>service interface</strong> and a <strong>service 
implementation</strong>. The service interface is an ordinary Java interface. 
The service implementation is a Java object that implements the service 
interface. Often there will only be a single service per service interface, but 
in some situations, there may be many different services and service 
implementations all sharing the same service interface.</p><p>Services are 
identified by a unique id. Typically, a service id matches the unqualified name 
of the service interface, but this is simply a convention.</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-i
 nformation-macro-body"><p>The evolutionary direction of the Tapestry IoC is to 
eventually eliminate service ids and work totally in terms of service 
interfaces and marker annotations.</p></div></div><p>Services are aggregated 
into <strong>modules</strong>:</p><ul><li>A module is defined by a 
<strong>module class</strong>, a specific class containing a mix of static or 
instance methods, used to define services, decorate them (see below), or 
contribute to service configurations (again, more below).</li><li>Methods of 
the module class define the services provided by the module, and the same 
methods are responsible for instantiating the service 
implementation.</li></ul><p>The methods which define and construct services are 
called <strong>service builder methods</strong>.</p><p>The 
<strong>registry</strong> is the outside world's view of the modules and 
services. From the registry, it is possible to obtain a service, via its unique 
id or by its service interface. Access by unique id is <
 em>caseless</em> (meaning, a match will be found even the case of the search 
key doesn't match the case of the service id itself).</p><p>Services may be 
<strong>decorated</strong> by <strong>service decorator methods</strong>. These 
methods create <strong>interceptor</strong> objects that wrap around core 
service implementations, adding behavior such as logging, security access, or 
transaction management. Interceptors implement the same service interface as 
the service. Control is given over the order in which decorators are applied to 
a service.</p><p>A service may have a <strong>configuration</strong>. The 
configuration is either a map, a collection, or an ordered list. The service 
defines the type of object allowed to be contributed into the configuration. 
The configuration is constructed from <strong>contributions</strong> provided 
by one or more modules. <strong>Service contributor methods</strong> are 
invoked to contribute objects into configurations.</p><p>Services are instan
 tiated as needed. In this case, "need" translates to "when a method of the 
service is invoked". A service is represented (to the outside world, or to 
other services) as a <strong>proxy</strong> that implements the service 
interface. The first time a method is invoked on the proxy, the full service 
(consisting of the core service implementation wrapped with any interceptors) 
is constructed. This occurs in a completely <strong>thread-safe</strong> 
manner. Just-in-time instantiation allows for more complex, more finely grained 
networks of services, and improves start-up time.</p><p>Instantiating a 
service, injecting dependencies, and decorating the service are all parts of 
service <strong>realization</strong>, the point at which a service transitions 
from virtual (just a proxy) to real (fully instantiated and ready to 
operate).</p><p>Services define a <strong>scope</strong> that controls when the 
service is constructed, as well as its visibility. The default scope is 
<strong>singleton<
 /strong>, meaning a single global instance created as needed. Other scopes 
allow service implementations to be bound to the current thread (i.e., the 
current request in a servlet application).</p><p><strong>Dependencies</strong> 
are other services (or other objects) that are needed by a service 
implementation. These dependencies can be <strong>injected</strong> into a 
service builder method and provided, from there, to a service implementation 
via its constructor, or via methods on the service implementation. These may 
also be referred to as <strong>collaborators</strong>, especially in the 
context of writing unit tests.</p><p>The <strong>point of Injection</strong> is 
a field, method parameter, or constructor parameter that receives an injected 
value. The type of service (or other dependency) is determined by the type of 
the field or parameter. Often, annotations further identify what is to be 
injected, or in the case of field injection, that an injection is 
required.</p><h2 id="IO
 C-IoCSubtopics">IoC Subtopics</h2><p></p><ul class="childpages-macro"><li><a  
href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a  
href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a  
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a  href="service-advisors.html">Service 
Advisors</a></li><li><a  href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a  href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a  href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a  href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a  href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a  
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a  
href="symbols.html">Symbols</a></li><li><a  
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a  
href="pipelinebuilder-service.html">PipelineBuild
 er Service</a></li><li><a  href="shadowbuilder-service.html">ShadowBuilder 
Service</a></li><li><a  href="strategybuilder-service.html">StrategyBuilder 
Service</a></li><li><a  href="injection-in-detail.html">Injection in 
Detail</a></li><li><a  href="object-providers.html">Object 
Providers</a></li><li><a  href="service-serialization.html">Service 
Serialization</a></li><li><a  href="type-coercion.html">Type 
Coercion</a></li><li><a  href="starting-the-ioc-registry.html">Starting the IoC 
Registry</a></li><li><a  href="registry-startup.html">Registry 
Startup</a></li><li><a  href="parallel-execution.html">Parallel 
Execution</a></li><li><a  href="logging-in-tapestry.html">Logging in 
Tapestry</a></li><li><a  href="using-jsr-330-standard-annotations.html">Using 
JSR 330 standard annotations</a></li><li><a  
href="operation-tracker.html">Operation Tracker</a></li></ul></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/javascript-faq.html
==============================================================================
--- websites/production/tapestry/content/javascript-faq.html (original)
+++ websites/production/tapestry/content/javascript-faq.html Tue Nov  8 
12:22:26 2016
@@ -46,7 +46,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/javascript-modules.html
==============================================================================
--- websites/production/tapestry/content/javascript-modules.html (original)
+++ websites/production/tapestry/content/javascript-modules.html Tue Nov  8 
12:22:26 2016
@@ -45,18 +45,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript Modules</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript Modules</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -68,91 +63,55 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p><strong>JavaScript 
Modules</strong> are a mechanism for bringing modern concepts of variable scope 
and dependency management to JavaScript. <em>Starting with version 5.4</em>, 
Tapestry uses <a  class="external-link" href="http://requirejs.org/"; 
rel="nofollow">RequireJS</a> <a  class="external-link" 
href="https://github.com/amdjs/amdjs-api/blob/master/AMD.md"; 
rel="nofollow">&#160;</a>modules internally, and provides support for using 
RequireJS modules in your own Tapestry application.</p><div class="aui-label" 
style="float:right" title="Related Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="coffeescript.html">CoffeeScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="client-side-javascript.html">Client-Side 
JavaScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="javascript-modules.html">JavaScript 
Modules</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="javascript-faq.html">JavaScript FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="ajax-and-zones.html">Ajax and Zones</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="legacy-javascript.html">Legacy JavaScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="assets.html">Assets</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><h2 id="JavaScriptModules-TheNeedforModules">The Need for 
Modules</h2><p>As web applications have evolved, the use of JavaScript in the 
client has expanded almost exponentially. This has caused all kinds of growing 
pains, since the original design of the web browser, and the initial design of 
JavaScript, was never intended for this level of complexity. Unlike Java, 
JavaScript has no native concept of a "package" or "namespace" and has the 
undesirable tendency to make everything a global.</p><p>In the earliest days, 
client-side JavaScript was constructed as libraries that would define simple 
functions and variables:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p><strong>JavaScript 
Modules</strong> are a mechanism for bringing modern concepts of variable scope 
and dependency management to JavaScript. <em>Starting with version 5.4</em>, 
Tapestry uses <a  class="external-link" href="http://requirejs.org/"; 
rel="nofollow">RequireJS</a> <a  class="external-link" 
href="https://github.com/amdjs/amdjs-api/blob/master/AMD.md"; 
rel="nofollow">&#160;</a>modules internally, and provides support for using 
RequireJS modules in your own Tapestry application.</p><div class="aui-label" 
style="float:right" title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="coffeescript.html">CoffeeScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="client-side-javascript.html">Client-Side JavaScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="javascript-modules.html">JavaScript Modules</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="javascript-faq.html">JavaScript FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="ajax-and-zones.html">Ajax and Zones</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-cheat-sheet.html">Component Cheat Sheet</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="legacy-javascript.html">Legacy JavaScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="assets.html">Assets</a> 
+  </div> </li></ul></div><h2 id="JavaScriptModules-TheNeedforModules">The Need 
for Modules</h2><p>As web applications have evolved, the use of JavaScript in 
the client has expanded almost exponentially. This has caused all kinds of 
growing pains, since the original design of the web browser, and the initial 
design of JavaScript, was never intended for this level of complexity. Unlike 
Java, JavaScript has no native concept of a "package" or "namespace" and has 
the undesirable tendency to make everything a global.</p><p>In the earliest 
days, client-side JavaScript was constructed as libraries that would define 
simple functions and variables:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: js; gutter: false; theme: Default" 
style="font-size:12px;">function onclickHelp(event) {
   if (helpModal === undefined) {
     helpModal = ...

Modified: websites/production/tapestry/content/javascript-rewrite-in-54.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite-in-54.html 
(original)
+++ websites/production/tapestry/content/javascript-rewrite-in-54.html Tue Nov  
8 12:22:26 2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript Rewrite in 5.4</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript Rewrite in 5.4</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -60,11 +55,11 @@
 
       <div id="content">
                 <div id="ConfluenceContent"><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1447035602516 {padding: 0px;}
-div.rbtoc1447035602516 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1447035602516 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1478607611980 {padding: 0px;}
+div.rbtoc1478607611980 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1478607611980 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1447035602516">
+/*]]>*/</style></p><div class="toc-macro rbtoc1478607611980">
 <ul class="toc-indentation"><li><a  
href="#JavaScriptRewritein5.4-TapestryandJavaScript">Tapestry and 
JavaScript</a></li><li><a  
href="#JavaScriptRewritein5.4-TapestryJavaScriptLimitations(through5.3)">Tapestry
 JavaScript Limitations (through 5.3)</a>
 <ul class="toc-indentation"><li><a  
href="#JavaScriptRewritein5.4-DependenceonPrototype/Scriptaculous">Dependence 
on Prototype/Scriptaculous</a></li><li><a  
href="#JavaScriptRewritein5.4-LackofDocumentation">Lack of 
Documentation</a></li><li><a  
href="#JavaScriptRewritein5.4-LackofModuleStructure">Lack of Module 
Structure</a></li><li><a  
href="#JavaScriptRewritein5.4-ComplexInitialization">Complex 
Initialization</a></li></ul>
 </li><li><a  
href="#JavaScriptRewritein5.4-JavaScriptImprovementsfor5.4">JavaScript 
Improvements for 5.4</a>

Modified: websites/production/tapestry/content/javascript.html
==============================================================================
--- websites/production/tapestry/content/javascript.html (original)
+++ websites/production/tapestry/content/javascript.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JavaScript</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/jmx-module.html
==============================================================================
--- websites/production/tapestry/content/jmx-module.html (original)
+++ websites/production/tapestry/content/jmx-module.html Tue Nov  8 12:22:26 
2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JMX Module</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">JMX Module</h1></div></div>
       <div class="clearer"></div>
       </div>
 


Reply via email to