Modified: websites/production/tapestry/content/getting-started.html
==============================================================================
--- websites/production/tapestry/content/getting-started.html (original)
+++ websites/production/tapestry/content/getting-started.html Wed Sep 20 
12:29:16 2017
@@ -27,6 +27,15 @@
       </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/shBrushPlain.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushBash.js' 
type='text/javascript'></script>
+        <script>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -67,7 +76,70 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><parameter 
ac:name="style">float:right</parameter><parameter ac:name="title">Related 
Articles</parameter><parameter 
ac:name="class">aui-label</parameter><rich-text-body><parameter 
ac:name="showLabels">false</parameter><parameter 
ac:name="showSpace">false</parameter><parameter ac:name="title">Related 
Articles</parameter><parameter ac:name="cql">label = "new-users" and space = 
currentSpace()</parameter></rich-text-body><p>&#160;</p><p>Getting started with 
Tapestry is easy, and you have lots of ways to begin: watch a video, browse the 
source code of a working demo app, create a skeleton app using Maven, or step 
through the tutorial.</p><h2 id="GettingStarted-Watchashortvideo">Watch a short 
video</h2><p>For a fast-paced introduction, watch Mark W. Shead's <a  
class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>. This video shows how to set up a simple 
Tapestry application, comp
 lete with form validation, Hibernate-based persistence, and Ajax. The video 
provides a preview of the development speed and productivity that experienced 
Tapestry users enjoy.</p><h2 id="GettingStarted-Playwithaworkingdemoapp">Play 
with a working demo app</h2><p>You can also play with Tapestry via our live 
demonstration applications. To start, have a look at the <a  
class="external-link" href="https://tapestry-app.apache.org/hotels/";>Hotel 
Booking Demo</a>. The <a  class="external-link" 
href="http://github.com/bobharner/tapestry5-hotel-booking-5.4/"; 
rel="nofollow">source code</a> is provided so you can download and play with 
it.</p><h2 id="GettingStarted-CreateyourfirstTapestryproject">Create your first 
Tapestry project</h2><p>The easiest way to start a new app is to use <a  
class="external-link" href="http://maven.apache.org";>Apache Maven</a> to create 
your initial project; Maven can use an <em>archetype</em> (a kind of project 
template) to create a bare-bones Tapestry application 
 for you.</p><p>Once you have Maven installed, execute the following 
command:</p><plain-text-body>mvn archetype:generate 
-DarchetypeCatalog=http://tapestry.apache.org</plain-text-body><p><span 
style="line-height: 1.4285715;">(Alternatively, <span> if you want to get an 
archetype for a not-yet-released version of Tapestry</span> &#8211; most users 
don't&#160;&#8211; you can use the staging URI, <code><span 
class="nolink"><span 
class="nolink">https://repository.apache.org/content/repositories/staging</span></span></code>
 ).<br clear="none"></span></p><p><span style="line-height: 
1.4285715;"><span>Maven will prompt you for the archetype to create ("Tapestry 
5 Quickstart Project") and the exact version number (e.g., "5.4.3"). It also 
asks you for a group id, an artifact id, and a version number.</span> You can 
see this in the following transcript:</span></p><parameter 
ac:name="language">text</parameter><plain-text-body>$ mvn archetype:generate 
-DarchetypeCatalog=http://tapestry.apache.or
 g
+                <div id="ConfluenceContent"><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="tapestry-for-jsf-users.html">Tapestry for 
JSF Users</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-tutorial.html">Tapestry Tutorial</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="principles.html">Principles</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="getting-started.html">Getting Started</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="introduction.html">Introduction</a>
+                
+                        
+                    </div>
+    </li></ul>
+</div>
+
+
+<p>&#160;</p><p>Getting started with Tapestry is easy, and you have lots of 
ways to begin: watch a video, browse the source code of a working demo app, 
create a skeleton app using Maven, or step through the tutorial.</p><h2 
id="GettingStarted-Watchashortvideo">Watch a short video</h2><p>For a 
fast-paced introduction, watch Mark W. Shead's <a  class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>. This video shows how to set up a simple 
Tapestry application, complete with form validation, Hibernate-based 
persistence, and Ajax. The video provides a preview of the development speed 
and productivity that experienced Tapestry users enjoy.</p><h2 
id="GettingStarted-Playwithaworkingdemoapp">Play with a working demo 
app</h2><p>You can also play with Tapestry via our live demonstration 
applications. To start, have a look at the <a  class="external-link" 
href="https://tapestry-app.apache.org/hotels/";>Hotel Booking Demo</a>. The
  <a  class="external-link" 
href="http://github.com/bobharner/tapestry5-hotel-booking-5.4/"; 
rel="nofollow">source code</a> is provided so you can download and play with 
it.</p><h2 id="GettingStarted-CreateyourfirstTapestryproject">Create your first 
Tapestry project</h2><p>The easiest way to start a new app is to use <a  
class="external-link" href="http://maven.apache.org";>Apache Maven</a> to create 
your initial project; Maven can use an <em>archetype</em> (a kind of project 
template) to create a bare-bones Tapestry application for you.</p><p>Once you 
have Maven installed, execute the following command:</p><div 
class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<pre>mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org</pre>
+</div></div><p><span style="line-height: 1.4285715;">(Alternatively, <span> if 
you want to get an archetype for a not-yet-released version of Tapestry</span> 
&#8211; most users don't&#160;&#8211; you can use the staging URI, <code><span 
class="nolink"><span 
class="nolink">https://repository.apache.org/content/repositories/staging</span></span></code>
 ).<br clear="none"></span></p><p><span style="line-height: 
1.4285715;"><span>Maven will prompt you for the archetype to create ("Tapestry 
5 Quickstart Project") and the exact version number (e.g., "5.4.3"). It also 
asks you for a group id, an artifact id, and a version number.</span> You can 
see this in the following transcript:</span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">$ mvn archetype:generate 
-DarchetypeCatalog=http://tapestry.apache.org
 [INFO] Scanning for projects...
 [INFO]                                                                         
 [INFO] ------------------------------------------------------------------------
