Author: buildbot
Date: Sun Nov 23 02:19:29 2014
New Revision: 930167

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    
websites/production/tapestry/content/exploring-the-project.data/app-error-1.png
    
websites/production/tapestry/content/exploring-the-project.data/app-error-2.png
    
websites/production/tapestry/content/exploring-the-project.data/app-live-reload.png
    websites/production/tapestry/content/exploring-the-project.html
    
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.data/hilo-1.png
    
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html

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

Modified: 
websites/production/tapestry/content/exploring-the-project.data/app-error-1.png
==============================================================================
Binary files - no diff available.

Modified: 
websites/production/tapestry/content/exploring-the-project.data/app-error-2.png
==============================================================================
Binary files - no diff available.

Modified: 
websites/production/tapestry/content/exploring-the-project.data/app-live-reload.png
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/exploring-the-project.html
==============================================================================
--- websites/production/tapestry/content/exploring-the-project.html (original)
+++ websites/production/tapestry/content/exploring-the-project.html Sun Nov 23 
02:19:29 2014
@@ -238,7 +238,7 @@ public class Index
 <p>The value inside the curly braces is a <em>property expression</em>. 
Tapestry uses its own property expression language that is expressive, fast, 
and type-safe.</p>    <div class="aui-message warning shadowed 
information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
-                            <pre>Tapestry does _not_ use reflection to 
implement property expressions.</pre>
+                            <pre>Tapestry does NOT use reflection to implement 
property expressions.</pre>
                     </div>
     </div>
 <p>More advanced property expressions can traverse multiple properties (for 
example, <code>user.address.city</code>), or even invoke public methods. Here 
the expansion simply reads the <code>currentTime</code> property of the 
page.</p><p>Tapestry follows the rules defined by Sun's JavaBeans 
specification: a property name of <code>currentTime</code> maps to two methods: 
<code>getCurrentTime()</code> and <code>setCurrentTime()</code>. If you omit 
one or the other of these methods, the property is either read only (as here), 
or write only. (Keep in mind that as far as JavaBeans properties go, it's the 
<em>methods</em> that count; the names of the instance variables, or even 
whether they exist, is immaterial.)</p><p>Tapestry does go one step further: it 
ignores case when matching properties inside the expansion to properties of the 
page. In the template we could say ${currenttime} or ${CurrentTime} or any 
variation, and Tapestry will <em>still</em> invoke the 
<code>getCurrentTime()</cod
 e> method.</p><p>Note that in Tapestry it is not necessary to configure what 
object holds the <code>currentTime</code> property; a template and a page are 
always used in combination with each other; expressions are always rooted in 
the page instance, in this case, an instance of the Index class.</p><p>The 
Index.tml template includes a second expansion:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -264,13 +264,13 @@ public class Index
 
 
 
-<span class="gliffy-container" id="gliffy-container-24346949-1602" 
data-fullwidth="913" data-ceoid="24188263" 
data-edit="${diagramEditLink.getLinkUrl()}" 
data-full="/confluence/plugins/gliffy/viewer.action?inline=false&amp;attachmentId=24346949&amp;attachmentVersion=2&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D24188263"
 data-filename="Templates and Parameters">
+<span class="gliffy-container" id="gliffy-container-24346949-4846" 
data-fullwidth="913" data-ceoid="24188263" 
data-edit="${diagramEditLink.getLinkUrl()}" 
data-full="/confluence/plugins/gliffy/viewer.action?inline=false&amp;attachmentId=24346949&amp;attachmentVersion=2&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D24188263"
 data-filename="Templates and Parameters">
 
-    <map id="gliffy-map-24346949-8372" name="gliffy-map-24346949-8372"></map>
+    <map id="gliffy-map-24346949-2363" name="gliffy-map-24346949-2363"></map>
 
-    <img class="gliffy-image gliffy-image-border" 
id="gliffy-image-24346949-1602" width="304" height="300" data-full-width="913" 
data-full-height="901" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2";
 alt="Templates and Parameters" usemap="#gliffy-map-24346949-8372">
+    <img class="gliffy-image gliffy-image-border" 
id="gliffy-image-24346949-4846" width="304" height="300" data-full-width="913" 
data-full-height="901" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2";
 alt="Templates and Parameters" usemap="#gliffy-map-24346949-2363">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-1602" 
name="gliffy-dynamic-map-24346949-1602"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-4846" 
name="gliffy-dynamic-map-24346949-4846"></map>
 </span>
 
 
@@ -283,7 +283,7 @@ public class Index
     return &quot;A great day to learn Tapestry&quot;;
   }
 ]]></script>
-</div></div><p>Make sure you save changes; then click the refresh link in the 
web browser:</p><p><img class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-live-reload.png?version=2&amp;modificationDate=1321974913000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-live-reload.png?version=2&amp;modificationDate=1321974913000&amp;api=v2"></p><div
 class="navmenu" style="float:right; width:30%; background:white; margin:3px; 
padding:3px">
+</div></div><p>Make sure you save changes; then click the refresh link in the 
web browser:</p><p><img class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-live-reload.png?version=5&amp;modificationDate=1416707986159&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-live-reload.png?version=5&amp;modificationDate=1416707986159&amp;api=v2"></p><div
 class="navmenu" style="float:right; width:30%; background:white; margin:3px; 
