Author: buildbot
Date: Sat Feb  3 21:20:54 2018
New Revision: 1024794

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/dependencies-tools-and-plugins.html
    websites/production/tapestry/content/tapestry-tutorial.html

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

Modified: 
websites/production/tapestry/content/dependencies-tools-and-plugins.html
==============================================================================
--- websites/production/tapestry/content/dependencies-tools-and-plugins.html 
(original)
+++ websites/production/tapestry/content/dependencies-tools-and-plugins.html 
Sat Feb  3 21:20:54 2018
@@ -67,7 +67,7 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>As much as we would like to 
dive right into the code, we must first set up your development environment. 
Likely you have some of these, or reasonable alternatives, already on your 
development machine.</p><h1 id="Dependencies,ToolsandPlugins-JDK1.5orNewer">JDK 
1.5 or Newer</h1><p>Tapestry requires Java Development Kit (JDK) version 1.5 or 
newer, except that starting with Tapestry 5.4 you must use JDK 1.6 or newer. 
JDK 1.8 works only for Tapestry 5.3.8 or newer (but see the <a  
href="dependencies-tools-and-plugins.html">release notes</a>).</p><h1 
id="Dependencies,ToolsandPlugins-EclipseIDE">Eclipse IDE</h1><p>For this 
tutorial we'll assume you're using Eclipse as your Integrated Development 
Environment (IDE). Eclipse is a popular IDE, but feel free to adapt these 
instructions to IntelliJ, NetBeans, or any other.</p><p>Eclipse comes in 
various flavors, and includes a reasonable XML editor built-in. It can be <a  
class="external-link" href=
 "http://www.eclipse.org/downloads/"; rel="nofollow">downloaded from the 
eclipse.org web site</a>. We recommend the latest version of Eclipse IDE for 
Java Developers (but anything from version 3.7 onward should work fine).</p><h1 
id="Dependencies,ToolsandPlugins-ApacheMaven3">Apache Maven 3</h1><p>Maven is a 
software build tool with the ability to automatically download project 
dependencies (such as the Tapestry JAR files, and the JAR files that Tapestry 
itself depends on) from one of several central repositories.</p><p>Maven is not 
essential for using Tapestry, but is especially helpful when performing the 
initial set-up of a Tapestry application.</p><p>Eclipse comes with a Maven 
plugin,&#160;<a  class="external-link" href="http://eclipse.org/m2e/"; 
rel="nofollow">M2Eclipse</a> (also known as m2e) with an embedded version of 
Maven. We'll use that here for simplicity's sake. Alternatively, you could 
install Maven from <a  class="external-link" 
href="http://maven.apache.org/download.htm
 l">http://maven.apache.org/download.html</a> and use it from the command line 
("mvn").</p><h1 id="Dependencies,ToolsandPlugins-Jetty">Jetty</h1><p>For 
simplicity, this tutorial uses Jetty, a lightweight open source web server and 
servlet container available from the Eclipse Foundation. Of course, you could 
use pretty much any other Java servlet container (Tomcat, Glassfish, JBoss, 
etc), but the instructions that follow assume Jetty.</p><p>We will use Maven to 
download and run Jetty automatically, so you will NOT have to download it for 
this tutorial. (Alternatively, you could download and install the RunJettyRun 
Eclipse plugin from the Eclipse Marketplace.)</p><h1 
id="Dependencies,ToolsandPlugins-Tapestry">Tapestry</h1><p>Tapestry is 
available as a set of JAR files, but you will not have to download them 
yourself. As with Jetty, Maven will take care of downloading Tapestry and its 
dependencies.</p><p>Next: <a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugin
 s</a></p><hr><p></p><p>&#160;</p><p>&#160;</p></div>
+                <div id="ConfluenceContent"><p>As much as we would like to 
dive right into the code, we must first set up your development environment. 
Likely you have some of these, or reasonable alternatives, already on your 
development machine.</p><h1 id="Dependencies,ToolsandPlugins-JDK1.7orNewer">JDK 
1.7 or Newer</h1><p>This tutorial uses the latest released version of Tapestry, 
which requires Java Development Kit (JDK) version 1.7 or newer. (But see <a  
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a> if you want to use an older version of JDK or Tapestry.)</p><h1 
id="Dependencies,ToolsandPlugins-EclipseIDE">Eclipse IDE</h1><p>For this 
tutorial we'll assume you're using Eclipse as your Integrated Development 
Environment (IDE). Eclipse is a popular IDE, but feel free to adapt these 
instructions to IntelliJ, NetBeans, or any other.</p><p>Eclipse comes in 
various flavors, and includes a reasonable XML editor built-in. It can be <a  
class="ex
 ternal-link" href="http://www.eclipse.org/downloads/"; 