@@ -124,7 +196,9 @@ package: com.example.newapp
 [INFO] Final Memory: 16M/303M
 [INFO] ------------------------------------------------------------------------
 
-</plain-text-body><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p><p>Maven will (after performing a number of one-time 
downloads) create a skeleton project ready to run. Because we specified an 
artifactId of "newapp", the project is created in the <code>newapp</code> 
directory. (Note: if you get "Unable to get resource" warnings at this stage, 
you may be behind a firewall which blocks outbound HTTP requests to Maven 
repositories.)</p><p>To run the skeleton application, change to the 
<code>newapp</code> directory and execute the <code>"mvn jetty:run"</code> 
command to start the Jetty app server:</p><parameter 
ac:name="language">bash</parameter><plain-text-body>$ cd newapp
+</pre>
+</div></div><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p><p>Maven will (after performing a number of one-time 
downloads) create a skeleton project ready to run. Because we specified an 
artifactId of "newapp", the project is created in the <code>newapp</code> 
directory. (Note: if you get "Unable to get resource" warnings at this stage, 
you may be behind a firewall which blocks outbound HTTP requests to Maven 
repositories.)</p><p>To run the skeleton application, change to the 
<code>newapp</code> directory and execute the <code>"mvn jetty:run"</code> 
command to start the Jetty app server:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: bash; gutter: false; theme: Default" 
style="font-size:12px;">$ cd newapp
 $ mvn jetty:run
 [INFO] Scanning for projects...
 [INFO]