padding:3px">
     <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
@@ -291,13 +291,13 @@ public class Index
 <p>If Live Class Reloading isn't working for you, check the Troubleshooting 
section at <a shape="rect" href="class-reloading.html" title="Class 
Reloading">Class Reloading</a>.</p>
                     </div>
     </div>
-</div><p>This is one of Tapestry's early <em>wow factor</em> features: changes 
to your component classes are picked up immediately (a feature we call Live 
Class Reloading). No restart. No re-deploy. Make the changes and see them 
<em>now</em>. Nothing should slow you down or get in the way of you getting 
your job done.</p><p>But ... what if you make a mistake? What if you got the 
name in the template wrong. Give it a try; in the template, change 
${currentTime} to, say, ${currenTime}, and see what you get:</p><p><img 
class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-error-1.png?version=1&amp;modificationDate=1291068475000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-error-1.png?version=1&amp;modificationDate=1291068475000&amp;api=v2"></p><p>This
 is Tapestry's exception report page. It's quite detailed. It clearly 
identifies what Tapestry was doing, and relates the problem to a specific 
 line in the template, which is shown in context. Tapestry always expands out 
the entire stack of exceptions, because it is so common for exceptions to be 
thrown, caught, and re-thrown inside other exceptions. In fact, if we scroll 
down just a little bit, we see more detail about this exception, plus a little 
bit of help:</p><p><img class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-error-2.png?version=1&amp;modificationDate=1291068475000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-error-2.png?version=1&amp;modificationDate=1291068475000&amp;api=v2"></p><p>This
 is part of Tapestry's way: it not only spells out exactly what it was doing 
and what went wrong, but it even helps you find a solution; here it tells you 
the names of properties you could have used.</p><p>Tapestry displays the stack 
trace of the deepest exception, along with lots of details about the run-time 
environment: detail
 s about the current request, the HttpSession (if one exists), and even a 
detailed list of all JVM system properties. Scroll down to see all this 
information.</p>    <div class="aui-message hint shadowed information-macro">
+</div><p>This is one of Tapestry's early <em>wow factor</em> features: changes 
to your component classes are picked up immediately (a feature we call Live 
Class Reloading). No restart. No re-deploy. Make the changes and see them 
<em>now</em>. Nothing should slow you down or get in the way of you getting 
your job done.</p><p>But ... what if you make a mistake? What if you got the 
name in the template wrong. Give it a try; in the template, change 
${currentTime} to, say, ${currenTime}, and see what you get:</p><p><img 
class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-error-1.png?version=3&amp;modificationDate=1416707595797&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-error-1.png?version=3&amp;modificationDate=1416707595797&amp;api=v2"></p><p>This
 is Tapestry's exception report page. It's quite detailed. It clearly 
identifies what Tapestry was doing, and relates the problem to a specific 
 line in the template, which is shown in context. Tapestry always expands out 
the entire stack of exceptions, because it is so common for exceptions to be 
thrown, caught, and re-thrown inside other exceptions. In fact, if we scroll 
down just a little bit, we see more detail about this exception, plus a little 
bit of help:</p><p><img class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/24188263/app-error-2.png?version=4&amp;modificationDate=1416707595000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/24188263/app-error-2.png?version=4&amp;modificationDate=1416707595000&amp;api=v2"></p><p>This
 is part of Tapestry's way: it not only spells out exactly what it was doing 
and what went wrong, but it even helps you find a solution; here it tells you 
the names of properties you could have used.</p>    <div class="aui-message 
hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>This level of detail reflects that the 
application has been configured to run in <em>development mode</em> instead of 
<em>production mode</em>. In production mode, the exception report would simply 
be the top level exception message. However, most production applications go 
further and customize how Tapestry handles and reports exceptions.</p>
                     </div>
     </div>
-<p>There was a bunch of other stuff on this page, related to links and Ajax 
and other things, that we'll ignore for the moment.</p><hr><p>&#160;</p><style 
type="text/css">/*<![CDATA[*/
+<p>Tapestry displays the stack trace of the deepest exception, along with lots 
of details about the run-time environment: details about the current request, 
the HttpSession (if one exists), and even a detailed list of all JVM system 
properties. Scroll down to see all this information.</p><p>Next up: let's play 
a game...</p><hr><p>&#160;</p><style type="text/css">/*<![CDATA[*/
 table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 
3px;margin: 0px;background-color: #f0f0f0}
 table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 
16px;border: none;}
 table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}

Modified: 
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.data/hilo-1.png
==============================================================================
Binary files - no diff available.

Modified: 
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
==============================================================================
--- 
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html 
(original)
+++ 
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html 
Sun Nov 23 02:19:29 2014
@@ -48,19 +48,13 @@
 </div></div>
 
 <div id="top">
