Author: buildbot
Date: Mon Nov 24 20:19:38 2014
New Revision: 930335
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 Mon
Nov 24 20:19:38 2014
@@ -46,19 +46,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 &
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 & 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&modificationDate=1293093635000&api=v2"
data-image-src="/confluence/download/attachments/21791252/tapestry_s.png?version=3&modificationDate=1293093635000&api=v2"></a></div>
-<div class="title" style="float:left; margin: 0 0 0 3em">
-<h1 id="SmallBanner-PageTitle">Building Tapestry from Source</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">Building Tapestry from Source</h1></div></div>
<div class="clearer"></div>
</div>
@@ -70,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.</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 > Preferences > Team > 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> </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> </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 > 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 &
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 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 > Projects > 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 > Import... > Gradle > Gradle Project
> Next.</li><li>Set the "Root folder" to where you put your Tapestry source
in the previ
ous 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 > Team >
Share Project... > Git > Next > 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
missing Java classes that are produced by ANTLR the first time the project is
built. To fix this:</p><ul><li>Eclipse Gradl
e IDE users:<ul><li>Right click on the <code>build.gradle</code> file within
tapestry-core and click Run As > "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 >
Properties > Java Build Path > Source > Add Folder > 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 fro
m 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 > "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-coffeescript/ and
$buildDir/generated-sources/compiled-test-coffeescript/, but Eclipse doesn't
yet know about that path. T
o fix that, right click on the <code>tapestry-core</code> project >
Properties > Java Build Path > Source > Add Folder > 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-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 "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 > 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-RunningIndividualTests">Running Individual
Tests</h3><p>Eclipse users:</p><ul><li>Install the <a shape="rect" cla
ss="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 >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><l
i><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 > 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 > 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.</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 > Preferences > Team > 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> </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> </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 > 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 &
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 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 > Projects > 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 > Import... > Gradle > Gradle Project
> Next.</li><li>Set the "Root folder" to where you put your Tapestry source
in the previ
ous 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 > Team >
Share Project... > Git > Next > 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
missing Java classes that are produced by ANTLR the first time the project is
built. To fix this:</p><ul><li>Eclipse Gradl
e IDE users:<ul><li>Right click on the <code>build.gradle</code> file within
tapestry-core and click Run As > "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 >
Properties > Java Build Path > Source > Add Folder > 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 fro
m 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 > "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-coffeescript/ and
$buildDir/generated-sources/compiled-test-coffeescript/, but Eclipse doesn't
yet know about that path. T
o fix that, right click on the <code>tapestry-core</code> project >
Properties > Java Build Path > Source > Add Folder > 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-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 "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 > 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. 
60;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 >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://localhos
t: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 > 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 > 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.