@@ -142,7 +216,9 @@ Application 'app' (version 1.0-SNAPSHOT-
         /_/                   /___/  5.4.1 (development mode)
 
 [INFO] Started [email protected]:8080
-[INFO] Started Jetty Server</plain-text-body><p>&#160;</p><p>After some more 
one-time downloads you can open your browser to <a  class="external-link" 
href="http://localhost:8080/newapp"; 
rel="nofollow">http://localhost:8080/newapp</a> to see the application 
running:</p><p><span class="confluence-embedded-file-wrapper 
image-center-wrapper confluence-embedded-manual-size"><img 
class="confluence-embedded-image confluence-content-image-border image-center" 
height="488" width="500" 
src="getting-started.data/newapp_Index.png"></span></p><p>The application 
consists of three pages sharing a common look and feel. The initial page, 
Index, allows you to perform some basic operations.</p><p>You can also load the 
newly-created project it into any IDE and start coding. See the next section on 
where to find the different components of the application.</p><h2 
id="GettingStarted-Exploringthegeneratedproject">Exploring the generated 
project</h2><p>The archetype creates the following files:</p><plain-
 text-body>newapp/
+[INFO] Started Jetty Server</pre>
+</div></div><p>&#160;</p><p>After some more one-time downloads you can open 
your browser to <a  class="external-link" href="http://localhost:8080/newapp"; 
rel="nofollow">http://localhost:8080/newapp</a> to see the application 
running:</p><p><span class="confluence-embedded-file-wrapper 
image-center-wrapper confluence-embedded-manual-size"><img 
class="confluence-embedded-image confluence-content-image-border image-center" 
height="488" width="500" 
src="getting-started.data/newapp_Index.png"></span></p><p>The application 
consists of three pages sharing a common look and feel. The initial page, 
Index, allows you to perform some basic operations.</p><p>You can also load the 
newly-created project it into any IDE and start coding. See the next section on 
where to find the different components of the application.</p><h2 
id="GettingStarted-Exploringthegeneratedproject">Exploring the generated 
project</h2><p>The archetype creates the following files:</p><div 
class="preformatted panel" style="b
 order-width: 1px;"><div class="preformattedContent panelContent">
+<pre>newapp/
 &#9500;&#9472;&#9472; build.gradle
 &#9500;&#9472;&#9472; gradle
 &#9474;   &#9492;&#9472;&#9472; wrapper
@@ -212,7 +288,8 @@ Application 'app' (version 1.0-SNAPSHOT-
         &#9474;   &#9492;&#9472;&#9472; PLACEHOLDER
         &#9492;&#9472;&#9472; resources
             &#9492;&#9472;&#9472; PLACEHOLDER
-30 directories, 39 files</plain-text-body><p>A Tapestry application is 
composed of pages, each page consisting of one template file and one Java 
class.</p><p>Tapestry page templates have the .tml extension and are found 
within src/main/<strong>resources</strong>/ under the app's 
<strong>pages</strong> package (src/main/resources/com/example/newapp/pages, in 
this example). Templates are essentially HTML with some special markup to 
reference properties in the corresponding Java class and to reference 
ready-made or custom components.</p><p>Similarly, Tapestry page classes are 
found in within the src/main/<strong>java</strong> under the app's 
<em><strong>pages</strong></em> package 
(src/main/java/com/example/newapp/pages, in this example) and their name 
matches their template name (Index.tml -&gt; Index.java).</p><p>In the skeleton 
project, most of the HTML is not found on the pages themselves but in a Layout 
component which acts as a global template for the whole site. Java classes for
  components live in 
src/main/<strong>java</strong>/com/example/newapp/<strong>components</strong> 
and component templates go in 
src/main/<strong>resources</strong>/com/example/newapp/<strong>components</strong>.</p><p>The
 archetype includes a few optional extras:</p><ul><li>The bundled version of 
the <a  class="external-link" href="http://getbootstrap.com/"; 
rel="nofollow">Bootstrap CSS library</a> has a per-project override. You can 
see the files in src/webapp/context/mybootstrap, and the overrides to enable 
that in AppModule.java.</li><li>By default, Tapestry users <a  
class="external-link" href="http://prototypejs.org/"; 
rel="nofollow">Prototype</a> as its client-side library, the archetype 
overrides this to <a  class="external-link" href="https://jquery.org/"; 
rel="nofollow">jQuery</a>, which is preferred for new projects.</li><li>The 
archetype adds a simple filter that shows the timing of each 
request.</li><li>The archetype sets up not just for builds with Maven, but also 
via <a  
 class="external-link" href="http://gradle.org/"; 
rel="nofollow">Gradle</a>.</li></ul><h2 id="GettingStarted-What'snext?">What's 
next?</h2><p>To deepen your understanding, step through the <a  
href="tapestry-tutorial.html">Tapestry Tutorial</a>, which goes into much more 
detail about setting up your project as well as loading it into Eclipse... then 
continues on to teach you more about Tapestry.</p><p>Be sure to read about the 
core <a  href="principles.html">Tapestry Principles</a>, and browse the 
extensive <a  href="user-guide.html">User Guide</a>.</p><h2 
id="GettingStarted-ObtainHelp">Obtain Help</h2><p>Tapestry has an active user 
mailing list on which you can find a lot of valuable support, commonly within 
just a few minutes. You can subscribe by sending e-mail to <a  
class="external-link" href="mailto:[email protected]"; 
rel="nofollow">[email protected]</a> or look for an answer in 
the <a  class="external-link" href="http://markmail.org/search/li
 st:org.apache.tapestry.users" rel="nofollow">archives</a>. <a  
href="mailing-lists.html">More Options</a>...</p><p>Having trouble? Try our <a  
href="frequently-asked-questions.html">Frequently Asked 
Questions</a>.</p><hr><p>&#160;</p><p>&#160;</p></div>
+30 directories, 39 files</pre>
+</div></div><p>A Tapestry application is composed of pages, each page 
consisting of one template file and one Java class.</p><p>Tapestry page 
templates have the .tml extension and are found within 
src/main/<strong>resources</strong>/ under the app's <strong>pages</strong> 
package (src/main/resources/com/example/newapp/pages, in this example). 
Templates are essentially HTML with some special markup to reference properties 
in the corresponding Java class and to reference ready-made or custom 
components.</p><p>Similarly, Tapestry page classes are found in within the 
src/main/<strong>java</strong> under the app's <em><strong>pages</strong></em> 
package (src/main/java/com/example/newapp/pages, in this example) and their 
name matches their template name (Index.tml -&gt; Index.java).</p><p>In the 
skeleton project, most of the HTML is not found on the pages themselves but in 
a Layout component which acts as a global template for the whole site. Java 
classes for components live in src/main/<
 strong>java</strong>/com/example/newapp/<strong>components</strong> and 
component templates go in 
src/main/<strong>resources</strong>/com/example/newapp/<strong>components</strong>.</p><p>The
 archetype includes a few optional extras:</p><ul><li>The bundled version of 
the <a  class="external-link" href="http://getbootstrap.com/"; 
rel="nofollow">Bootstrap CSS library</a> has a per-project override. You can 
see the files in src/webapp/context/mybootstrap, and the overrides to enable 
that in AppModule.java.</li><li>By default, Tapestry users <a  
class="external-link" href="http://prototypejs.org/"; 
rel="nofollow">Prototype</a> as its client-side library, the archetype 
overrides this to <a  class="external-link" href="https://jquery.org/"; 
rel="nofollow">jQuery</a>, which is preferred for new projects.</li><li>The 
archetype adds a simple filter that shows the timing of each 
request.</li><li>The archetype sets up not just for builds with Maven, but also 
via <a  class="external-link" href="ht
 tp://gradle.org/" rel="nofollow">Gradle</a>.</li></ul><h2 
id="GettingStarted-What'snext?">What's next?</h2><p>To deepen your 
understanding, step through the <a  href="tapestry-tutorial.html">Tapestry 
Tutorial</a>, which goes into much more detail about setting up your project as 
well as loading it into Eclipse... then continues on to teach you more about 
Tapestry.</p><p>Be sure to read about the core <a  
href="principles.html">Tapestry Principles</a>, and browse the extensive <a  
href="user-guide.html">User Guide</a>.</p><h2 
id="GettingStarted-ObtainHelp">Obtain Help</h2><p>Tapestry has an active user 
mailing list on which you can find a lot of valuable support, commonly within 
just a few minutes. You can subscribe by sending e-mail to <a  
class="external-link" href="mailto:[email protected]"; 
rel="nofollow">[email protected]</a> or look for an answer in 
the <a  class="external-link" 
href="http://markmail.org/search/list:org.apache.tapestry.users"; 
 rel="nofollow">archives</a>. <a  href="mailing-lists.html">More 
Options</a>...</p><p>Having trouble? Try our <a  
href="frequently-asked-questions.html">Frequently Asked 
Questions</a>.</p><hr><p>&#160;</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/hibernate-core-conf.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core-conf.html (original)
+++ websites/production/tapestry/content/hibernate-core-conf.html Wed Sep 20 
12:29:16 2017
@@ -44,26 +44,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  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="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">Hibernate - Core - Conf</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">Hibernate - Core - Conf</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -75,85 +62,49 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p><strong>Hibernate 
Configuration</strong> is handled by the Tapestry Hibernate Core module. This 
is done in a just-in-time manner, the first time a Hibernate Session is 
required.</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="using-tapestry-with-hibernate.html">Using 
Tapestry With Hibernate</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="hibernate-support-faq.html">Hibernate 
Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User 
Guide</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="hibernate-statistics.html">Hibernate 
Statistics</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="hibernate-core-conf.html">Hibernate - Core - 
Conf</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="hibernate-core.html">Hibernate - Core</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div>
-
-
-<h2 
id="Hibernate-Core-Conf-HibernateSessionSourceConfiguration">HibernateSessionSource
 Configuration</h2><p>One way to configure hibernate is to create a 
<code>hibernate.cfg.xml</code> file and place it in the root of your 
application (i.e., under src/main/resources). Most Hibernate-specific 
configuration occurs in this file. Another way is to contribute objects that 
perform configuration (such as setting event listeners). Example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+                <div id="ConfluenceContent"><p><strong>Hibernate 
Configuration</strong> is handled by the Tapestry Hibernate Core module. This 
is done in a just-in-time manner, the first time a Hibernate Session is 
required.</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="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</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="hibernate-support-faq.html">Hibernate Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User Guide</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="hibernate-statistics.html">Hibernate Statistics</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="hibernate-core-conf.html">Hibernate - Core - Conf</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="hibernate-core.html">Hibernate - Core</a> 
+  </div> </li></ul></div><h2 
id="Hibernate-Core-Conf-HibernateSessionSourceConfiguration">HibernateSessionSource
 Configuration</h2><p>One way to configure hibernate is to create a 
<code>hibernate.cfg.xml</code> file and place it in the root of your 
application (i.e., under src/main/resources). Most Hibernate-specific 
configuration occurs in this file. Another way is to contribute objects that 
perform configuration (such as setting event listeners). Example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public static void 
contributeHibernateSessionSource(OrderedConfiguration&lt;HibernateConfigurer&gt;
 config)
 {
   config.add("Widget", new WidgetHibernateConfigurer());

Modified: websites/production/tapestry/content/hibernate-core.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core.html (original)
+++ websites/production/tapestry/content/hibernate-core.html Wed Sep 20 
12:29:16 2017
@@ -36,26 +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  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="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">Hibernate - Core</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">Hibernate - Core</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -67,85 +54,49 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p><strong>Hibernate-Core 
</strong>is a Tapestry module that provides basic Hibernate support without 
dependencies on the Tapestry-core (the web framework part of Tapestry).</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="using-tapestry-with-hibernate.html">Using 
Tapestry With Hibernate</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="hibernate-support-faq.html">Hibernate 
Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User 
Guide</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="hibernate-statistics.html">Hibernate 
Statistics</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="hibernate-core-conf.html">Hibernate - Core - 
Conf</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="hibernate-core.html">Hibernate - Core</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div>
-
-
-<p>This module only requires the <a  href="ioc.html">Tapestry IoC</a> module. 
This makes it useful in non-web applications, such as back-end 
processing.</p><p>The <a  href="hibernate.html">Tapestry-hibernate</a> module 
extends this further, adding features to support the creation of CRUD 
(Create/Read/Update/Delete) database applications in Tapestry.</p><h1 
id="Hibernate-Core-LicensingIssues">Licensing Issues</h1><p>Hibernate is 
licensed under the Lesser GNU Public License. This is more restrictive license 
than the Apache Software License used by the rest of Tapestry. The restrictions 
mostly apply to redistributing Hibernate, especially in any altered form, and 
will likely be irrelvant to the vast majority of users, but you should be 
aware.</p><p>This library is compiled against version <strong>3.3.1.GA</strong> 
of Hibernate (and version 3.4.0.GA of hibernate-annotations), but should work 
with more recent versions.</p></div>
+                <div id="ConfluenceContent"><p><strong>Hibernate-Core 
</strong>is a Tapestry module that provides basic Hibernate support without 
dependencies on the Tapestry-core (the web framework part of Tapestry).</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="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</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="hibernate-support-faq.html">Hibernate Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User Guide</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="hibernate-statistics.html">Hibernate Statistics</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="hibernate-core-conf.html">Hibernate - Core - Conf</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="hibernate-core.html">Hibernate - Core</a> 
+  </div> </li></ul></div><p>This module only requires the <a  
href="ioc.html">Tapestry IoC</a> module. This makes it useful in non-web 
applications, such as back-end processing.</p><p>The <a  
href="hibernate.html">Tapestry-hibernate</a> module extends this further, 
adding features to support the creation of CRUD (Create/Read/Update/Delete) 
database applications in Tapestry.</p><h1 
id="Hibernate-Core-LicensingIssues">Licensing Issues</h1><p>Hibernate is 
licensed under the Lesser GNU Public License. This is more restrictive license 
than the Apache Software License used by the rest of Tapestry. The restrictions 
mostly apply to redistributing Hibernate, especially in any altered form, and 
will likely be irrelvant to the vast majority of users, but you should be 
aware.</p><p>This library is compiled against version <strong>3.3.1.GA</strong> 
of Hibernate (and version 3.4.0.GA of hibernate-annotations), but should work 
with more recent versions.</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/hibernate-user-guide.html
==============================================================================
--- websites/production/tapestry/content/hibernate-user-guide.html (original)
+++ websites/production/tapestry/content/hibernate-user-guide.html Wed Sep 20 
12:29:16 2017
@@ -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>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -67,9 +77,9 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p><em>This page describes 
functionality provided by the Tapestry-hibernate-core module, but the 
descriptions apply equally to the Tapestry-jpa 
module.</em><plain-text-body>{float:right|background=#eee}
-{contentbylabel:title=Related 
Articles|showLabels=false|showSpace=false|space=TAPESTRY|labels=hibernate}
-{float}</plain-text-body></p><h1 
id="HibernateUserGuide-Entityvalueencoding">Entity value encoding</h1><p>The 
Tapestry-hibernate-core module provides Value Encoder automatically for all 
mapped Hibernate entity types. This is done by encoding the entity as it's id 
(coerced to a String) and decoding the entity by looking it up in the Hibernate 
Session using the encoded id. Consider the following example:</p><parameter 
ac:name="">java</parameter><plain-text-body>public class ViewPerson
+                <div id="ConfluenceContent"><p><em>This page describes 
functionality provided by the Tapestry-hibernate-core module, but the 
descriptions apply equally to the Tapestry-jpa module.</em></p><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><h1 
id="HibernateUserGuide-Entityvalueencoding">Entity value encoding</h1><p>The 
Tapestry-hibernate-core module provides Value Encoder automatically for all 
mapped Hibernate entity types. This is done by encoding the entity as it's id 
(coerced to a String) and decoding the entity by looking it up in the Hibernate 
Session using the encoded id. Consider the following example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class ViewPerson
 {
   @Property
   private Person person;
@@ -83,17 +93,23 @@
   {
     return person;
   }
-}</plain-text-body><parameter 
ac:name="">java</parameter><plain-text-body>&lt;html 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"&gt;
+}</pre>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;html 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"&gt;
 &lt;body&gt;
   The person's name is: ${person.name}
 &lt;/body&gt;
-&lt;/html&gt;</plain-text-body><p>Accessing the page as 
<strong>/viewperson/152</strong> would load the Person entity with id 152 and 
use that as the page context.</p><h1 
id="HibernateUserGuide-Using@PageActivationContext">Using 
@PageActivationContext</h1><p>If you prefer to use annotations, you may let 
Tapestry generate the page activation context handlers for you. Relying on an 
existing ValueEncoder for the corresponding property you can use the 
@PageActivationContext annotation. The disadvantage is that you can't access 
the handlers in a unit test.</p><parameter 
ac:name="">java</parameter><plain-text-body>public class ViewPerson
+&lt;/html&gt;</pre>
+</div></div><p>Accessing the page as <strong>/viewperson/152</strong> would 
load the Person entity with id 152 and use that as the page context.</p><h1 
id="HibernateUserGuide-Using@PageActivationContext">Using 
@PageActivationContext</h1><p>If you prefer to use annotations, you may let 
Tapestry generate the page activation context handlers for you. Relying on an 
existing ValueEncoder for the corresponding property you can use the 
@PageActivationContext annotation. The disadvantage is that you can't access 
the handlers in a unit test.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class ViewPerson
 {
   @Property
   @PageActivationContext
   private Person person;
   
-}</plain-text-body><h1 id="HibernateUserGuide-Using@Persistwithentities">Using 
@Persist with entities</h1><p>If you wish to persist an entity in the session, 
you may use the "entity" persistence strategy:</p><parameter 
ac:name="">java</parameter><plain-text-body>public class ViewPerson
+}</pre>
+</div></div><h1 id="HibernateUserGuide-Using@Persistwithentities">Using 
@Persist with entities</h1><p>If you wish to persist an entity in the session, 
you may use the "entity" persistence strategy:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class ViewPerson
 {
   @Persist("entity")
   @Property
@@ -104,12 +120,14 @@
     this.person = person;
   }
   
-}</plain-text-body><p>This persistence strategy works with any Hibernate 
entity that is associated with a valid Hibernate Session by persisting only the 
id of the entity. Notice that no onPassivate() method is needed; when the page 
renders the entity is loaded by the id stored in the session.</p><h1 
id="HibernateUserGuide-Using@SessionStatewithentities">Using @SessionState with 
entities</h1><p>
+}</pre>
+</div></div><p>This persistence strategy works with any Hibernate entity that 
is associated with a valid Hibernate Session by persisting only the id of the 
entity. Notice that no onPassivate() method is needed; when the page renders 
the entity is loaded by the id stored in the session.</p><h1 
id="HibernateUserGuide-Using@SessionStatewithentities">Using @SessionState with 
entities</h1><p>
 
 </p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
 <div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>The default strategy for persisting Session State Objects 