rel="nofollow">downloaded from the eclipse.org web site</a>. We recommend the 
latest version of Eclipse IDE for Java Developers (but anything from version 
3.7 onward should work fine).</p><h1 
id="Dependencies,ToolsandPlugins-ApacheMaven3">Apache Maven 3</h1><p>Maven is a 
software build tool with the ability to automatically download project 
dependencies (such as the Tapestry JAR files, and the JAR files that Tapestry 
itself depends on) from one of several central repositories.</p><p>Maven is not 
essential for using Tapestry, but is especially helpful when performing the 
initial set-up of a Tapestry application. Feel free to substitute Gradle or Ivy 
if you prefer.</p><p>Eclipse comes with a Maven plugin,&#160;<a  
class="external-link" href="http://eclipse.org/m2e/"; 
rel="nofollow">M2Eclipse</a> (also known as m2e) with an embedded version of 
Maven. We'll use that here for simplicity's sake. Alternatively, you could 
install Maven fr
 om <a  class="external-link" 
href="http://maven.apache.org/download.html";>http://maven.apache.org/download.html</a>
 and use it from the command line ("mvn").</p><h1 
id="Dependencies,ToolsandPlugins-Jetty">Jetty</h1><p>For simplicity, this 
tutorial uses Jetty, a lightweight open source web server and servlet container 
available from the Eclipse Foundation. Of course, you could use pretty much any 
other Java servlet container (Tomcat, Glassfish, JBoss, etc), but the 
instructions that follow assume Jetty.</p><p>We will use Maven to download and 
run Jetty automatically, so you will NOT have to download it for this tutorial. 
(Alternatively, you could download and install the RunJettyRun Eclipse plugin 
from the Eclipse Marketplace.)</p><h1 
id="Dependencies,ToolsandPlugins-Tapestry">Tapestry</h1><p>Tapestry is 
available as a set of JAR files, but you will not have to download them 
yourself. As with Jetty, Maven will take care of downloading Tapestry and its 
dependencies.</p><p>Next: <a  hr
 ef="creating-the-skeleton-application.html">Creating The Skeleton 
Application</a></p><hr><p></p><p>&#160;</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/tapestry-tutorial.html
==============================================================================
--- websites/production/tapestry/content/tapestry-tutorial.html (original)
+++ websites/production/tapestry/content/tapestry-tutorial.html Sat Feb  3 
21:20:54 2018
@@ -127,7 +127,7 @@
 </div>
 
 
-<h1 id="TapestryTutorial-TableofContents">Table of Contents</h1><p></p><ul 
class="childpages-macro"><li><a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a  href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a  
href="exploring-the-project.html">Exploring the Project</a></li><li><a  
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a  
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a  
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul><h1 
id="TapestryTutorial-Introduction">Introduction</h1><p>Welcome to 
Tapestry!</p><p>This is a tutorial for people who will be creating Tapestry web 
applications. It doesn't matter whether you have experience with earlier 
versions of Tapestry or other web frameworks. In fact, in some ways, the less 
you know about web development in 
 general, the better off you may be ... that much less to unlearn!</p><p>You do 
need to have a reasonable understanding of HTML, a smattering of XML, and a 
good understanding of basic Java language features, including 
Annotations.</p><h1 
id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The Challenges 
of Web Application Development</h1><p>If you're used to developing web 
applications using servlets and JSPs, or with Struts, you are simply used to a 
lot of pain. So much pain, you may not even understand the dire situation you 
are in! These are environments with no safety net; Struts and the Servlet API 
have no idea how your application is structured, or how the different pieces 
fit together. Any URL can be an action and any action can forward to any view 
(usually a JSP) to provide an HTML response to the web browser. The pain is the 
unending series of small, yet important, decisions you have to make as a 
developer (and communicate to the rest of your team). What are the n
 aming conventions for actions, for pages, for attributes stored in the 