-<div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 
1em .1em 1em">
-<p>
-<span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; 
blogs:</span>
-</p><form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
+<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"><a shape="rect" href="index.html"><img 
class="confluence-embedded-image" 
src="https://cwiki.apache.org/confluence/download/attachments/21791252/tapestry_s.png?version=3&amp;modificationDate=1293093635000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/21791252/tapestry_s.png?version=3&amp;modificationDate=1293093635000&amp;api=v2"></a></div>
-<div class="title" style="float:left; margin: 0 0 0 3em">
-<h1 id="SmallBanner-PageTitle">Implementing the Hi-Lo Guessing 
Game</h1></div></div>
+</div><div class="emblem" style="float:left"><p><a shape="rect" 
href="index.html"><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";></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Implementing the Hi-Lo Guessing Game</h1></div></div>
 <div class="clearer"></div>
 </div>
 
@@ -98,7 +92,7 @@ table.ScrollbarTable td.ScrollbarNextIco
 {
 }
 ]]></script>
-</div></div><p>Running the application gives us our start:</p><p><img 
class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/23340505/hilo-1.png?version=1&amp;modificationDate=1290111983000&amp;api=v2";
 
data-image-src="/confluence/download/attachments/23340505/hilo-1.png?version=1&amp;modificationDate=1290111983000&amp;api=v2"></p><p>However,
 clicking the link doesn't do anything yet, as its just a placeholder 
\&lt;a\&gt; tag, not an actual Tapestry component. Let's think about what 
should happen when the user clicks that link:</p><ul><li>A random target number 
between 1 and 10 should be selected</li><li>The number of guesses taken should 
be reset to 0</li><li>The user should be sent to the Guess page to make a 
guess</li></ul><p>Our first step is to find out when the user clicks that 
"start guessing" link. In a typical web application framework, we might start 
thinking about URLs and handlers and maybe some sort of XML configuratio
 n file. But this is Tapestry, so we're going to work with components and 
methods on our classes.</p><p>First, the component. We want to perform an 
action (selecting the number) before continuing on to the Guess page. The 
ActionLink component is just what we need; it creates a link with a URL that 
will trigger an action event in our code ... but that's getting ahead of 
ourselves. First up, convert the \&lt;a\&gt; tag to an ActionLink 
component:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Index.tml (partial)</b></div><div class="codeContent panelContent pdl">
+</div></div><p>Running the application gives us our start:</p><p><img 
class="confluence-embedded-image" width="700" 
src="https://cwiki.apache.org/confluence/download/attachments/23340505/hilo-1.png?version=2&amp;modificationDate=1416709010700&amp;api=v2";
 
data-image-src="/confluence/download/attachments/23340505/hilo-1.png?version=2&amp;modificationDate=1416709010700&amp;api=v2"></p><p>However,
 clicking the link doesn't do anything yet, as its just a placeholder 
\&lt;a\&gt; tag, not an actual Tapestry component. Let's think about what 
should happen when the user clicks that link:</p><ul><li>A random target number 
between 1 and 10 should be selected</li><li>The number of guesses taken should 
be reset to 0</li><li>The user should be sent to the Guess page to make a 
guess</li></ul><p>Our first step is to find out when the user clicks that 
"start guessing" link. In a typical web application framework, we might start 
thinking about URLs and handlers and maybe some sort of XML configuratio
 n file. But this is Tapestry, so we're going to work with components and 
methods on our classes.</p><p>First, the component. We want to perform an 
action (selecting the number) before continuing on to the Guess page. The 
ActionLink component is just what we need; it creates a link with a URL that 
will trigger an action event in our code ... but that's getting ahead of 
ourselves. First up, convert the \&lt;a\&gt; tag to an ActionLink 
component:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Index.tml (partial)</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[  &lt;p&gt;
     &lt;t:actionlink t:id=&quot;start&quot;&gt;start 
guessing&lt;/t:actionlink&gt;
   &lt;/p&gt;
@@ -329,7 +323,7 @@ public class GameOver
   
 &lt;/html&gt;
 ]]></script>
-</div></div><p>That wraps up the basics of Tapestry; we've demonstrated the 
basics of linking pages together and passing information from page to page in 
code as well as incorporating data inside URLs.</p><p>There's still more room 
to refactor this toy application; for example, making it possible to start a 
new game from the GameOver page (and doing it in a way that doesn't duplicate 
code). In addition, later we'll see other ways of sharing information between 
pages that are less cumbersome than the setup-and-persist approach shown 
here.</p><p>Next up, we'll start delving into how Tapestry handles HTML forms 
and user input.</p><style type="text/css">/*<![CDATA[*/
+</div></div><p>That wraps up the basics of Tapestry; we've demonstrated the 
basics of linking pages together and passing information from page to page in 
code as well as incorporating data inside URLs.</p><p>There's still more room 
to refactor this toy application; for example, making it possible to start a 
new game from the GameOver page (and doing it in a way that doesn't duplicate 
code). In addition, later we'll see other ways of sharing information between 
pages that are less cumbersome than the setup-and-persist approach shown 
here.</p><p>Next up, we'll start delving into how Tapestry handles HTML forms 
and user input.&#160;</p><style type="text/css">/*<![CDATA[*/
 table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 
3px;margin: 0px;background-color: #f0f0f0}
 table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 
16px;border: none;}
 table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}


Reply via email to