is "session". Storing a Hibernate entity into a &lt;HttpSession&gt; is 
problematic because the stored entity is detached from the Hibernate session. 
Similar to @Persist("entity") you may use the "entity" persistence strategy to 
persist Hibernate entities as SSOs:<parameter 
ac:name="">java</parameter><plain-text-body>public class Index
+<p>&#160;</p></div>The default strategy for persisting Session State Objects 
is "session". Storing a Hibernate entity into a &lt;HttpSession&gt; is 
problematic because the stored entity is detached from the Hibernate session. 
Similar to @Persist("entity") you may use the "entity" persistence strategy to 
persist Hibernate entities as SSOs:<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class Index
 {
   @SessionState
   @Property
@@ -118,21 +136,27 @@
   ...
   
 }
-</plain-text-body><p>For this purpose you need to set the value of the symbol 
&lt;HibernateSymbols.ENTITY_SESSION_STATE_PERSISTENCE_STRATEGY_ENABLED&gt; to 
&lt;true&gt;:</p><parameter ac:name="">java</parameter><plain-text-body>public 
class AppModule
+</pre>
+</div></div><p>For this purpose you need to set the value of the symbol 
&lt;HibernateSymbols.ENTITY_SESSION_STATE_PERSISTENCE_STRATEGY_ENABLED&gt; to 
&lt;true&gt;:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class AppModule
 {
     public static void 
contributeApplicationDefaults(MappedConfiguration&lt;String, String&gt; 
configuration)
     {
         
configuration.add(HibernateSymbols.ENTITY_SESSION_STATE_PERSISTENCE_STRATEGY_ENABLED,
 "true");
     }
 }
