Modified: websites/production/tapestry/content/release-notes-541.html
==============================================================================
--- websites/production/tapestry/content/release-notes-541.html (original)
+++ websites/production/tapestry/content/release-notes-541.html Sat Feb 3
18:21:36 2018
@@ -36,13 +36,26 @@
<div class="wrapper bs">
- <div id="navigation"><div class="nav"><ul class="alternate"><li><a
href="index.html">Home</a></li><li><a href="getting-started.html">Getting
Started</a></li><li><a href="documentation.html">Documentation</a></li><li><a
href="download.html">Download</a></li><li><a
href="about.html">About</a></li><li><a class="external-link"
href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li><li><a
href="community.html">Community</a></li><li><a class="external-link"
href="http://www.apache.org/security/">Security</a></li><li><a
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></div></div>
+ <div id="navigation"><div class="nav"><ul class="alternate"><li><a
href="index.html">Home</a></li><li><a href="getting-started.html">Getting
Started</a></li><li><a href="documentation.html">Documentation</a></li><li><a
href="download.html">Download</a></li><li><a
href="about.html">About</a></li><li><a class="external-link"
href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li><li><a
href="community.html">Community</a></li><li><a class="external-link"
href="http://www.apache.org/security/">Security</a></li><li><a
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></div>
+
+</div>
<div id="top">
- <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"><p><a
href="index.html"><span class="confluence-embedded-file-wrapper"><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"></span></a></p></div><div
class="title" style="float:left; margin: 0 0 0 3em"><h1
id="SmallBanner-PageTitle">Release Notes 5.4.1</h1></div></div>
+ <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"><p><a href="index.html"><span
class="confluence-embedded-file-wrapper"><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"></span></a></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1
id="SmallBanner-PageTitle">Release Notes 5.4.1</h1></div>
+
+</div>
<div class="clearer"></div>
</div>
@@ -54,8 +67,7 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry 5.4.1 is a drop-in
replacement for Tapestry 5.4.1 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="download.html">Download</a> the new JAR file -- and the new
version will just work. However, please review the <a
href="how-to-upgrade.html">How to Upgrade</a> instructions before
upgrading.</p><p> </p>
- Release Notes - Tapestry 5 - Version 5.4.1
+ <div id="ConfluenceContent"><p>Tapestry 5.4.1 is a drop-in
replacement for Tapestry 5.4.1 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="download.html">Download</a> the new JAR file -- and the new
version will just work. However, please review the <a
href="how-to-upgrade.html">How to Upgrade</a> instructions before
upgrading.</p><p> </p> Release Notes - Tapestry 5 - Version 5.4.1
<h2> Bugs fixed
</h2>
@@ -84,7 +96,7 @@
</li><li>[<a
href="TAP5-2520https://issues.apache.org/jira/browse/TAP5-2520">TAP5-2520</a>]
- NullPointerException in CaseInsensitiveMap
</li><li>[<a
href="TAP5-2528https://issues.apache.org/jira/browse/TAP5-2528">TAP5-2528</a>]
- Fix typo: "classes" instead of "clashes"
</li></ul>
-
</div>
+
<p></p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/release-notes-542.html
==============================================================================
--- websites/production/tapestry/content/release-notes-542.html (original)
+++ websites/production/tapestry/content/release-notes-542.html Sat Feb 3
18:21:36 2018
@@ -67,7 +67,7 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry 5.4.2 is a drop-in
replacement for Tapestry 5.4 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="download.html">Download</a> the new JAR file -- and the new
version will just work. However, please review the <a
href="how-to-upgrade.html">How to Upgrade</a> instructions before
upgrading.</p><p> </p> Release Notes - Tapestry 5 - Version 5.4.2
+ <div id="ConfluenceContent"><p>Tapestry 5.4.2 is a drop-in
replacement for Tapestry 5.4 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="release-notes-542.html">Release Notes 5.4.2</a> the new JAR
file -- and the new version will just work. However, please review the <a
href="release-notes-542.html">Release Notes 5.4.2</a> instructions before
upgrading.</p><p> </p> Release Notes - Tapestry 5 - Version 5.4.2
<h2> Bugs fixed
</h2>
@@ -84,7 +84,7 @@
<h2> Task completed
</h2>
<ul><li>[<a
href="TAP5-2575https://issues.apache.org/jira/browse/TAP5-2575">TAP5-2575</a>]
- Replace json.org-licensed classes with Apache-compatible versions
-</li></ul>
</div>
+</li></ul>
<p></p><p> </p><p> </p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/release-notes-543.html
==============================================================================
--- websites/production/tapestry/content/release-notes-543.html (original)
+++ websites/production/tapestry/content/release-notes-543.html Sat Feb 3
18:21:36 2018
@@ -67,13 +67,13 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry 5.4.3 is a drop-in
replacement for Tapestry 5.4 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="download.html">Download</a> the new JAR file -- and the new
version will just work. However, please review the <a
href="how-to-upgrade.html">How to Upgrade</a> instructions before
upgrading.</p><p> </p> Release Notes - Tapestry 5 - Version 5.4.3
+ <div id="ConfluenceContent"><p>Tapestry 5.4.3 is a drop-in
replacement for Tapestry 5.4 releases. To upgrade, just update the dependency
in your build configuration (Maven POM, Gradle build script, etc.) –
or <a href="release-notes-543.html">Release Notes 5.4.3</a> the new JAR
file -- and the new version will just work. However, please review the <a
href="release-notes-543.html">Release Notes 5.4.3</a> instructions before
upgrading.</p><p> </p> Release Notes - Tapestry 5 - Version 5.4.3
<h2> Bugs fixed
</h2>
<ul><li>[<a
href="TAP5-2578https://issues.apache.org/jira/browse/TAP5-2578">TAP5-2578</a>]
- Changed constructor signature JSONObject(JSONObject, String...)
</li><li>[<a
href="TAP5-2580https://issues.apache.org/jira/browse/TAP5-2580">TAP5-2580</a>]
- Quickstart project should not set SymbolConstants.MINIFICATION_ENABLED
-</li></ul></div>
+</li></ul><p></p><p> </p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/release-process.html
==============================================================================
--- websites/production/tapestry/content/release-process.html (original)
+++ websites/production/tapestry/content/release-process.html Sat Feb 3
18:21:36 2018
@@ -44,13 +44,26 @@
<div class="wrapper bs">
- <div id="navigation"><div class="nav"><ul class="alternate"><li><a
href="index.html">Home</a></li><li><a href="getting-started.html">Getting
Started</a></li><li><a href="documentation.html">Documentation</a></li><li><a
href="download.html">Download</a></li><li><a
href="about.html">About</a></li><li><a class="external-link"
href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li><li><a
href="community.html">Community</a></li><li><a class="external-link"
href="http://www.apache.org/security/">Security</a></li><li><a
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></div></div>
+ <div id="navigation"><div class="nav"><ul class="alternate"><li><a
href="index.html">Home</a></li><li><a href="getting-started.html">Getting
Started</a></li><li><a href="documentation.html">Documentation</a></li><li><a
href="download.html">Download</a></li><li><a
href="about.html">About</a></li><li><a class="external-link"
href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li><li><a
href="community.html">Community</a></li><li><a class="external-link"
href="http://www.apache.org/security/">Security</a></li><li><a
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
class="external-link"
href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></div>
+
+</div>
<div id="top">
- <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"><p><a
href="index.html"><span class="confluence-embedded-file-wrapper"><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"></span></a></p></div><div
class="title" style="float:left; margin: 0 0 0 3em"><h1
id="SmallBanner-PageTitle">Release Process</h1></div></div>
+ <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"><p><a href="index.html"><span
class="confluence-embedded-file-wrapper"><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"></span></a></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1
id="SmallBanner-PageTitle">Release Process</h1></div>
+
+</div>
<div class="clearer"></div>
</div>
@@ -62,43 +75,76 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><h2
id="ReleaseProcess-Prerequisites">Prerequisites</h2><div class="aui-label"
style="float:right" title="Related Articles"><h3>Related Articles</h3><ul
class="content-by-label"><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="building-tapestry-from-source.html">Building Tapestry from
Source</a>
- </div> </li><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="version-numbers.html">Version Numbers</a>
- </div> </li><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="developer-bible.html">Developer Bible</a>
- </div> </li><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="release-process.html">Release Process</a>
- </div> </li><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="developer-information.html">Developer Information</a>
- </div> </li><li>
- <div>
- <span class="icon aui-icon aui-icon-small aui-iconfont-page-default"
title="Page">Page:</span>
- </div>
- <div class="details">
- <a href="confluence-site-setup.html">Confluence Site Setup</a>
- </div> </li></ul></div><p>Before creating a release, ensure
that:</p><ul><li>You have <a class="external-link"
href="http://www.apache.org/dev/openpgp.html">setup your own public OpenGPG key
signature</a> for signing the distribution</li><li>You can login to <a
class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a></li><li>You
have a Git workspace for <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></li><li>You
have a Subversion workspace for <a class="external-link"
href="https://dist.apache.org/repos/dist/dev/tapestry">https://dist.apache.org/repos/dist/dev/tapestry</a> (dev
archives workspace)</li><li>You have a Subversion workspace for <a
class="external-link"
href="https://dist.apache.org/repos/dist/release/tapestry">https://dist.apache.org/repos/dist/release/tapestry</a> (release
archives workspace)</
li><li>You have a Subversion workspace for <a class="external-link"
href="https://svn.apache.org/repos/infra/websites/production/tapestry/content">https://svn.apache.org/repos/infra/websites/production/tapestry/content</a> (site
content workspace)</li></ul><h2
id="ReleaseProcess-GITandDeploymentCredentials">GIT and Deployment
Credentials</h2><p>To successfully create a release, you will need to update
your Gradle settings with the credentials for your git user and the deployment
user. These credentials are stored in the Gradle configuration file
<code>~/.gradle/gradle.properties</code>:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><h2
id="ReleaseProcess-Prerequisites">Prerequisites</h2><div class="aui-label"
style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="building-tapestry-from-source.html">Building
Tapestry from Source</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="version-numbers.html">Version Numbers</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="developer-bible.html">Developer Bible</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="release-process.html">Release Process</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="developer-information.html">Developer
Information</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="confluence-site-setup.html">Confluence Site
Setup</a>
+
+
+ </div>
+ </li></ul>
+</div>
+
+
+<p>Before creating a release, ensure that:</p><ul><li>You have <a
class="external-link" href="http://www.apache.org/dev/openpgp.html">setup your
own public OpenGPG key signature</a> for signing the distribution</li><li>You
can login to <a class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a></li><li>You
have a Git workspace for <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></li><li>You
have a Subversion workspace for <a class="external-link"
href="https://dist.apache.org/repos/dist/dev/tapestry">https://dist.apache.org/repos/dist/dev/tapestry</a> (dev
archives workspace)</li><li>You have a Subversion workspace for <a
class="external-link"
href="https://dist.apache.org/repos/dist/release/tapestry">https://dist.apache.org/repos/dist/release/tapestry</a> (release
archives workspace)</li><li>You have a Subvers
ion workspace for <a class="external-link"
href="https://svn.apache.org/repos/infra/websites/production/tapestry/content">https://svn.apache.org/repos/infra/websites/production/tapestry/content</a> (site
content workspace)</li></ul><h2
id="ReleaseProcess-GITandDeploymentCredentials">GIT and Deployment
Credentials</h2><p>To successfully create a release, you will need to update
your Gradle settings with the credentials for your git user and the deployment
user. These credentials are stored in the Gradle configuration file
<code>~/.gradle/gradle.properties</code>:</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;">apacheDeployUserName=hlship
apacheDeployPassword=...
@@ -107,7 +153,7 @@ signing.secretKeyRingFile=.../.gnupg/sec
signing.password=...
apacheArchivesFolder=.../tapestry-dev</pre>
-</div></div><p>You can find your keyId using <code>gpg
--list-keys</code>.</p><p> The apacheArchivesFolder should be the full
path to your dev archives workspace. The build will copy files to this
folder; see further notes below.</p><h2
id="ReleaseProcess-ReleaseSteps">Release Steps</h2><h3
id="ReleaseProcess-1.GeneratetheRelease">1. Generate the
Release</h3><ol><li>Update your workspace to the release branch<ol><li>For
current work, the release branch is <em>master</em></li><li>When creating
bug fix releases for older releases, the branch will match the release,
e.g., <em>5.3</em></li></ol></li><li><span style="line-height:
1.4285715;">Run the build using </span><code style="line-height:
1.4285715;">gradle generateRelease</code><br clear="none"><ol><li>This will
create, sign, and upload JAR files and other artifacts to the Nexus
repository</li><li>It will also create, sign, and copy the source, binary, and
documentation archives to your dev archives wo
rkspace</li></ol></li><li>Tag the release in Git, then push the changes up to
the Apache repository:<ol><li><code>git tag 5.x</code></li><li><code>git push
--tags</code></li></ol></li><li>Login to <a class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a> and <strong>close</strong> the
automatically created staging repository</li></ol><h3
id="ReleaseProcess-2.CommittheArchives">2. Commit the Archives</h3><ol><li>The
build will have copied archive files to your dist workspace</li><li><code>svn
add</code> the new files</li><li><code>svn commit</code> to copy the files up
to Apache (this is <em>slow</em>)<ol><li>Use the full version number as
the commit message, e.g., <em>5.4-beta-26</em></li></ol></li><li>You can
verify the files via the web: <a class="external-link"
href="https://dist.apache.org/repos/dist/dev/tapestry">https://dist.apache.org/repos/dist/dev/tapestry</a></li></ol><h3
id="ReleaseProcess-3
.BumptheVersionNumber">3. Bump the Version
Number</h3><ol><li>Update <code>build.gradle</code> to increment the
version number</li><li>Increment the minor version number (inside the
tapestryVersion method, near the top of the file)</li><li><p>Commit and push
the changes</p></li></ol><h3 id="ReleaseProcess-4.SendVote">4. Send
Vote</h3><ol><li><span style="line-height: 1.4285715;">Send vote
email</span></li><li><span style="line-height: 1.4285715;"><strong>Wait 3
days</strong><br clear="none"></span></li><li><span style="line-height:
1.4285715;">The vote is successful if there are at least
three <strong>+1</strong>'s and more <strong>+1</strong> than
<strong>-1</strong></span></li><li><span style="line-height: 1.4285715;">Only
PMC members may cast binding votes</span></li></ol><h3
id="ReleaseProcess-5.UpdateJIRAandgeneratereleasenotes"><span>5. Update JIRA
and generate release notes</span><span style="line-height:
22.857143px;"> </span></h3><ol><li><span>Use the
60;</span><a class="external-link"
href="https://issues.apache.org/jira/plugins/servlet/project-config/TAP5/versions">Manage
Versions page</a><span> in JIRA to add a new version (this is often not
necessary as it is often created by someone
earlier)</span></li><li><strong>Release</strong> the version, moving
outstanding issues to the next version</li><li>Generate HTML Release
Notes<ol><li>Visit the <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5#selectedTab=com.atlassian.jira.plugin.system.project:versions-panel&subset=-1">TAP5
Versions pages in JIRA</a></li><li>Choose the correct version
number</li><li>Click "Release Notes" (upper right corner of the
page)</li><li>Create a new Confluence child page of <a
href="release-notes.html">Release Notes</a> (it may already
exist)</li><li>Update with text about any unusual aspects of the upgrade
(especially, non-backwards compatible changes)</li><li>Paste the HTML release
notes content
into the new page (you'll have to use the {html} macro)</li><li>Rename the
"Bug" heading to "Bugs Fixed", "Improvement" to "Improvements Made", "New
Feature" to "New Features Added"</li><li>Update <a
href="release-notes.html">Release Notes</a> index page to point to the new
page</li></ol></li></ol><h3
id="ReleaseProcess-6.ReleasetheMavenArtifacts"><span style="line-height:
22.857143px;">6. Release the Maven Artifacts</span></h3><ol><li>Login to <a
class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a>
and <strong>release</strong> the version's repository<ol><li>Enter "Apache
Tapestry 5.x" (adjust as necessary) for the message</li><li>The version will
disappear from the list of repositories after releasing
it</li></ol></li><li>Releasing will ultimately get the artifacts up to the
central Maven repository</li></ol><h3
id="ReleaseProcess-7.ReleasetheArchives">7. Release the
Archives</h3><ol><li>Copy the release archives files (i
ncluding checksums and GPG signatures) to the release archives
workspace</li><li>Change to the release archives workspace</li><li><code>svn
add</code> and<code>svn commit</code>, as with the dev archives
workspace</li></ol><h3 id="ReleaseProcess-8.ReleasetheJavadocs">8. Release the
Javadocs</h3><ol><li>Run the "aggregateJavadoc" gradle task</li><li>Copy the
resulting files from build/documentation/javadocs/* to a version-numbered
subdirectory of your site <em>content</em> workspace (see Prerequisites at the
top of this page)</li><li>svn commit those new javadoc files</li><li>Update the
"current" symbolic link under the content directory to point to new
version-numbered directory. For example, if "current" is a symbolic link to
"5.4" and you want to change it to "5.5", do this:<br clear="none"><ul><li>rm
current</li><li>ln -s 5.5 current</li><li>svn commit -m "Updated javadocs
current symbolic link" current</li></ul></li></ol><h3
id="ReleaseProcess-9.Wait">9. Wait</h3><ul><li>You mus
t wait at least 24 hours for the archives and artifacts to be distributed to
the Apache mirrors and to the central Maven repository</li></ul><h3
id="ReleaseProcess-10.UpdateDocumentation"><span style="line-height:
1.4285715;">10. Update Documentation</span></h3><ol><li><span
style="line-height: 1.4285715;">Update the release number listed in the
following pages in the Confluence wiki:</span><br clear="none"><ol><li><a
href="download.html">Download</a> page</li><li>(Optional) Tutorial <a
href="creating-the-skeleton-application.html">Creating The Skeleton
Application</a> page: Tapestry version number in the
archetype</li><li>(Optional) <a href="getting-started.html">Getting
Started</a> page: Tapestry version number in the
archetype</li></ol></li><li><span>Change to the site content
workspace</span></li><li><code>svn update</code> to get any recent
changes</li><li><span>Edit </span><a class="external-link"
href="https://svn.apache.org/repos/infra/websites/production/tapes
try/content/archetype-catalog.xml"><span> </span><code>archetype-catalog.xml</code><span> </span></a><span>to
add or update a new entry for the release</span></li><li><span
style="line-height: 1.4285715;">Update the release number and date
inside </span><code style="line-height: 1.4285715;">doap.rdf</code><span
style="line-height: 1.4285715;">  (this is a </span><a
class="external-link" href="https://projects.apache.org/doap.html"
style="line-height: 1.4285715;">description file</a><span style="line-height:
1.4285715;"> for the project)</span></li><li><span style="line-height:
1.4285715;"><code>svn commit</code></span></li></ol><h3
id="ReleaseProcess-11.Blog&Tweet"><span>11. Blog &
Tweet</span></h3><ol><li><a
href="https://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=TAPESTRY"><span>Write
a blog post</span></a><span> in Confluence announcing the
release.</span></li><li><span>Send an email to the <em>users</em> mailing list
announcing
the release.<br clear="none"></span></li><li><span>Send out a tweet (using
the <a class="external-link" href="https://twitter.com/apachetapestry"
rel="nofollow"><em>ApacheTapestry</em></a> Twitter account) announcing the
release.<br clear="none"></span></li></ol><h3
id="ReleaseProcess-Done!"><span>Done!</span></h3><p><span><br
clear="none"></span></p><hr><h2
id="ReleaseProcess-Atemplateforthevotee-mail:">A template for the vote
e-mail:</h2><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+</div></div><p>You can find your keyId using <code>gpg
--list-keys</code>.</p><p> The apacheArchivesFolder should be the full
path to your dev archives workspace. The build will copy files to this
folder; see further notes below.</p><h2
id="ReleaseProcess-ReleaseSteps">Release Steps</h2><h3
id="ReleaseProcess-1.GeneratetheRelease">1. Generate the
Release</h3><ol><li>Update your workspace to the release branch<ol><li>For
current work, the release branch is <em>master</em></li><li>When creating
bug fix releases for older releases, the branch will match the release,
e.g., <em>5.3</em></li></ol></li><li><span>Run the build using
</span><code>gradle generateRelease</code><br clear="none"><ol><li>This will
create, sign, and upload JAR files and other artifacts to the Nexus
repository</li><li>It will also create, sign, and copy the source, binary, and
documentation archives to your dev archives workspace</li></ol></li><li>Tag the
release in Git, then push the
changes up to the Apache repository:<ol><li><code>git tag
5.x</code></li><li><code>git push --tags</code></li></ol></li><li>Login
to <a class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a> and <strong>close</strong> the
automatically created staging repository</li></ol><h3
id="ReleaseProcess-2.CommittheArchives">2. Commit the Archives</h3><ol><li>The
build will have copied archive files to your dist workspace</li><li><code>svn
add</code> the new files</li><li><code>svn commit</code> to copy the files up
to Apache (this is <em>slow</em>)<ol><li>Use the full version number as
the commit message, e.g., <em>5.4-beta-26</em></li></ol></li><li>You can
verify the files via the web: <a class="external-link"
href="https://dist.apache.org/repos/dist/dev/tapestry">https://dist.apache.org/repos/dist/dev/tapestry</a></li></ol><h3
id="ReleaseProcess-3.BumptheVersionNumber">3. Bump the Version
Number</h3><ol><li>Up
date <code>build.gradle</code> to increment the version
number</li><li>Increment the minor version number (inside the tapestryVersion
method, near the top of the file)</li><li><p>Commit and push the
changes</p></li></ol><h3 id="ReleaseProcess-4.SendVote">4. Send
Vote</h3><ol><li><span>Send vote email</span></li><li><span><strong>Wait 3
days</strong><br clear="none"></span></li><li><span>The vote is successful if
there are at least three <strong>+1</strong>'s and more
<strong>+1</strong> than <strong>-1</strong></span></li><li><span>Only PMC
members may cast binding votes</span></li></ol><h3
id="ReleaseProcess-5.UpdateJIRAandgeneratereleasenotes"><span>5. Update JIRA
and generate release notes</span><span> </span></h3><ol><li><span>Use
the </span><a class="external-link"
href="https://issues.apache.org/jira/plugins/servlet/project-config/TAP5/versions">Manage
Versions page</a><span> in JIRA to add a new version (this is often not
necessary as it is ofte
n created by someone earlier)</span></li><li><strong>Release</strong> the
version, moving outstanding issues to the next version</li><li>Generate HTML
Release Notes<ol><li>Visit the <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5#selectedTab=com.atlassian.jira.plugin.system.project:versions-panel&subset=-1">TAP5
Versions pages in JIRA</a></li><li>Choose the correct version
number</li><li>Click "Release Notes" (upper right corner of the
page)</li><li>Create a new Confluence child page of <a
href="release-process.html">Release Process</a> (it may already
exist)</li><li>Update with text about any unusual aspects of the upgrade
(especially, non-backwards compatible changes)</li><li>Paste the HTML release
notes content into the new page (you'll have to use the {html}
macro)</li><li>Rename the "Bug" heading to "Bugs Fixed", "Improvement" to
"Improvements Made", "New Feature" to "New Features
Added"</li><li>Update <a href="release-p
rocess.html">Release Process</a> index page to point to the new
page</li></ol></li></ol><h3
id="ReleaseProcess-6.ReleasetheMavenArtifacts"><span>6. Release the Maven
Artifacts</span></h3><ol><li>Login to <a class="external-link"
href="https://repository.apache.org/index.html#stagingRepositories">Nexus</a>
and <strong>release</strong> the version's repository<ol><li>Enter "Apache
Tapestry 5.x" (adjust as necessary) for the message</li><li>The version will
disappear from the list of repositories after releasing
it</li></ol></li><li>Releasing will ultimately get the artifacts up to the
central Maven repository</li></ol><h3
id="ReleaseProcess-7.ReleasetheArchives">7. Release the
Archives</h3><ol><li>Copy the release archives files (including checksums and
GPG signatures) to the release archives workspace</li><li>Change to the release
archives workspace</li><li><code>svn add</code> and<code>svn commit</code>, as
with the dev archives workspace</li></ol><h3 id="ReleaseProcess-8.Rele
asetheJavadocs">8. Release the Javadocs</h3><ol><li>Run the "aggregateJavadoc"
gradle task</li><li>Copy the resulting files from
build/documentation/javadocs/* to a version-numbered subdirectory of your site
<em>content</em> workspace (see Prerequisites at the top of this
page)</li><li>svn commit those new javadoc files</li><li>Update the "current"
symbolic link under the content directory to point to new version-numbered
directory. For example, if "current" is a symbolic link to "5.4" and you want
to change it to "5.5", do this:<br clear="none"><ul><li>rm current</li><li>ln
-s 5.5 current</li><li>svn commit -m "Updated javadocs current symbolic link"
current</li></ul></li></ol><h3 id="ReleaseProcess-9.Wait">9.
Wait</h3><ul><li>You must wait at least 24 hours for the archives and artifacts
to be distributed to the Apache mirrors and to the central Maven
repository</li></ul><h3 id="ReleaseProcess-10.UpdateDocumentation"><span>10.
Update Documentation</span></h3><ol><li><span>Update t
he release number listed in the following pages in the Confluence
wiki:</span><br clear="none"><ol><li><a href="release-process.html">Release
Process</a> page</li><li>(Optional) Tutorial <a
href="release-process.html">Release Process</a> page: Tapestry version number
in the archetype</li><li>(Optional) <a href="release-process.html">Release
Process</a> page: Tapestry version number in the
archetype</li></ol></li><li><span>Change to the site content
workspace</span></li><li><code>svn update</code> to get any recent
changes</li><li><span>Edit </span><a class="external-link"
href="https://svn.apache.org/repos/infra/websites/production/tapestry/content/archetype-catalog.xml"><span> </span><code>archetype-catalog.xml</code><span> </span></a><span>to
add or update a new entry for the release</span></li><li><span>Update the
release number and date inside </span><code>doap.rdf</code><span>
 (this is a </span><a class="external-link" href="https://projects.
apache.org/doap.html">description file</a><span> for the
project)</span></li><li><span><code>svn commit</code></span></li></ol><h3
id="ReleaseProcess-11.Blog&Tweet"><span>11. Blog &
Tweet</span></h3><ol><li><a
href="https://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=TAPESTRY"><span>Write
a blog post</span></a><span> in Confluence announcing the
release.</span></li><li><span>Send an email to the <em>users</em> mailing list
announcing the release.<br clear="none"></span></li><li><span>Send out a tweet
(using the <a class="external-link" href="https://twitter.com/apachetapestry"
rel="nofollow"><em>ApacheTapestry</em></a> Twitter account) announcing the
release.<br clear="none"></span></li></ol><h3
id="ReleaseProcess-Done!"><span>Done!</span></h3><p><span><br
clear="none"></span></p><hr><h2
id="ReleaseProcess-Atemplateforthevotee-mail:">A template for the vote
e-mail:</h2><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panel
Content pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">I've created and uploaded a release of Tapestry 5.x,
ready to be voted upon.
The source, binary, and documentation archives have been uploaded to:
Modified: websites/production/tapestry/content/release-upgrade-faq.html
==============================================================================
--- websites/production/tapestry/content/release-upgrade-faq.html (original)
+++ websites/production/tapestry/content/release-upgrade-faq.html Sat Feb 3
18:21:36 2018
@@ -77,16 +77,7 @@
</div>
<div id="content">
- <div id="ConfluenceContent">
-
-<h2 id="ReleaseUpgradeFAQ-ReleaseUpgradeFAQ">Release Upgrade FAQ </h2>
-
-<p>Main Article: <a href="release-notes.html">Release Notes</a> </p>
-
-<h3
id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why
do I get an exception about
org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to
5.2?</h3>
-
-<p>Although Tapestry works very hard to keep backwards compatibility between
releases for <em>public</em> APIs, all <em>internal</em> APIs are subject to
change. This error is commonly due to the use of the ChenilleKit library, which
makes use of some internal APIs. You must also upgrade your ChenilleKit
dependency when moving from Tapestry 5.1 to 5.2 or later. See the <a
class="external-link"
href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr"
rel="nofollow">complete discussion of this from the Tapestry user mailing
list</a>. </p>
-</div>
+ <div id="ConfluenceContent"><h2
id="ReleaseUpgradeFAQ-ReleaseUpgradeFAQ">Release Upgrade FAQ</h2><p>Main
Article: <a href="release-upgrade-faq.html">Release Upgrade FAQ</a></p><h3
id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why
do I get an exception about
org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to
5.2?</h3><p>Although Tapestry works very hard to keep backwards compatibility
between releases for <em>public</em> APIs, all <em>internal</em> APIs are
subject to change. This error is commonly due to the use of the ChenilleKit
library, which makes use of some internal APIs. You must also upgrade your
ChenilleKit dependency when moving from Tapestry 5.1 to 5.2 or later. See the
<a class="external-link"
href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr"
rel="nofollow">complete discussion of this from the Tapestry user mailing
list</a>.</p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/request-processing-faq.html
==============================================================================
--- websites/production/tapestry/content/request-processing-faq.html (original)
+++ websites/production/tapestry/content/request-processing-faq.html Sat Feb 3
18:21:36 2018
@@ -77,30 +77,13 @@
</div>
<div id="content">
- <div id="ConfluenceContent">
-
-<h2 id="RequestProcessingFAQ-RequestProcessing">Request Processing</h2>
-
-<h3 id="RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How do I
get Tapestry to <strong>not</strong> handle a request?</h3>
-
-<p>Often, when <a
href="integration-with-existing-applications.html">integrating with outside
libraries, or working with legacy code</a>, you will want Tapestry to ignore a
request and let the normal servlet or other processing handle the request.</p>
-
-<p>The easy way to do this is to contribute a regular expression to the <a
href="configuration.html">IgnoredPathsFilter service</a>, whose job is to
exclude some requests.</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;">
-public static void contributeIgnoredPathsFilter(Configuration<String>
configuration)
+ <div id="ConfluenceContent"><h2
id="RequestProcessingFAQ-RequestProcessing">Request Processing</h2><h3
id="RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How do I get
Tapestry to <strong>not</strong> handle a request?</h3><p>Often, when <a
href="request-processing-faq.html">integrating with outside libraries, or
working with legacy code</a>, you will want Tapestry to ignore a request and
let the normal servlet or other processing handle the request.</p><p>The easy
way to do this is to contribute a regular expression to the <a
href="request-processing-faq.html">IgnoredPathsFilter service</a>, whose job is
to exclude some requests.</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;">public static void
contributeIgnoredPathsFilter(Configuration<String> configuration)
{
configuration.add("/dwr/.*");
}
</pre>
-</div></div>
-
-<p>Alternately, you may contribute a <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a>
to the <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html">HttpServletRequestHandler</a>
pipeline. A filter that simply returns false from its <code>service()</code>
method will cause Tapestry to hand off the request to the servlet container for
normal handling. You would use this approach when a simple regular expression
is not sufficient to identify which requests should be ignored.</p>
-
-<p>Alternately, you can configure the Tapestry application to execute inside a
folder to avoid conflicts. See the notes on the <a
href="configuration.html">configuration page</a>.</p>
-
- </div>
+</div></div><p>Alternately, you may contribute a <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a>
to the <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html">HttpServletRequestHandler</a>
pipeline. A filter that simply returns false from its <code>service()</code>
method will cause Tapestry to hand off the request to the servlet container for
normal handling. You would use this approach when a simple regular expression
is not sufficient to identify which requests should be
ignored.</p><p>Alternately, you can configure the Tapestry application to
execute inside a folder to avoid conflicts. See the notes on the <a
href="request-processing-faq.html">configuration page</a>.</p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/security-faq.html
==============================================================================
--- websites/production/tapestry/content/security-faq.html (original)
+++ websites/production/tapestry/content/security-faq.html Sat Feb 3 18:21:36
2018
@@ -27,6 +27,16 @@
</title>
<link type="text/css" rel="stylesheet" href="/resources/space.css" />
+ <link href='/resources/highlighter/styles/shCoreCXF.css'
rel='stylesheet' type='text/css' />
+ <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet'
type='text/css' />
+ <script src='/resources/highlighter/scripts/shCore.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushJava.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushXml.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushPlain.js'
type='text/javascript'></script>
+ <script>
+ SyntaxHighlighter.defaults['toolbar'] = false;
+ SyntaxHighlighter.all();
+ </script>
<link href="/styles/style.css" rel="stylesheet" type="text/css"/>
@@ -67,12 +77,56 @@
</div>
<div id="content">
- <div
id="ConfluenceContent"><p><plain-text-body>{scrollbar}</plain-text-body></p><h2
id="SecurityFAQ-SecurityFAQ">Security FAQ</h2><p> </p><parameter
ac:name="style">float:right</parameter><parameter ac:name="title">Related
Articles</parameter><parameter
ac:name="class">aui-label</parameter><rich-text-body><parameter
ac:name="showLabels">false</parameter><parameter
ac:name="showSpace">false</parameter><parameter ac:name="title">Related
Articles</parameter><parameter ac:name="cql">label = "security" and space =
currentSpace()</parameter></rich-text-body><h3
id="SecurityFAQ-Thebuilt-inDashboardpagearevisibleinmyproductionapplicationandIdon'twantthemtobe,whatcanIdo?">The
built-in Dashboard page are visible in my production application and I don't
want them to be, what can I do?</h3><p>First off all, don't panic: the <a
href="development-dashboard.html">Developer Dashboard</a> page is marked with
the @<a class="external-link" href="http://tapestry.apache.org/curre
nt/apidocs/org/apache/tapestry5/annotations/WhitelistAccessOnly.html">WhitelistAccessOnly</a>
annotation, which makes it invisible to clients that are not on the whitelist.
Try accessing the page from a different workstation and you may find that the
pages are not visible after all.</p><p>Sometimes, in production, a firewall or
proxy may make it look like the client web browser originates from localhost;
in that situation, you may want to disable the logic that puts localhost onto
the whitelist. This determination is made by the contributions to the <a
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/security/ClientWhitelist.html">ClientWhitelist</a>
service. Tapestry makes a contribution with id "LocalhostOnly", which one of
your modules can override:</p><plain-text-body>
@Contribute(ClientWhitelist.class)
+ <div id="ConfluenceContent"><h2
id="SecurityFAQ-SecurityFAQ">Security FAQ</h2><p> </p><div
class="aui-label" style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="security-faq.html">Security FAQ</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="https.html">HTTPS</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="security.html">Security</a>
+
+
+ </div>
+ </li></ul>
+</div>
+
+
+<h3
id="SecurityFAQ-Thebuilt-inDashboardpagearevisibleinmyproductionapplicationandIdon'twantthemtobe,whatcanIdo?">The
built-in Dashboard page are visible in my production application and I don't
want them to be, what can I do?</h3><p>First off all, don't panic: the <a
href="security-faq.html">Developer Dashboard</a> page is marked with the @<a
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/WhitelistAccessOnly.html">WhitelistAccessOnly</a>
annotation, which makes it invisible to clients that are not on the whitelist.
Try accessing the page from a different workstation and you may find that the
pages are not visible after all.</p><p>Sometimes, in production, a firewall or
proxy may make it look like the client web browser originates from localhost;
in that situation, you may want to disable the logic that puts localhost onto
the whitelist. This determination is made by the contributions to the <a
class="external-link" href="h
ttp://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/security/ClientWhitelist.html">ClientWhitelist</a>
service. Tapestry makes a contribution with id "LocalhostOnly", which one of
your modules can override:</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;"> @Contribute(ClientWhitelist.class)
public static void
turnOffLocalhostInProduction(OrderedConfiguration<WhitelistAnalyzer>
configuration,
@Symbol(SymbolConstants.PRODUCTION_MODE) boolean productionMode) {
if (productionMode) { configuration.override("LocalhostOnly", null); }
}
-</plain-text-body><p><plain-text-body>{scrollbar}</plain-text-body></p></div>
+</pre>
+</div></div><p></p></div>
</div>
<div class="clearer"></div>
Modified:
websites/production/tapestry/content/since-and-deprecated-user-macros.html
==============================================================================
--- websites/production/tapestry/content/since-and-deprecated-user-macros.html
(original)
+++ websites/production/tapestry/content/since-and-deprecated-user-macros.html
Sat Feb 3 18:21:36 2018
@@ -67,17 +67,11 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>We have two Confluence user
macros to mark deprecated or newly added features in the documentation wiki:
{<code>since</code>} and {<code>deprecated</code>}. Both aren't optimal (we can
still style them if we see the need) and don't work within tables or similar
structures (or maybe the versions without any parameters do, we haven't
tried).</p>
-
-<h2 id="SinceandDeprecatedUserMacros-Thesincemacro">The since macro</h2>
-
-<p>Examples:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
+ <div id="ConfluenceContent"><p>We have two Confluence user
macros to mark deprecated or newly added features in the documentation wiki:
{<code>since</code>} and {<code>deprecated</code>}. Both aren't optimal (we can
still style them if we see the need) and don't work within tables or similar
structures (or maybe the versions without any parameters do, we haven't
tried).</p><h2 id="SinceandDeprecatedUserMacros-Thesincemacro">The since
macro</h2><p>Examples:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><div class="preformatted panel" style="border-width:
1px;"><div class="preformattedContent panelContent">
<pre>{since}This got added in 5.2{since}</pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
-<div class="error"><span class="error">Unknown macro: {div}</span>
+</p><div class="error"><span class="error">Unknown macro: {div}</span>
<p>This got added in 5.2</p></div></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><div class="preformatted panel" style="border-width:
1px;"><div class="preformattedContent panelContent">
<pre>{since:since=5.2}This got added in 5.2{since} And this was always
there.</pre>
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
@@ -85,25 +79,18 @@
</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div class="error"><span class="error">Unknown macro: {div}</span>
-<p>This got added in 5.2</p></div> And this was always there.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
+<p>This got added in 5.2</p></div>And this was always there.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>{since:since=5.2}{since}</pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
-<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
+</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div class="error"><span class="error">Unknown macro: {div}</span>
-</div></td></tr></tbody></table></div>
-
-
-<h2 id="SinceandDeprecatedUserMacros-Thedeprecatedmacro">The deprecated
macro</h2>
-
-<p>Examples:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
+<p> </p></div></td></tr></tbody></table></div><h2
id="SinceandDeprecatedUserMacros-Thedeprecatedmacro">The deprecated
macro</h2><p>Examples:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><div class="preformatted panel" style="border-width:
1px;"><div class="preformattedContent panelContent">
<pre>{deprecated}This was removed in 5.2{deprecated}</pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
-<div class="error"><span class="error">Unknown macro: {div}</span>
+</p><div class="error"><span class="error">Unknown macro: {div}</span>
<p>This was removed in 5.2</p></div></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><div class="preformatted panel" style="border-width:
1px;"><div class="preformattedContent panelContent">
<pre>{deprecated:since=5.2}This was removed in 5.2{deprecated} And this is
still there.</pre>
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
@@ -111,14 +98,14 @@
</p><div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div class="error"><span class="error">Unknown macro: {div}</span>
-<p>This was removed in 5.2</p></div> And this is still there.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
+<p>This was removed in 5.2</p></div>And this is still there.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><div class="preformatted panel"
style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>{deprecated:since=5.2}{deprecated}</pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
-<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
+</p><div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div class="error"><span class="error">Unknown macro: {div}</span>
-</div></td></tr></tbody></table></div></div>
+<p> </p></div></td></tr></tbody></table></div></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/specific-errors-faq.html
==============================================================================
--- websites/production/tapestry/content/specific-errors-faq.html (original)
+++ websites/production/tapestry/content/specific-errors-faq.html Sat Feb 3
18:21:36 2018
@@ -27,6 +27,16 @@
</title>
<link type="text/css" rel="stylesheet" href="/resources/space.css" />
+ <link href='/resources/highlighter/styles/shCoreCXF.css'
rel='stylesheet' type='text/css' />
+ <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet'
type='text/css' />
+ <script src='/resources/highlighter/scripts/shCore.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushJava.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushXml.js'
type='text/javascript'></script>
+ <script src='/resources/highlighter/scripts/shBrushPlain.js'
type='text/javascript'></script>
+ <script>
+ SyntaxHighlighter.defaults['toolbar'] = false;
+ SyntaxHighlighter.all();
+ </script>
<link href="/styles/style.css" rel="stylesheet" type="text/css"/>
@@ -67,7 +77,50 @@
</div>
<div id="content">
- <div
id="ConfluenceContent"><p><plain-text-body>{scrollbar}</plain-text-body></p><parameter
ac:name="style">float:right</parameter><parameter ac:name="title">Related
Articles</parameter><parameter
ac:name="class">aui-label</parameter><rich-text-body><parameter
ac:name="showLabels">false</parameter><parameter
ac:name="showSpace">false</parameter><parameter ac:name="title">Related
Articles</parameter><parameter ac:name="cql">label = "errors" and space =
currentSpace()</parameter></rich-text-body><h3
id="SpecificErrorsFAQ-WhydoIgettheexception"Noserviceimplementstheinterfaceorg.apache.tapestry5.internal.InternalComponentResources"whentryingtousetheBeanEditFormcomponent?">Why
do I get the exception "No service implements the interface
org.apache.tapestry5.internal.InternalComponentResources" when trying to use
the BeanEditForm component?</h3><p>This can occur when you choose the wrong
package for your data object, the object edited by the BeanEditForm component
. If you place it in the same package as your pages, Tapestry will treat it
like a page, and perform a number of transformation on it, including adding a
new constructor.</p><p>Only component classes should go in the
Tapestry-controlled packages (<code>pages</code>, <code>components</code>,
<code>mixins</code> and <code>base</code> under your application's root
package). By convention, simple data objects should go in a <code>data</code>
package, and Hibernate entities should go in an <code>entities</code>
package.</p><rich-text-body><p>This is likely a bit different in 5.3 than in
5.2 (because 5.3 builds a very different constructor into the component) and
needs to be tested in 5.3 to see what exact exception will
occur.</p></rich-text-body><h3
id="SpecificErrorsFAQ-Igetanerrorabout"Pagedidnotgenerateanymarkupwhenrendered."butIhaveatemplate,whathappened?">I
get an error about "Page did not generate any markup when rendered." but I
have a template, what happened?</h3><p>Th
e most common error here is that the case of the page class did not match the
case of the template. For example, you might name your class ViewOrders, but
name the template vieworders.tml. The correct name for the template is
ViewOrders.tml, matching the case of the Java class name.</p><p>Worse, you may
find that your application works during development (under Windows, which is
case insensitive) but does not work when deployed on a Linux or Unix server,
which may be case sensitive.</p><p>The other cause of this may be that your
template files simply are not being packaged up correctly with the rest of your
application. When in doubt, use the Java <code>jar</code> command to see
exactly whats inside your WAR file. Your page templates should either be in the
root folder of the WAR, or package with the corresponding .class file.</p><h3
id="SpecificErrorsFAQ-MyapplicationfailswiththeerrorPermGen,howdoIfixthis?">My
application fails with the error <strong>PermGen</strong>, how do I fix
this?</h3><p>PermGen refers to the part of the Java memory space devoted to
permanent objects, which are mostly loaded classes. When developing under
Tapestry, many more classes and class loaders are created than normal; this is
part of live class reloading. Because of this, you will want to increase the
amount of memory Java devotes to this.</p><p>The solution is to add
<code>-XX:MaxPermSize=512m</code> to your command line. You may also want to
increase the regular amount of heap space with <code>-Xmx600M</code>. Of
course, you may need to adjust the amount of memory in each category to match
your actual application, but these are good starting values.</p><p>Java Virtual
Machine arguments can be specified inside an Eclipse launch
configuration:</p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image confluence-thumbnail"
src="specific-errors-faq.data/eclipse-permgen.png"></span></p><h3
id="SpecificErrorsFAQ-WhydoIsometimesgetajava.lang.NoSuchMeth
odErrorexceptionafterreloadingmypage?">Why do I sometimes get a
<code>java.lang.NoSuchMethodError</code> exception after reloading my
page?</h3><p>Tapestry's live class reloading is not perfect. <span
style="line-height: 1.4285715;">It tends to use a lot of Java ClassLoaders on
top of the normal ClassLoaders used by the Java Virtual Machine and the servlet
container. When you change non-component classes and interfaces that are
referenced by components and pages, such as to add or change a method, only the
component classes are reloaded. The non-component classes are frozen as they
were when they were </span><em style="line-height: 1.4285715;">first</em><span
style="line-height: 1.4285715;"> loaded.</span></p><p>Unfortunately, this is
one of the areas where you must restart your application entirely in order to
force the new versions of the non-component classes to be loaded into
memory.</p><h3
id="SpecificErrorsFAQ-Whydomylogscontain"java.lang.RuntimeException:Formsrequir
ethattherequestmethodbePOSTandthatthet:formdataqueryparameterhavevalues"?">Why
do my logs contain "java.lang.RuntimeException: Forms require that the request
method be POST and that the t:formdata query parameter have
values"?</h3><p>This is caused by someone (or something) submitting the URL of
your form using an HTTP GET instead of POST. Tapestry forms must always use
POST actions.</p><p>Some known scenarios that cause this error:</p><ul><li>Bots
crawling your site</li><li>Web browser auto-complete functions trying to be
helpful</li><li>Users with browser developer tools manually modifying the form
from a POST to a GET to see what will happen.</li><li>Users getting a
validation error on a form, then re-submitting the form by clicking in the URL
address field and hitting Enter.</li><li>In Tapestry versions before 5.4,
(rarely) the use of property names for form fields where the property name
matches a JavaScript property (see <a class="external-link"
href="https://issues.apac
he.org/jira/browse/TAP5-2066">TAP5-2066</a>).</li></ul><p>In every known
scenario except the last, these errors are harmless and you probably want to
redirect the user to the page the form is on – and avoid logging an
error. That's not too hard to do. Just add code like the following to your
module class (usually AppModule.java):</p><parameter
ac:name="language">java</parameter><parameter ac:name="title">AppModule.java
(partial)</parameter><plain-text-body> /**
+ <div id="ConfluenceContent"><div class="aui-label"
style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="error-page-recipe.html">Error Page Recipe</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="specific-errors-faq.html">Specific Errors
FAQ</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon aui-icon-small
aui-iconfont-page-default" title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a
href="overriding-exception-reporting.html">Overriding Exception Reporting</a>
+
+
+ </div>
+ </li></ul>
+</div>
+
+
+<h3
id="SpecificErrorsFAQ-WhydoIgettheexception"Noserviceimplementstheinterfaceorg.apache.tapestry5.internal.InternalComponentResources"whentryingtousetheBeanEditFormcomponent?">Why
do I get the exception "No service implements the interface
org.apache.tapestry5.internal.InternalComponentResources" when trying to use
the BeanEditForm component?</h3><p>This can occur when you choose the wrong
package for your data object, the object edited by the BeanEditForm component.
If you place it in the same package as your pages, Tapestry will treat it like
a page, and perform a number of transformation on it, including adding a new
constructor.</p><p>Only component classes should go in the Tapestry-controlled
packages (<code>pages</code>, <code>components</code>, <code>mixins</code> and
<code>base</code> under your application's root package). By convention, simple
data objects should go in a <code>data</code> package, and Hibernate entities
should go in an <code>entities</code> pac
kage.</p><div class="confluence-information-macro
confluence-information-macro-note"><span class="aui-icon aui-icon-small
aui-iconfont-warning confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This is likely a bit different in
5.3 than in 5.2 (because 5.3 builds a very different constructor into the
component) and needs to be tested in 5.3 to see what exact exception will
occur.</p></div></div><h3
id="SpecificErrorsFAQ-Igetanerrorabout"Pagedidnotgenerateanymarkupwhenrendered."butIhaveatemplate,whathappened?">I
get an error about "Page did not generate any markup when rendered." but I
have a template, what happened?</h3><p>The most common error here is that the
case of the page class did not match the case of the template. For example, you
might name your class ViewOrders, but name the template vieworders.tml. The
correct name for the template is ViewOrders.tml, matching the case of the Java
class name.</p><p>Worse, you may find tha
t your application works during development (under Windows, which is case
insensitive) but does not work when deployed on a Linux or Unix server, which
may be case sensitive.</p><p>The other cause of this may be that your template
files simply are not being packaged up correctly with the rest of your
application. When in doubt, use the Java <code>jar</code> command to see
exactly whats inside your WAR file. Your page templates should either be in the
root folder of the WAR, or package with the corresponding .class file.</p><h3
id="SpecificErrorsFAQ-MyapplicationfailswiththeerrorPermGen,howdoIfixthis?">My
application fails with the error <strong>PermGen</strong>, how do I fix
this?</h3><p>In Java versions <em>prior to</em> JDK 1.8, PermGen refers to the
part of the Java memory space devoted to permanent objects, which are mostly
loaded classes. When developing under Tapestry, many more classes and class
loaders are created than normal; this is part of live class reloading. Because
of
this, you will want to increase the amount of memory Java devotes to
this.</p><p>In JDK 1.7 and earlier, the solution is to add
<code>-XX:MaxPermSize=512m</code> to your command line. You may also want to
increase the regular amount of heap space with <code>-Xmx600M</code>. Of
course, you may need to adjust the amount of memory in each category to match
your actual application, but these are good starting values.</p><p>Java Virtual
Machine arguments can be specified inside an Eclipse launch
configuration:</p><p> </p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-thumbnail"
src="specific-errors-faq.data/eclipse-permgen.png"></span></p><h3
id="SpecificErrorsFAQ-WhydoIsometimesgetajava.lang.NoSuchMethodErrorexceptionafterreloadingmypage?">Why
do I sometimes get a <code>java.lang.NoSuchMethodError</code> exception after
reloading my page?</h3><p>Tapestry's live class reloading is not
perfect. <span>It tends to use a lot of J
ava ClassLoaders on top of the normal ClassLoaders used by the Java Virtual
Machine and the servlet container. When you change non-component classes and
interfaces that are referenced by components and pages, such as to add or
change a method, only the component classes are reloaded. The non-component
classes are frozen as they were when they were </span><em>first</em><span>
loaded.</span></p><p>Unfortunately, this is one of the areas where you must
restart your application entirely in order to force the new versions of the
non-component classes to be loaded into memory.</p><h3
id="SpecificErrorsFAQ-Whydomylogscontain"java.lang.RuntimeException:FormsrequirethattherequestmethodbePOSTandthatthet:formdataqueryparameterhavevalues"?">Why
do my logs contain "java.lang.RuntimeException: Forms require that the request
method be POST and that the t:formdata query parameter have
values"?</h3><p>This is caused by someone (or something) submitting the URL of
your form using an HTTP GE
T instead of POST. Tapestry forms must always use POST actions.</p><p>Some
known scenarios that cause this error:</p><ul><li>Bots crawling your
site</li><li>Web browser auto-complete functions trying to be
helpful</li><li>Users with browser developer tools manually modifying the form
from a POST to a GET to see what will happen.</li><li>Users getting a
validation error on a form, then re-submitting the form by clicking in the URL
address field and hitting Enter.</li><li>In Tapestry versions before 5.4,
(rarely) the use of property names for form fields where the property name
matches a JavaScript property (see <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5-2066">TAP5-2066</a>).</li></ul><p>In
every known scenario except the last, these errors are harmless and you
probably want to redirect the user to the page the form is on – and avoid
logging an error. That's not too hard to do. Just add code like the following
to your module class (usually AppModu
le.java):</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>AppModule.java (partial)</b></div><div class="codeContent panelContent
pdl">
+<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"> /**
* Redirect the user to the intended page when browsing through
* tapestry forms through browser history or over-eager autocomplete
*/
@@ -92,7 +145,8 @@
response.sendRedirect(uri);
}
};
- }</plain-text-body><p><em>Thanks to <a class="external-link"
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%[email protected]%3E">Lenny
Primak</a> for the above code. A slightly less fragile approach is <a
class="external-link"
href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3ccae26fnjevncyv52kms-kpsewwnaln9pg6lg60xzkxuhs0ut...@mail.gmail.com%3E">described
here</a>. When <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5-1733">TAP5-1733</a> is fixed a
much less fragile solution may be
possible.</em></p><p> <plain-text-body>{scrollbar}</plain-text-body></p></div>
+ }</pre>
+</div></div><p><em>Thanks to <a class="external-link"
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%[email protected]%3E">Lenny
Primak</a> for the above code. A slightly less fragile approach is <a
class="external-link"
href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3ccae26fnjevncyv52kms-kpsewwnaln9pg6lg60xzkxuhs0ut...@mail.gmail.com%3E">described
here</a>. When <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5-1733">TAP5-1733</a> is fixed a
much less fragile solution may be
possible.</em></p><p>  </p><p> </p></div>
</div>
<div class="clearer"></div>