HttpSession or HttpServletRequest? Where do cross-cutting concerns such as 
database transactions, caching and security get implemented (and do you have to 
cut-and-paste Java or XML to make it work?) How are your packages organized ... 
where to the user interface classes go, and where do the data and entity 
objects go? How do you share code from one part of your application to 
another?</p><p>On top of all that, the traditional approaches thrust something 
most unwanted in your face: <em>multi-threaded coding</em>. Remember back to 
Object Oriented Programming 101 where an object was defined as a bundle of data 
and operations on that data? You have to unlearn that lesson as soon as you 
build a traditional web application, because web applications are 
multi-threaded. An application server could be handling dozens or hundreds of 
requests from individual users, each in their own thread, and each sharing the 
exact same o
 bjects. Suddenly, you can't store data inside an object (a servlet or a Struts 
Action) because whatever data you store for one user will be instantly 
overwritten by some other user.</p><p>Worse, your objects each have only one 
operation: <code>doGet()</code> or <code>doPost()</code>.</p><p>Meanwhile, most 
of your day-to-day work involves deciding how to package up some data already 
inside a particular Java object and squeeze that data into a URL's query 
parameters, so that you can write more code to convert it back if the user 
clicks that particular link. And don't forget editing a bunch of XML files to 
keep the servlet container, or the Struts framework, aware of these 
decisions.</p><p>Just for laughs, remember that you have to rebuild, redeploy 
and restart your application after virtually any change. Is any of this 
familiar? Then perhaps you'd appreciate something a little <em>less</em> 
familiar: Tapestry.</p><h1 id="TapestryTutorial-TheTapestryWay">The Tapestry 
Way</h1><p>Tapestr
 y uses a very different model: a structured, organized world of pages, and 
components within pages. Everything has a very specific name (that you 
provide). Once you know the name of a page, you know the location of the Java 
class for that page, the location of the template for that page, and the total 
structure of the page. Tapestry knows all this as well, and can make things 
<strong>just work</strong>.</p><p>As we'll see in the following pages, Tapestry 
lets you code in terms of your objects. You'll barely see any Tapestry classes, 
outside of a few Java annotations. If you have information to store, store it 
as fields of your classes, not inside the HttpServletRequest or HttpSession. If 
you need some code to execute, it's just a simple annotation or method naming 
convention to get Tapestry to invoke that method, at the right time, with the 
right data. The methods don't even have to be public!</p><p>Tapestry also 
shields you from most of the multi-threaded aspects of web application
  development. Tapestry manages the life cycle of your page and components 
objects, and the fields of the pages and components, in a thread-safe way. Your 
page and component classes always look like simple, standard <a  
class="external-link" href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; 
rel="nofollow">POJOs</a>.</p><p>Tapestry began in January 2000, and it now 
reflects over fifteen years of experience of the entire Tapestry community. 
Tapestry brings to the table all that experience about the best ways to build 
scalable, maintainable, robust, internationalized, and Ajax-enabled 
applications. Tapestry 5 represents a completely new code base (compared to 
Tapestry 4) designed to simplify the Tapestry coding model while at the same 
time extending the power of Tapestry and improving performance.</p><h1 
id="TapestryTutorial-GettingtheTutorialSource">Getting the Tutorial 
Source</h1><p>Although you won't need it, the source code for this tutorial is 
available on <a  class="extern
 al-link" href="https://github.com/hlship/tapestry5-tutorial"; 
rel="nofollow">GitHub</a>.</p><h1 id="TapestryTutorial-TimetoBegin">Time to 
Begin</h1><p>Okay, enough background. Now let's get started on the tutorial: <a 
 href="tapestry-tutorial.html">Tapestry Tutorial</a></p><p>&#160;</p></div>
+<h1 id="TapestryTutorial-TableofContents">Table of Contents</h1><p></p><ul 
class="childpages-macro"><li><a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a  href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a  
href="exploring-the-project.html">Exploring the Project</a></li><li><a  
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a  
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a  
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul><h1 
id="TapestryTutorial-Introduction">Introduction</h1><p>Welcome to 
Tapestry!</p><p>This is a tutorial for people who will be creating Tapestry web 
applications. It doesn't matter whether you have experience with earlier 
versions of Tapestry or other web frameworks. In fact, in some ways, the less 
you know about web development in 
 general, the better off you may be ... that much less to unlearn!</p><p>You do 