-</plain-text-body><p>Alternatively you can apply the "entity" persistence 
strategy to a single Hibernate entity:</p><parameter 
ac:name="">java</parameter><plain-text-body>public class AppModule
+</pre>
+</div></div><p>Alternatively you can apply the "entity" persistence strategy 
to a single Hibernate entity:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class AppModule
 {
     public void 
contributeApplicationStateManager(MappedConfiguration&lt;Class, 
ApplicationStateContribution&gt; configuration)
     {
        configuration.add(Person.class, new 
ApplicationStateContribution(HibernatePersistenceConstants.ENTITY));
     }
 }
-</plain-text-body><h1 id="HibernateUserGuide-CommittingChanges">Committing 
Changes</h1><p>All Hibernate operations occur in a transaction, but that 
transaction is aborted at the end of each request; thus any changes you make 
will be <em>lost</em> unless the transaction is committed.</p><p>The correct 
way to commit the transaction is via the @CommitAfter annotation:</p><parameter 
ac:name="">java</parameter><plain-text-body>public class EditPerson
+</pre>
+</div></div><h1 id="HibernateUserGuide-CommittingChanges">Committing 
Changes</h1><p>All Hibernate operations occur in a transaction, but that 
transaction is aborted at the end of each request; thus any changes you make 
will be <em>lost</em> unless the transaction is committed.</p><p>The correct 
way to commit the transaction is via the @CommitAfter annotation:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class EditPerson
 {
   @Persist("entity")
   @Property
@@ -153,7 +177,9 @@
   {
     return personIndex;
   }
-}</plain-text-body><p>In this example, the Person object may be updated by a 
form; the form's success event handler method, onSuccess() has the @CommitAfter 
annotation.</p><p>Behind the scenes, the @CommitAfter annotation causes the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/hibernate/HibernateSessionManager.html";>HibernateSessionManager</a>'s
 commit() method to be executed before the method returns.</p><p>The 
