Author: buildbot
Date: Thu Nov 27 02:19:53 2014
New Revision: 930706

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/building-tapestry-from-source.html
    websites/production/tapestry/content/cache/main.pageCache

Modified: 
websites/production/tapestry/content/building-tapestry-from-source.html
==============================================================================
--- websites/production/tapestry/content/building-tapestry-from-source.html 
(original)
+++ websites/production/tapestry/content/building-tapestry-from-source.html Thu 
Nov 27 02:19:53 2014
@@ -64,7 +64,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>This is a guide to building Tapestry itself 
from source code. This is primarily of interest to Tapestry 
<em>contributors</em>, rather than Tapestry <em>users</em>.</p><p>Although 
Tapestry <em>users</em> are free to use any build mechanism for their own 
projects (and first class Maven support is provided), to build Tapestry itself 
from source you will use Gradle.</p><p>Note: Both command line and Eclipse 
Gradle IDE/EGit instructions are given here. Generally you'll want to chose 
approach one or the other, rather than mixing them.</p><h2 
id="BuildingTapestryfromSource-Prerequisites">Prerequisites</h2><ul><li>Install 
a Java JDK (Sun/Oracle, not OpenJDK), version 1.7 (just to prevent VU#225657, 
see: <a shape="rect" class="external-link" 
href="http://www.kb.cert.org/vuls/id/225657"; 
>http://www.kb.cert.org/vuls/id/225657</a>).</li><li>Install an IDE (IDEA 
IntelliJ is recommended (and free to Tapestry committers), but Eclipse will 
also work. NetBeans is repor
 ted to work as well.</li><li>Install Firefox browser <span 
style="text-decoration: line-through;">version 3.6</span>, needed for the 
integration tests.</li><li>Set the Firefox browser's "preferred language" to 
English (en), because some tests will otherwise fail. (Fixed; see <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-2413";>TAP5-2413</a>)</li><li>Install
 a Git client<ul><li>Command-line users: <a shape="rect" class="external-link" 
href="http://git-scm.com/downloads"; 
>http://git-scm.com/downloads</a></li><li>Eclipse users: Install EGit from the 
Eclipse Marketplace, then in In Window &gt; Preferences &gt; Team &gt; Git, set 
your "Default repository folder" (e.g. <code>~/git</code> or 
<code>%HOME%\git</code>)</li></ul></li><li>Install Gradle 1.0-milestone-3 or 
newer (or a Gradle plugin to your IDE),<ul><li>Command-line users: <a 
shape="rect" class="external-link" href="http://www.gradle.org/downloads"; 
>http://www.gradle.org/downloads</a></li><
 li>Eclipse users: Install Gradle IDE from the Eclipse 
Marketplace</li></ul></li></ul><h2 
id="BuildingTapestryfromSource-GettingStarted">Getting Started</h2><p>Please 
read <a shape="rect" class="external-link" 
href="https://git-wip-us.apache.org/";>https://git-wip-us.apache.org/</a> 
first.</p><p>Windows users (especialy EGit users) should probably set the 
core.autocrlf config setting to <code>false</code> so that local diffs won't 
highlight line ending differences.</p><h3 
id="BuildingTapestryfromSource-ClonetheRepository">Clone the 
Repository</h3><p>Clone Tapestry from the Git repo:</p><ul><li><p>Command-line 
git users:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Non Committers:</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>git clone</p><a shape="rect" class="external-link" 
href="http://git-wip-us.apache.org/repos/asf/tapestry-5.git";>http://git-wip-us.apache.org/repos/asf/tapestry-5.git</a><p>&#
 160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Committers:</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>git clone</p><a shape="rect" class="external-link" 
href="https://git-wip-us.apache.org/repos/asf/tapestry-5.git";>https://git-wip-us.apache.org/repos/asf/tapestry-5.git</a><p>&#160;</p></td></tr></tbody></table></div></li><li>Eclipse
 EGit users:<ul><li>Switch to Git perspective; then copy one of the URLs above 
into paste buffer</li><li>Right-click &gt; Paste repository path or URI. This 
will bring up the Clone Git Repository dialog.</li><li>Committers: make sure 
Protocol is https, and enter your Apache commiter LDAP user name &amp; 
password</li><li>click Next.</li><li>Select the branches you're interested in 
(e.g 5.3 and master), click Next</li><li>Select Directory to where you want the 
project source code (e.g. <code>~/git/tapestry-5</code> or 
<code>%HOME%\git\tapestry-5</code>)</li><li>Select whichever "Initial Branch" 
you're interested i
 n (e.g. master)</li><li>Set "Remote name" to "origin" (the 
default)</li><li><strong>VERY IMPORTANT</strong>: uncheck the "Import all 
existing projects" checkbox (we'll do this using Gradle, below)</li><li>Click 
Finish. (Be patient; the clone operation might take a few 
minutes.)</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-GradlePreparation">Gradle 
Preparation</h3><ul><li>Command-line gradle users only:<ul><li>If you're using 
Eclipse but <strong>not</strong> Gradle IDE do <code>./gradlew 
eclipse</code></li><li>The command-line Gradle's eclipse plugin doesn't include 
the provided project dependencies; you need to add them manually (Java Build 
Path &gt; Projects &gt; Add tapestry-test). The plugin also generates a root 
eclipse project, so you'll need to delete the ".project" file in the root 
folder, and then you can import all Tapestry sub-projects at 
once.</li></ul></li><li>Eclipse Gradle IDE users:<ul><li>Switch to Java (or 
JEE) perspective and right-click &gt; Import... &gt
 ; Gradle &gt; Gradle Project &gt; Next.</li><li>Set the "Root folder" to where 
you put your Tapestry source in the previous section (e.g. 
<code>~/git/tapestry-5</code> or 
<code>%Home%\git\tapestry-5</code>)</li><li>Click <code>Build Model. When it 
completes, s</code>elect the top-level (the top-level module and all 
sub-modules).</li><li>Be sure the "Enable dependency management" and "Create 
workingset 'tapestry-5' checkboxes are checked.</li><li>Click 
<code>Finish</code>. (Be patient; the import operation might take a few 
minutes.)</li></ul></li><li>Eclipse EGit users: Do a Git "Share" on the 
project:<ul><li>Still in the Java (or JEE) perspective, select all of the 
Tapestry projects (top-level and sub-modules) and right-click &gt; Team &gt; 
Share Project... &gt; Git &gt; Next &gt; Ensure all are selected, click 
<code>Finish</code>.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-Antlr">Antlr</h3><p>The 
<code>tapestry-core</code> project will initially have errors because of mi
 ssing Java classes that are produced by ANTLR the first time the project is 
built. To fix this:</p><ul><li>Eclipse Gradle IDE users:<ul><li>Right click on 
the <code>build.gradle</code> file within tapestry-core and click Run As &gt; 
"Gradle build...", check <strong>only</strong> the generateGrammarSource task, 
and change the "Name" field to something like "tapestry-core antlr", then click 
Apply and Run.</li><li>When it's finished, the antlr-generated classes (e.g. 
PropertyExpressionLexer.java) will be in created in 
$buildDir/generated-sources/antlr/, but Eclipse doesn't yet know about that 
path. To fix that, right click on the <code>tapestry-core</code> project &gt; 
Properties &gt; Java Build Path &gt; Source &gt; Add Folder &gt; find 
<code>tapestry-core/build/generated-sources/antlr</code> and check the checkbox 
next to it, then click <code>OK</code>.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-CoffeeScript">CoffeeScript</h3><p>If you want to 
run tests from within Eclipse
 , Tapestry will complain that it won't find certain JavaScript files that 
normally are generated during compile time from their Coffeescript sources. In 
order to generate the JavaScript files you need to have Coffeescript installed 
and in your path. Simply install <a shape="rect" class="external-link" 
href="http://nodejs.org/download/"; >Node.js</a> and afterwards run <code>npm 
install -g coffee-script</code>. The installation should take care of 
everything.</p><ul><li>Eclipse Gradle IDE users:<ul><li>Right click on the 
<code>build.gradle</code> file within tapestry-core and click Run As &gt; 
"Gradle build...", check <strong>only</strong> the 
tapestry-core:compileCoffeeScript and tapestry-core:compileTestCoffeeScript 
tasks, and change the "Name" field to something like "tapestry-core 
coffeescript", then click Apply and Run.</li><li>When it's finished, the 
coffeescript-generated JavaScript files (e.g. t5-core-dom-jquery.js) will be in 
created in $buildDir/generated-sources/compiled-co
 ffeescript/ and $buildDir/generated-sources/compiled-test-coffeescript/, but 
Eclipse doesn't yet know about that path. To fix that, right click on the 
<code>tapestry-core</code> project &gt; Properties &gt; Java Build Path &gt; 
Source &gt; Add Folder &gt; find 
<code>tapestry-core/build/generated-sources/compiled-coffeescript</code> and 
<code>tapestry-core/build/generated-sources/compiled-test-coffeescript</code> 
and check the checkbox next to it, then click 
<code>OK</code>.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-GenerateCoffeeScriptandAntlrfilesautomaticallywhenchanged">Generate
 CoffeeScript and Antlr files automatically when changed</h3><p>If you want to 
have Eclipse compile the JavaScript files and lexer classes from their 
Coffeescript sources and Antlr files automatically when they change, you can do 
that by configuring an additional builder for the <code>tapestry-core</code> 
project:</p><ul><li>Eclipse Gradle IDE users:<ul><li>Right click on the 
<code>tapestry-cor
 e</code> project and select properties.</li><li>Select the "Builders" entry 
from the list on the left and click "New.." in the right panel.</li><li>Select 
"Program" and click "Ok".</li><li>Give the program a meaningful name, e.g. 
"compile coffeescript and antlr".</li><li>Switch to the "Main" tab.</li><li>For 
"Location:" click "Browse Workspace..." and select <code>gradlew.sh</code> or 
<code>gradlew.bat</code> in the Tapestry root project. If the root project is 
called "tapestry-5" the entry should look similar to 
"${workspace_loc:/tapestry-5/gradlew.bat}".</li><li>For "Working Directory:" 
click "Browse Workspace..." and select the Tapestry root project.</li><li>For 
"Arguments:" enter <code>tapestry-core:generateGrammarSource 
tapestry-core:compileCoffeeScript 
tapestry-core:compileTestCoffeeScript</code>.</li><li>Switch to the "Build 
Options" tab.</li><li>Make sure that only "Allocate Console", "After a 
"Clean"", "During manual builds", "During auto builds" and "Specify working set 
of
  relevant resources" are checked.</li><li>Click "Specify 
Resources...".</li><li>From the "tapestry-core" project select 
"src/main/antlr", "src/main/coffeescript", and 
"src/test/coffeescript".</li><li>Click "Finish".</li><li>Click 
"OK".</li><li>Click "OK".</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-Building">Building</h3><p>You can build 
individual modules, or (from the root folder) build 
everything.</p><ul><li>Command-line users:<br clear="none"> *( "gradlew" is the 
gradle wrapper shell script (gradlew) or batch file (gradlew.bat) found in the 
root folder of the Tapestry source.<ul><li><code>./gradlew 
build</code></li></ul></li><li>Eclipse Gradle IDE users:<ul><li>Right click on 
the top-level project (or any sub-project) and select Run As &gt; Gradle 
Build..., which starts an External Tools Configuration dialog box. Enter a 
reasonable name, select the tasks you want to run (for example, 
tapestry-core/install), and click Run.</li></ul></li></ul><h3 
id="BuildingTapestryfrom
 Source-SeleniumSetup">Selenium Setup</h3><p>It is necessary that you have a 
compatible version of Firefox installed. &#160;On a Mac, you should install it 
in ~/Applications (rather than /Applications).</p><p>You should modify your 
~/.bash_profile (or equivalent), to add 
~/Applications/Firefox.app/Contents/MacOS to the PATH variable.</p><h3 
id="BuildingTapestryfromSource-RunningIndividualTests">Running Individual 
Tests</h3><p>Eclipse users:</p><ul><li>Install the <a shape="rect" 
class="external-link" href="http://testng.org/doc/eclipse.html"; >TestNG 
plugin</a> to allow running of individual TestNG unit tests from within in 
Eclipse.</li><li>Right-click on any test class and select Run As &gt;TestNG 
Test</li></ul><p>Command-line users:</p><ul><li>./gradlew 
-Dtest.single=myclassname</li><li>./gradlew 
-Dtest.single=myclassname.mymethod</li></ul><p>where myclassname is the test 
class, such as FormTest</p><p>The Tapestry integration tests will repeatedly 
start up a Firefox browser.</p><ul>
 <li>Ensure that your environment will allow a connection to <a shape="rect" 
class="external-link" href="https://localhost:443"; 
>https://localhost:443</a></li></ul><h3 
id="BuildingTapestryfromSource-SkippingTests">Skipping Tests</h3><p>Running the 
Tapestry integration tests can take 10 minutes or more (mostly because of 
Selenium tests, which repeatedly start and stop the Firefox browser), so you 
won't want to run them every time you try a change.</p><ul><li>Command-line 
users:<ul><li><code>To build while skipping all tests: ./gradlew build -x 
test</code></li><li>You can skip tests on a specific module by adding a colon 
and the module name. For example: <code>-x 
test:tapestry-ioc</code></li></ul></li><li>Eclipse Gradle IDE users:<ul><li>In 
your External Tools Configuration, add the same -x test option as above at 
Arguments &gt; Program Arguments.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-RunningtheIntegrationTestAppsManually">Running 
the Integration Test Apps Manually</h3>
 <p>The Tapestry source includes several web apps that are used by the 
automated Selenium integration tests. You can also run these apps manually to 
try out nearly every browser-visible aspect of Tapestry.</p><ul><li>If using 
Eclipse:<ul><li>Use the run-jetty-run plugin in Eclipse, with the context 
directory selected from among the <code>test</code> context directories. For 
example, in the tapestry-core module, right click on the /src/test/app1 (or 
app2, etc) folder, and select Run As &gt; Run Jetty, then open your browser to 
<a shape="rect" class="external-link" 
href="http://localhost:8080/tapestry-core"; 
>http://localhost:8080/tapestry-core</a></li></ul></li></ul><h3 
id="BuildingTapestryfromSource-MakingCodeChanges">Making Code 
Changes</h3><p>Once you have cloned or pulled the latest changes to your local 
Git repository, you can start working on it. Whenever you make some changes to 
the codebase, it's good to have a related issue filed in JIRA and to use a 
similarly named branch in 
 your local Git repository. For example, to create a branch for an issue with 
the key TAP5-123:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<div id="ConfluenceContent"><p>This is a guide to building Tapestry itself 
from source code. This is primarily of interest to Tapestry 
<em>contributors</em>, rather than Tapestry <em>users</em>.</p><p>Although 
Tapestry <em>users</em> are free to use any build mechanism for their own 
projects (and first class Maven support is provided), to build Tapestry itself 
from source you will use Gradle.</p><p>Note: Both command line and Eclipse 
Gradle IDE/EGit instructions are given here. Generally you'll want to chose 
approach one or the other, rather than mixing them.</p><h2 
id="BuildingTapestryfromSource-Prerequisites">Prerequisites</h2><ul><li>Install 
a Java JDK (Sun/Oracle, not OpenJDK), version 1.7 (just to prevent VU#225657, 
see: <a shape="rect" class="external-link" 
href="http://www.kb.cert.org/vuls/id/225657"; 
>http://www.kb.cert.org/vuls/id/225657</a>).</li><li>Install an IDE (IDEA 
IntelliJ is recommended (and free to Tapestry committers), but Eclipse will 
also work. NetBeans is repor
 ted to work as well.</li><li>Install Firefox browser <span 
style="text-decoration: line-through;">version 3.6</span>, needed for the 
integration tests.</li><li>Set the Firefox browser's "preferred language" to 
English (en), because some tests will otherwise fail. (Fixed; see <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-2413";>TAP5-2413</a>)</li><li>Install
 a Git client<ul><li>Command-line users: <a shape="rect" class="external-link" 
href="http://git-scm.com/downloads"; 
>http://git-scm.com/downloads</a></li><li>Eclipse users: Install EGit from the 
Eclipse Marketplace, then in In Window &gt; Preferences &gt; Team &gt; Git, set 
your "Default repository folder" (e.g. <code>~/git</code> or 
<code>%HOME%\git</code>). Note that for Eclipse 4.4 (Luna) and later this is 
already done.</li></ul></li><li>Install Gradle 1.0-milestone-3 or newer (or a 
Gradle plugin to your IDE),<ul><li>Command-line users: <a shape="rect" 
class="external-link" href="http://ww
 w.gradle.org/downloads" >http://www.gradle.org/downloads</a></li><li>Eclipse 
users: Install Gradle IDE (aka Gradle Integration for Eclipse), from the 
Eclipse Marketplace</li></ul></li></ul><h2 
id="BuildingTapestryfromSource-GettingStarted">Getting Started</h2><p>Please 
read <a shape="rect" class="external-link" 
href="https://git-wip-us.apache.org/";>https://git-wip-us.apache.org/</a> 
first.</p><p>Windows users (especialy EGit users) should probably set the 
core.autocrlf config setting to <code>false</code> so that local diffs won't 
highlight line ending differences.</p><h3 
id="BuildingTapestryfromSource-ClonetheRepository">Clone the 
Repository</h3><p>Clone Tapestry from the Git repo:</p><ul><li><p>Command-line 
git users:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Non Committers:</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>git clone</p><a shape="rect" class="external-link" 
href="http://git-wi
 
p-us.apache.org/repos/asf/tapestry-5.git">http://git-wip-us.apache.org/repos/asf/tapestry-5.git</a><p>&#160;</p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Committers:</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>git clone</p><a shape="rect" 
class="external-link" 
href="https://git-wip-us.apache.org/repos/asf/tapestry-5.git";>https://git-wip-us.apache.org/repos/asf/tapestry-5.git</a><p>&#160;</p></td></tr></tbody></table></div></li><li>Eclipse
 EGit users:<ul><li>Switch to Git perspective; then copy one of the URLs above 
into paste buffer</li><li>Right-click &gt; Paste repository path or URI. This 
will bring up the Clone Git Repository dialog.</li><li>Committers: make sure 
Protocol is https, and enter your Apache commiter LDAP user name &amp; 
password</li><li>click Next.</li><li>Select the branches you're interested in 
(e.g 5.3 and master), click Next</li><li>Select Directory to where you want the 
project source code (e.g. <code>~/git/tapestry-5</co
 de> or <code>%HOME%\git\tapestry-5</code>)</li><li>Select whichever "Initial 
Branch" you're interested in (e.g. master)</li><li>Set "Remote name" to 
"origin" (the default)</li><li><strong>VERY IMPORTANT</strong>: uncheck the 
"Import all existing projects" checkbox (we'll do this using Gradle, 
below)</li><li>Click Finish. (Be patient; the clone operation might take a few 
minutes.)</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-GradlePreparation">Gradle 
Preparation</h3><ul><li>Command-line gradle users only:<ul><li>If you're using 
Eclipse but <strong>not</strong> Gradle IDE do <code>./gradlew 
eclipse</code></li><li>The command-line Gradle's eclipse plugin doesn't include 
the provided project dependencies; you need to add them manually (Java Build 
Path &gt; Projects &gt; Add tapestry-test). The plugin also generates a root 
eclipse project, so you'll need to delete the ".project" file in the root 
folder, and then you can import all Tapestry sub-projects at 
once.</li></ul></li><li
 >Eclipse Gradle IDE users:<ul><li>Switch to Java (or JEE) perspective and 
 >right-click &gt; Import... &gt; Gradle &gt; Gradle Project &gt; 
 >Next.</li><li>Set the "Root folder" to where you put your Tapestry source in 
 >the previous section (e.g. <code>~/git/tapestry-5</code> or 
 ><code>%Home%\git\tapestry-5</code>)</li><li>Click <code>Build Model. When it 
 >completes, s</code>elect the top-level (the top-level module and all 
 >sub-modules).</li><li>Be sure the "Enable dependency management" and "Create 
 >workingset 'tapestry-5' checkboxes are checked.</li><li>Click 
 ><code>Finish</code>. (Be patient; the import operation might take a few 
 >minutes.)</li></ul></li><li>Eclipse EGit users: Do a Git "Share" on the 
 >project:<ul><li>Still in the Java (or JEE) perspective, select all of the 
 >Tapestry projects (top-level and sub-modules) and right-click &gt; Team &gt; 
 >Share Project... &gt; Git &gt; Next &gt; Ensure all are selected, click 
 ><code>Finish</code>.</li></ul></li></ul><h3 id="BuildingTapestryfromSo
 urce-Antlr">Antlr</h3><p>The <code>tapestry-core</code> project will initially 
have errors because of missing Java classes that are produced by ANTLR the 
first time the project is built. To fix this:</p><ul><li>Eclipse Gradle IDE 
users:<ul><li>Right click on the <code>build.gradle</code> file within 
tapestry-core and click Run As &gt; "Gradle build...", check 
<strong>only</strong> the generateGrammarSource task, and change the "Name" 
field to something like "tapestry-core antlr", then click Apply and 
Run.</li><li>When it's finished, the antlr-generated classes (e.g. 
PropertyExpressionLexer.java) will be in created in 
$buildDir/generated-sources/antlr/, but Eclipse doesn't yet know about that 
path. To fix that, right click on the <code>tapestry-core</code> project &gt; 
Properties &gt; Java Build Path &gt; Source &gt; Add Folder &gt; find 
<code>tapestry-core/build/generated-sources/antlr</code> and check the checkbox 
next to it, then click <code>OK</code>.</li></ul></li></ul><h3 id="B
 uildingTapestryfromSource-CoffeeScript">CoffeeScript</h3><p>If you want to run 
tests from within Eclipse, Tapestry will complain that it won't find certain 
JavaScript files that normally are generated during compile time from their 
Coffeescript sources. In order to generate the JavaScript files you need to 
have Coffeescript installed and in your path. Simply install <a shape="rect" 
class="external-link" href="http://nodejs.org/download/"; >Node.js</a> and 
afterwards run <code>npm install -g coffee-script</code>. The installation 
should take care of everything.</p><ul><li>Eclipse Gradle IDE 
users:<ul><li>Right click on the <code>build.gradle</code> file within 
tapestry-core and click Run As &gt; "Gradle build...", check 
<strong>only</strong> the tapestry-core:compileCoffeeScript and 
tapestry-core:compileTestCoffeeScript tasks, and change the "Name" field to 
something like "tapestry-core coffeescript", then click Apply and 
Run.</li><li>When it's finished, the coffeescript-generated Jav
 aScript files (e.g. t5-core-dom-jquery.js) will be in created in 
$buildDir/generated-sources/compiled-coffeescript/ and 
$buildDir/generated-sources/compiled-test-coffeescript/, but Eclipse doesn't 
yet know about that path. To fix that, right click on the 
<code>tapestry-core</code> project &gt; Properties &gt; Java Build Path &gt; 
Source &gt; Add Folder &gt; find 
<code>tapestry-core/build/generated-sources/compiled-coffeescript</code> and 
<code>tapestry-core/build/generated-sources/compiled-test-coffeescript</code> 
and check the checkbox next to it, then click 
<code>OK</code>.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-GenerateCoffeeScriptandAntlrfilesautomaticallywhenchanged">Generate
 CoffeeScript and Antlr files automatically when changed</h3><p>If you want to 
have Eclipse compile the JavaScript files and lexer classes from their 
Coffeescript sources and Antlr files automatically when they change, you can do 
that by configuring an additional builder for the <code>tapestr
 y-core</code> project:</p><ul><li>Eclipse Gradle IDE users:<ul><li>Right click 
on the <code>tapestry-core</code> project and select properties.</li><li>Select 
the "Builders" entry from the list on the left and click "New.." in the right 
panel.</li><li>Select "Program" and click "Ok".</li><li>Give the program a 
meaningful name, e.g. "compile coffeescript and antlr".</li><li>Switch to the 
"Main" tab.</li><li>For "Location:" click "Browse Workspace..." and select 
<code>gradlew.sh</code> or <code>gradlew.bat</code> in the Tapestry root 
project. If the root project is called "tapestry-5" the entry should look 
similar to "${workspace_loc:/tapestry-5/gradlew.bat}".</li><li>For "Working 
Directory:" click "Browse Workspace..." and select the Tapestry root 
project.</li><li>For "Arguments:" enter 
<code>tapestry-core:generateGrammarSource tapestry-core:compileCoffeeScript 
tapestry-core:compileTestCoffeeScript</code>.</li><li>Switch to the "Build 
Options" tab.</li><li>Make sure that only "Alloca
 te Console", "After a "Clean"", "During manual builds", "During auto builds" 
and "Specify working set of relevant resources" are checked.</li><li>Click 
"Specify Resources...".</li><li>From the "tapestry-core" project select 
"src/main/antlr", "src/main/coffeescript", and 
"src/test/coffeescript".</li><li>Click "Finish".</li><li>Click 
"OK".</li><li>Click "OK".</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-Building">Building</h3><p>You can build 
individual modules, or (from the root folder) build 
everything.</p><ul><li>Command-line users:<br clear="none"> *( "gradlew" is the 
gradle wrapper shell script (gradlew) or batch file (gradlew.bat) found in the 
root folder of the Tapestry source.<ul><li><code>./gradlew 
build</code></li></ul></li><li>Eclipse Gradle IDE users:<ul><li>Right click on 
the top-level project (or any sub-project) and select Run As &gt; Gradle 
Build..., which starts an External Tools Configuration dialog box. Enter a 
reasonable name, select the tasks you want to 
 run (for example, tapestry-core/install), and click 
Run.</li></ul></li></ul><h3 
id="BuildingTapestryfromSource-SeleniumSetup">Selenium Setup</h3><p>It is 
necessary that you have a compatible version of Firefox installed. &#160;On a 
Mac, you should install it in ~/Applications (rather than 
/Applications).</p><p>You should modify your ~/.bash_profile (or equivalent), 
to add ~/Applications/Firefox.app/Contents/MacOS to the PATH variable.</p><h3 
id="BuildingTapestryfromSource-RunningIndividualTests">Running Individual 
Tests</h3><p>Eclipse users:</p><ul><li>Install the <a shape="rect" 
class="external-link" href="http://testng.org/doc/eclipse.html"; >TestNG 
plugin</a> to allow running of individual TestNG unit tests from within in 
Eclipse.</li><li>Right-click on any test class and select Run As &gt;TestNG 
Test</li></ul><p>Command-line users:</p><ul><li>./gradlew 
-Dtest.single=myclassname</li><li>./gradlew 
-Dtest.single=myclassname.mymethod</li></ul><p>where myclassname is the test 
class, s
 uch as FormTest</p><p>The Tapestry integration tests will repeatedly start up 
a Firefox browser.</p><ul><li>Ensure that your environment will allow a 
connection to <a shape="rect" class="external-link" 
href="https://localhost:443"; >https://localhost:443</a></li></ul><h3 
id="BuildingTapestryfromSource-SkippingTests">Skipping Tests</h3><p>Running the 
Tapestry integration tests can take 10 minutes or more (mostly because of 
Selenium tests, which repeatedly start and stop the Firefox browser), so you 
won't want to run them every time you try a change.</p><ul><li>Command-line 
users:<ul><li><code>To build while skipping all tests: ./gradlew build -x 
test</code></li><li>You can skip tests on a specific module by adding a colon 
and the module name. For example: <code>-x 
test:tapestry-ioc</code></li></ul></li><li>Eclipse Gradle IDE users:<ul><li>In 
your External Tools Configuration, add the same -x test option as above at 
Arguments &gt; Program Arguments.</li></ul></li></ul><h3 id="BuildingT
 apestryfromSource-RunningtheIntegrationTestAppsManually">Running the 
Integration Test Apps Manually</h3><p>The Tapestry source includes several web 
apps that are used by the automated Selenium integration tests. You can also 
run these apps manually to try out nearly every browser-visible aspect of 
Tapestry.</p><ul><li>If using Eclipse:<ul><li>Use the run-jetty-run plugin in 
Eclipse, with the context directory selected from among the <code>test</code> 
context directories. For example, in the tapestry-core module, right click on 
the /src/test/app1 (or app2, etc) folder, and select Run As &gt; Run Jetty, 
then open your browser to <a shape="rect" class="external-link" 
href="http://localhost:8080/tapestry-core"; 
>http://localhost:8080/tapestry-core</a></li></ul></li></ul><h3 
id="BuildingTapestryfromSource-MakingCodeChanges">Making Code 
Changes</h3><p>Once you have cloned or pulled the latest changes to your local 
Git repository, you can start working on it. Whenever you make some changes 
 to the codebase, it's good to have a related issue filed in JIRA and to use a 
similarly named branch in your local Git repository. For example, to create a 
branch for an issue with the key TAP5-123:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[git branch TAP5-123 origin/master]]></script>
 </div></div><p>With per-issue branches you can easily switch back and forth 
between different issues without worrying about unwanted side-effects from 
unfinished changes to other issues. Whenever you want to work on the TAP5-123 
example issue, simply checkout that branch and start making your 
changes:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[git checkout TAP5-123]]></script>

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


Reply via email to