need to have a reasonable understanding of HTML, a smattering of XML, and a 
good understanding of basic Java language features, including 
Annotations.</p><h1 
id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The Challenges 
of Web Application Development</h1><p>If you're used to developing web 
applications using servlets and JSPs, or with Struts, you are simply used to a 
lot of pain. So much pain, you may not even understand the dire situation you 
are in! These are environments with no safety net; Struts and the Servlet API 
have no idea how your application is structured, or how the different pieces 
fit together. Any URL can be an action and any action can forward to any view 
(usually a JSP) to provide an HTML response to the web browser. The pain is the 
unending series of small, yet important, decisions you have to make as a 
developer (and communicate to the rest of your team). What are the n
 aming conventions for actions, for pages, for attributes stored in the 
HttpSession or HttpServletRequest? Where do cross-cutting concerns such as 
database transactions, caching and security get implemented (and do you have to 
cut-and-paste Java or XML to make it work?) How are your packages organized ... 
where to the user interface classes go, and where do the data and entity 
objects go? How do you share code from one part of your application to 
another?</p><p>On top of all that, the traditional approaches thrust something 
most unwanted in your face: <em>multi-threaded coding</em>. Remember back to 
Object Oriented Programming 101 where an object was defined as a bundle of data 
and operations on that data? You have to unlearn that lesson as soon as you 
build a traditional web application, because web applications are 
multi-threaded. An application server could be handling dozens or hundreds of 
requests from individual users, each in their own thread, and each sharing the 
exact same o
 bjects. Suddenly, you can't store data inside an object (a servlet or a Struts 
Action) because whatever data you store for one user will be instantly 
overwritten by some other user.</p><p>Worse, your objects each have only one 
operation: <code>doGet()</code> or <code>doPost()</code>.</p><p>Meanwhile, most 
of your day-to-day work involves deciding how to package up some data already 
inside a particular Java object and squeeze that data into a URL's query 
parameters, so that you can write more code to convert it back if the user 
clicks that particular link. And don't forget editing a bunch of XML files to 
keep the servlet container, or the Struts framework, aware of these 
decisions.</p><p>Just for laughs, remember that you have to rebuild, redeploy 
and restart your application after virtually any change. Is any of this 
familiar? Then perhaps you'd appreciate something a little <em>less</em> 
familiar: Tapestry.</p><h1 id="TapestryTutorial-TheTapestryWay">The Tapestry 
Way</h1><p>Tapestr
 y uses a very different model: a structured, organized world of pages, and 
components within pages. Everything has a very specific name (that you 
provide). Once you know the name of a page, you know the location of the Java 
class for that page, the location of the template for that page, and the total 
structure of the page. Tapestry knows all this as well, and can make things 
<strong>just work</strong>.</p><p>As we'll see in the following pages, Tapestry 
lets you code in terms of your objects. You'll barely see any Tapestry classes, 
outside of a few Java annotations. If you have information to store, store it 
as fields of your classes, not inside the HttpServletRequest or HttpSession. If 
you need some code to execute, it's just a simple annotation or method naming 
convention to get Tapestry to invoke that method, at the right time, with the 
right data. The methods don't even have to be public!</p><p>Tapestry also 
shields you from most of the multi-threaded aspects of web application
  development. Tapestry manages the life cycle of your page and components 
objects, and the fields of the pages and components, in a thread-safe way. Your 
page and component classes always look like simple, standard <a  
class="external-link" href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; 
rel="nofollow">POJOs</a>.</p><p>Tapestry began in January 2000, and it now 
reflects over fifteen years of experience of the entire Tapestry community. 
Tapestry brings to the table all that experience about the best ways to build 
scalable, maintainable, robust, internationalized, and Ajax-enabled 
applications. Tapestry 5 represents a completely new code base (compared to 
Tapestry 4) designed to simplify the Tapestry coding model while at the same 
time extending the power of Tapestry and improving performance.</p><h1 
id="TapestryTutorial-GettingtheTutorialSource">Getting the Tutorial 
Source</h1><p>Although you won't need it, the source code for this tutorial is 
available on <a  class="extern
 al-link" href="https://github.com/hlship/tapestry5-tutorial"; 
rel="nofollow">GitHub</a>.</p><h1 id="TapestryTutorial-TimetoBegin">Time to 
Begin</h1><p>Okay, enough background. Now let's dig in: <a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>


Reply via email to