transaction will be committed when the method completes normally.</p><p>The 
transaction will be <em>aborted</em> if the method throws a 
RuntimeException.</p><p>The transaction will be <strong>committed</strong> if 
the method throws a <em>checked</em> exception (one listed in the throws clause 
of the method).</p><h1 
id="HibernateUserGuide-ManagingTransactionsusingDAOs">Managing Transactions 
using DAOs</h1><p>As your application grows, you will likely create a Data 
Access Object layer between your pages and the Hibernate APIs.
 </p><p>The @CommitAfter annotation can be useful there as well.</p><p>You may 
use @CommitAfter on method of your service interface, then use a decorator to 
provide the transaction management logic.</p><p>First definine your DAO's 
service interface:</p><parameter 
ac:name="">java</parameter><plain-text-body>public interface PersonDAO
+}</pre>
+</div></div><p>In this example, the Person object may be updated by a form; 
the form's success event handler method, onSuccess() has the @CommitAfter 
annotation.</p><p>Behind the scenes, the @CommitAfter annotation causes the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/hibernate/HibernateSessionManager.html";>HibernateSessionManager</a>'s
 commit() method to be executed before the method returns.</p><p>The 
transaction will be committed when the method completes normally.</p><p>The 
transaction will be <em>aborted</em> if the method throws a 
RuntimeException.</p><p>The transaction will be <strong>committed</strong> if 
the method throws a <em>checked</em> exception (one listed in the throws clause 
of the method).</p><h1 
id="HibernateUserGuide-ManagingTransactionsusingDAOs">Managing Transactions 
using DAOs</h1><p>As your application grows, you will likely create a Data 
Access Object layer between your pages and the Hibernate APIs.</p><p>
 The @CommitAfter annotation can be useful there as well.</p><p>You may use 
@CommitAfter on method of your service interface, then use a decorator to 
provide the transaction management logic.</p><p>First definine your DAO's 
service interface:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public interface PersonDAO
 {
   Person findByName(String name);
 
@@ -165,17 +191,22 @@
 
   @CommitAfter
   void delete(Person person);
-}</plain-text-body><p>Next, define your service in your application's Module 
class:</p><parameter ac:name="">java</parameter><plain-text-body>public class 
AppModule
+}</pre>
+</div></div><p>Next, define your service in your application's Module 
class:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class AppModule
 {
    public static void bind(ServiceBinder binder)
    {
       binder.bind(PersonDAO.class, PersonDAOImpl.class);
    }
-}</plain-text-body><p>Finally, you should use the HibernateTransactionAdvisor 
to add transaction advice:</p><parameter 
ac:name="">java</parameter><plain-text-body>    @Match("*DAO")
+}</pre>
+</div></div><p>Finally, you should use the HibernateTransactionAdvisor to add 
transaction advice:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    @Match("*DAO")
     public static void adviseTransactions(HibernateTransactionAdvisor advisor, 
MethodAdviceReceiver receiver)
     {
         advisor.addTransactionCommitAdvice(receiver);
-    }</plain-text-body><p>This advice method is configured to match against 
any service whose id ends with "DAO", such as "PersonDAO".</p><p>The advisor 
scans the service interface and identifies any methods with the @CommitAfter 
annotation.</p></div>
+    }</pre>
+</div></div><p>This advice method is configured to match against any service 
whose id ends with "DAO", such as "PersonDAO".</p><p>The advisor scans the 
service interface and identifies any methods with the @CommitAfter 
annotation.</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/hibernate.html
==============================================================================
--- websites/production/tapestry/content/hibernate.html (original)
+++ websites/production/tapestry/content/hibernate.html Wed Sep 20 12:29:16 2017
@@ -36,26 +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  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="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">Hibernate</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">Hibernate</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -67,85 +54,49 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>The <strong>Tapestry-hibernate 
</strong>module provides out-of-the-box support for using Hibernate 3 as the 
back end for normal CRUD style Tapestry applications.</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="using-tapestry-with-hibernate.html">Using 
Tapestry With Hibernate</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="hibernate-support-faq.html">Hibernate 
Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User 
Guide</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="hibernate-statistics.html">Hibernate 
Statistics</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="hibernate-core-conf.html">Hibernate - Core - 
Conf</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="hibernate-core.html">Hibernate - Core</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div>
-
-
-<p>This represents access to the native Hibernate interfaces, exposed in a 
thread-safe manner, within a <em>session-per-request</em> strategy.</p><p>Note 
that a number of the more esoteric ideas in Hibernate are not supported, 
including nested transactions and supporting multiple persistence 
units.</p><p>The <a  href="hibernate-core.html">tapestry-hibernate-core</a> 
module allows non-web applications to access Hibernate.</p><h1 
id="Hibernate-LicensingIssues">Licensing Issues</h1><p>Hibernate is licensed 
under the Lesser GNU Public License. This is more restrictive license than the 
Apache Software License used by the rest of Tapestry. The restrictions mostly 
apply to redistributing Hibernate, especially in any altered form, and will 
likely be irrelevant to the vast majority of users, but you should be 
aware.</p><p>This library is compiled against version <strong>3.3.1.GA</strong> 
of Hibernate (and version 3.4.0.GA of hibernate-annotations), but should work 
with more recent versions.<
 /p><h2 id="Hibernate-Notes">Notes</h2><ul><li>Transactions are 
<em>aborted</em> (not <em>committed</em>) at the end of each request: you must 
explicitly commit the transaction if changes are to be saved.</li><li>The 
CommitAfter annotation for component and service methods can commit the 
transaction automatically after the method is invoked.</li><li><a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/hibernate/HibernateGridDataSource.html";>HibernateGridDataSource</a>
 can be used with the Grid component to support optimized queries against large 
