tapestry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r987168 - in /websites/production/tapestry/content: building-tapestry-from-source.html cache/main.pageCache
Date Sat, 30 Apr 2016 17:19:49 GMT
Author: buildbot
Date: Sat Apr 30 17:19:49 2016
New Revision: 987168

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 Sat Apr 30 17:19:49
2016
@@ -67,7 +67,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 
class="external-link" href="http://www.kb.cert.org/vuls/id/225657" rel="nofollow">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 reported to work as well.</li><li>Install Firefox browser <a
 class="external-link" href="https://ftp.mozilla.org/pub/firefox/releases/42.0/" rel="nofollow">version
42</a> or earlier, needed for the integration tests (because newer versions require
a newer version of Selenium than Tapestry's Java version requirements allow).</li><li>Set
the Firefox browser's "preferred language" to English (en), because some tests will otherwise
fail. (Fixed; see <a  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  class="external-link" href="http://git-scm.com/downloads"
rel="nofollow">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  class="external-link"
href="http://www.gradle.org/downloads" rel="nofollow">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  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" cl
 ass="confluenceTd"><p>Non Committers:</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>git clone</p><a  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  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 in
 terested 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 &gt; Projects &gt; Add tapestry-test). The plugin also
generates a root eclipse projec
 t, 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 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 <cod
 e>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  class="external-link" href="http://nodejs.org/download/" rel="nofollow">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-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 the
 ir 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 gradlew (for Mac/Linux) or <code>gradlew.bat
(for Windows)</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:generateGrammarSourc
 e 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-p
 roject) 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  class="external-link" href="http://testng.org/doc/eclipse.html" rel="nofollow">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-l
 ine 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  class="external-link" href="https://localhost:443" rel="nofollow">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>Command-line
users:<ul><li>./gradlew runTestApp1</li></ul></li><li>Eclipse
users:<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  class="external-link" href="http://localhost:8080/tapestry-core"
rel="nofollow">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 
class="external-link" href="http://www.kb.cert.org/vuls/id/225657" rel="nofollow">http://www.kb.cert.org/vuls/id/225657</a>),
or version 1.8 for Tapestry 5.5 and later.</li><li>Install an IDE (IDEA IntelliJ
is recommended (and free to Tapest
 ry committers), but Eclipse will also work. NetBeans is reported to work as well.</li><li>Tapestry
5.4.x and earlier: Install Firefox browser <a  class="external-link" href="https://ftp.mozilla.org/pub/firefox/releases/42.0/"
rel="nofollow">version 42</a> or earlier, needed for the integration tests (because
newer versions require a newer version of Selenium than Tapestry's Java version requirements
allow).</li><li><s>Set the Firefox browser's "preferred language" to English
(en), because some tests will otherwise fail.</s> (Fixed; see <a  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  class="external-link" href="http://git-scm.com/downloads"
rel="nofollow">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: nothing to do (Tapestry's Gradle wrapper, gradlew, will download Gradle automatically
on first use).</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  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 cl
 ass="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  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  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; pas
 sword</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 &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 pro
 jects (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 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="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  class="external-link" href="http://nodejs.org/download/" rel="nofollow">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-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>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 gradlew (for Mac/Linux) or <code>gradlew.bat
(for Windows)</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 u
 sers:<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  class="external-link" href="http://testng.org/doc/eclipse.html" rel="nofollow">TestNG
plugin</a> to allow running of individual TestNG unit tests from within in Eclipse.</li><li>Right-click
on any tes
 t 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  class="external-link" href="https://localhost:443" rel="nofollow">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>Command-line
users:<ul><li>./gradlew runTestApp1</li></ul></li><li>Eclipse
users:<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  class="external-link" href="http://localhost:8080/tapestry-core"
rel
 ="nofollow">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">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">git
branch TAP5-123 origin/master</pre>
 </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">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">git
checkout TAP5-123</pre>

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



Mime
View raw message