data sets.</li></ul></div>
+                <div id="ConfluenceContent"><p>The <strong>Tapestry-hibernate 
</strong>module provides out-of-the-box support for using Hibernate 3 as the 
back end for normal CRUD style Tapestry applications.</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="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</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="hibernate-support-faq.html">Hibernate Support 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="hibernate.html">Hibernate</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="hibernate-user-guide.html">Hibernate User Guide</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="hibernate-statistics.html">Hibernate Statistics</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="hibernate-core-conf.html">Hibernate - Core - Conf</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="hibernate-core.html">Hibernate - Core</a> 
+  </div> </li></ul></div><p>This represents access to the native Hibernate 
interfaces, exposed in a thread-safe manner, within a 
<em>session-per-request</em> strategy.</p><p>Note that a number of the more 
esoteric ideas in Hibernate are not supported, including nested transactions 
and supporting multiple persistence units.</p><p>The <a  
href="hibernate-core.html">tapestry-hibernate-core</a> module allows non-web 
applications to access Hibernate.</p><h1 
id="Hibernate-LicensingIssues">Licensing Issues</h1><p>Hibernate is licensed 
under the Lesser GNU Public License. This is more restrictive license than the 
Apache Software License used by the rest of Tapestry. The restrictions mostly 
apply to redistributing Hibernate, especially in any altered form, and will 
likely be irrelevant to the vast majority of users, but you should be 
aware.</p><p>This library is compiled against version <strong>3.3.1.GA</strong> 
of Hibernate (and version 3.4.0.GA of hibernate-annotations), but should work wi
 th more recent versions.</p><h2 
id="Hibernate-Notes">Notes</h2><ul><li>Transactions are <em>aborted</em> (not 
<em>committed</em>) at the end of each request: you must explicitly commit the 
transaction if changes are to be saved.</li><li>The CommitAfter annotation for 
component and service methods can commit the transaction automatically after 
the method is invoked.</li><li><a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/hibernate/HibernateGridDataSource.html";>HibernateGridDataSource</a>
 can be used with the Grid component to support optimized queries against large 
data sets.</li></ul></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/https.html
==============================================================================
--- websites/production/tapestry/content/https.html (original)
+++ websites/production/tapestry/content/https.html Wed Sep 20 12:29:16 2017
@@ -27,6 +27,14 @@
       </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>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -36,26 +44,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  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="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">HTTPS</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">HTTPS</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -67,20 +62,45 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="HTTPS-SecuringyourapplicationwithHTTPS">Securing your application with 
HTTPS</h1><parameter ac:name="style">float:right</parameter><parameter 
ac:name="title">Related Articles</parameter><parameter 
ac:name="class">aui-label</parameter><rich-text-body><parameter 
ac:name="showLabels">false</parameter><parameter 
ac:name="showSpace">false</parameter><parameter ac:name="title">Related 
Articles</parameter><parameter ac:name="cql">label = "security" and space = 
currentSpace()</parameter></rich-text-body><p>Tapestry assumes your application 
will be primarily deployed as a standard web application, using HTTP&#160;(not 
HTTPS) as the transport mechanism.</p><p>However, many applications will need 
to have some of their pages secured: only accessible via HTTPS. This could be a 
login page, or a product ordering wizard, or administrative pages.</p><p>All 
that is necessary to mark a page as secure is to add the @Secure annotation to 
the page class
 :</p><plain-text-body>@Secure
+                <div id="ConfluenceContent"><h1 
id="HTTPS-SecuringyourapplicationwithHTTPS">Securing your application with 
HTTPS</h1><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="security-faq.html">Security 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="https.html">HTTPS</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="security.html">Security</a> 
+  </div> </li></ul></div><p>Tapestry assumes your application will be 
primarily deployed as a standard web application, using HTTP&#160;(not HTTPS) 
as the transport mechanism.</p><p>However, many applications will need to have 
some of their pages secured: only accessible via HTTPS. This could be a login 
page, or a product ordering wizard, or administrative pages.</p><p>All that is 
necessary to mark a page as secure is to add the @Secure annotation to the page 
class:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@Secure
 public class ProcessOrder
 {
   . . .
 }
-</plain-text-body><p>When a page is marked as secure, Tapestry will ensure 
that access to that page uses HTTPS. All links to the page will use the "https" 
protocol.</p><p>If an attempt is made to access a secure page using a 
non-secure request (a normal HTTP request), Tapestry will send an HTTPS 
redirect to the client.</p><p>Links to non-secure pages from a secure page will 
do the reverse: a complete URL with an "http" protocol will be used. In other 
words, Tapestry manages the transition from insecure to secure and back 
again.</p><p>Links to other (secure) pages <em>and to assets</em> will be based 
on relative URLs and, therefore, secure.</p><p>The rationale behind using 
secure links to assets from secure pages is that it prevents the client web 
browser from reporting a mixed security level.</p><h2 
id="HTTPS-SecuringMultiplePages">Securing Multiple Pages</h2><p>Rather than 
placing an @Secure annotation on individual pages, it is possible to enable 
security for folders of pages. All
  pages in or beneath the folder will be secured.</p><p>This is accomplished by 
making a contribution to the MetaDataLocator service configuration. For 
example, to secure all pages in the "admin" folder:</p><plain-text-body>public 
void contributeMetaDataLocator(MappedConfiguration&lt;String,String&gt; 
configuration)
+</pre>
+</div></div><p>When a page is marked as secure, Tapestry will ensure that 
access to that page uses HTTPS. All links to the page will use the "https" 
protocol.</p><p>If an attempt is made to access a secure page using a 
non-secure request (a normal HTTP request), Tapestry will send an HTTPS 
redirect to the client.</p><p>Links to non-secure pages from a secure page will 
do the reverse: a complete URL with an "http" protocol will be used. In other 
words, Tapestry manages the transition from insecure to secure and back 
again.</p><p>Links to other (secure) pages <em>and to assets</em> will be based 
on relative URLs and, therefore, secure.</p><p>The rationale behind using 
secure links to assets from secure pages is that it prevents the client web 
browser from reporting a mixed security level.</p><h2 
id="HTTPS-SecuringMultiplePages">Securing Multiple Pages</h2><p>Rather than 
placing an @Secure annotation on individual pages, it is possible to enable 
security for folders of pages. All pages
  in or beneath the folder will be secured.</p><p>This is accomplished by 
making a contribution to the MetaDataLocator service configuration. For 
example, to secure all pages in the "admin" folder:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public void 
contributeMetaDataLocator(MappedConfiguration&lt;String,String&gt; 
configuration)
 {
     configuration.add("admin:" + MetaDataConstants.SECURE_PAGE, "true");
 }
-</plain-text-body><p>Here "admin" is the folder name, and the colon is a 
separator between the folder name and the the meta data key. SECURE_PAGE is a 
public constant for value "tapestry.secure-page";</p><p>When Tapestry is 
determining if a page is secure or not, it starts by checking for the @Secure 
annotation, then it consults the MetaDataLocator service.</p><p>If you want to 
make your entire application secure:</p><plain-text-body>public void 
contributeMetaDataLocator(MappedConfiguration&lt;String,String&gt; 
configuration)
+</pre>
+</div></div><p>Here "admin" is the folder name, and the colon is a separator 
between the folder name and the the meta data key. SECURE_PAGE is a public 
constant for value "tapestry.secure-page";</p><p>When Tapestry is determining 
if a page is secure or not, it starts by checking for the @Secure annotation, 
then it consults the MetaDataLocator service.</p><p>If you want to make your 
entire application secure:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public void 
contributeMetaDataLocator(MappedConfiguration&lt;String,String&gt; 
configuration)
 {
     configuration.add(MetaDataConstants.SECURE_PAGE, "true");
 }
-</plain-text-body><p>With no colon, the meta data applies to the entire 
application (including any component libraries used in the application).</p><h2 
id="HTTPS-BaseURLSupport">Base URL Support</h2><p>When Tapestry switches back 
and forth between secure and unsecure mode, it must create a full URL (rather 
than a relative URL) that identifies the protocol, server host name and perhaps 
even a port number.</p><p>That can be a stumbling point, especially the server 
host name. In a cluster, behind a fire wall, the server host name available to 
Tapestry, via the <code>HttpServletRequest.getServerName()</code> method, is 
often <em>not</em> the server name the client web browser sees ... instead it 
is the name of the internal server behind the firewall. The firewall server has 
the correct name from the web browser's point of view.</p><p>Because of this, 
Tapestry includes a hook to allow you to override how these default URLs are 
created: the BaseURLSource service.</p><p>The default impleme
 ntation is based on just the getServerName() method; it's often not the 
correct choice even for development.</p><p>Fortunately, it is very easy to 
override this implementation. Here's an example of an override that uses the 
default port numbers that the <a  class="external-link" 
href="http://www.eclipse.org/jetty/"; rel="nofollow">Jetty servlet container</a> 
uses for normal HTTP (port 8080) and for secure HTTPS (port 
8443):</p><plain-text-body>    public static void 
contributeServiceOverride(MappedConfiguration&lt;Class,Object&gt; configuration)
+</pre>
+</div></div><p>With no colon, the meta data applies to the entire application 
(including any component libraries used in the application).</p><h2 
id="HTTPS-BaseURLSupport">Base URL Support</h2><p>When Tapestry switches back 
and forth between secure and unsecure mode, it must create a full URL (rather 
than a relative URL) that identifies the protocol, server host name and perhaps 
even a port number.</p><p>That can be a stumbling point, especially the server 
host name. In a cluster, behind a fire wall, the server host name available to 
Tapestry, via the <code>HttpServletRequest.getServerName()</code> method, is 
often <em>not</em> the server name the client web browser sees ... instead it 
is the name of the internal server behind the firewall. The firewall server has 
the correct name from the web browser's point of view.</p><p>Because of this, 
Tapestry includes a hook to allow you to override how these default URLs are 
created: the BaseURLSource service.</p><p>The default implementatio
 n is based on just the getServerName() method; it's often not the correct 
choice even for development.</p><p>Fortunately, it is very easy to override 
this implementation. Here's an example of an override that uses the default 
port numbers that the <a  class="external-link" 
href="http://www.eclipse.org/jetty/"; rel="nofollow">Jetty servlet container</a> 
uses for normal HTTP (port 8080) and for secure HTTPS (port 8443):</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    public static void 
contributeServiceOverride(MappedConfiguration&lt;Class,Object&gt; configuration)
     {
         BaseURLSource source = new BaseURLSource()
         {
@@ -96,7 +116,8 @@ public class ProcessOrder
 
         configuration.add(BaseURLSource.class, source);
     }
-</plain-text-body><p>This override is hardcoded to generate URLs for 
localhost; as such you might use it for development but certainly not in 
production.</p><h2 id="HTTPS-DevelopmentMode">Development Mode</h2><p>When 
working in development mode, the Secure annotation is ignored. This is 
controlled by the tapestry.secure-enabled <a  
href="configuration.html">configuration symbol</a>.</p><h2 
id="HTTPS-ApplicationServerConfiguration">Application Server 
Configuration</h2><p>Setting up HTTPS support varies from application server to 
application server.</p><ul><li>Jetty:<ul><li><a  class="external-link" 
href="https://wiki.eclipse.org/Jetty/Howto/Configure_SSL"; 
rel="nofollow">Versions 7, 8 or 9</a></li></ul></li><li>Tomcat:<ul><li><a  
class="external-link" 
href="http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html";>Version 
6.0</a></li><li><a  class="external-link" 
href="http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html";>Version 
5.5</a></li></ul></li></ul></div>
+</pre>
+</div></div><p>This override is hardcoded to generate URLs for localhost; as 
such you might use it for development but certainly not in production.</p><h2 
id="HTTPS-DevelopmentMode">Development Mode</h2><p>When working in development 
mode, the Secure annotation is ignored. This is controlled by the 
tapestry.secure-enabled <a  href="configuration.html">configuration 
symbol</a>.</p><h2 id="HTTPS-ApplicationServerConfiguration">Application Server 
Configuration</h2><p>Setting up HTTPS support varies from application server to 
application server.</p><ul><li>Jetty:<ul><li><a  class="external-link" 
href="https://wiki.eclipse.org/Jetty/Howto/Configure_SSL"; 
rel="nofollow">Versions 7, 8 or 9</a></li></ul></li><li>Tomcat:<ul><li><a  
class="external-link" 
href="http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html";>Version 
6.0</a></li><li><a  class="external-link" 
href="http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html";>Version 
5.5</a></li></ul></li></ul></div>
       </div>
 
       <div class="clearer"></div>


Reply via email to