Author: buildbot
Date: Sat Aug 8 17:20:04 2015
New Revision: 961168
Log:
Production update by buildbot for tapestry
Modified:
websites/production/tapestry/content/autoloading-modules.html
websites/production/tapestry/content/cache/main.pageCache
websites/production/tapestry/content/case-insensitivity.html
websites/production/tapestry/content/chainbuilder-service.html
websites/production/tapestry/content/creating-the-skeleton-application.html
websites/production/tapestry/content/defining-tapestry-ioc-services.html
websites/production/tapestry/content/dependencies-tools-and-plugins.html
websites/production/tapestry/content/exploring-the-project.html
websites/production/tapestry/content/getting-started.html
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
websites/production/tapestry/content/injection-in-detail.html
websites/production/tapestry/content/object-providers.html
websites/production/tapestry/content/ordering-by-constraints.html
websites/production/tapestry/content/pipelinebuilder-service.html
websites/production/tapestry/content/service-advisors.html
websites/production/tapestry/content/service-implementation-reloading.html
websites/production/tapestry/content/service-serialization.html
websites/production/tapestry/content/shadowbuilder-service.html
websites/production/tapestry/content/strategybuilder-service.html
websites/production/tapestry/content/symbols.html
websites/production/tapestry/content/tapestry-ioc-configuration.html
websites/production/tapestry/content/tapestry-ioc-decorators.html
websites/production/tapestry/content/tapestry-ioc-modules.html
websites/production/tapestry/content/tapestry-ioc-overview.html
websites/production/tapestry/content/type-coercion.html
websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html
websites/production/tapestry/content/using-tapestry-with-hibernate.html
Modified: websites/production/tapestry/content/autoloading-modules.html
==============================================================================
--- websites/production/tapestry/content/autoloading-modules.html (original)
+++ websites/production/tapestry/content/autoloading-modules.html Sat Aug 8
17:20:04 2015
@@ -62,12 +62,12 @@
<div class="clearer"></div>
<div id="breadcrumbs">
- <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="ioc.html">IoC</a> > <a
href="autoloading-modules.html">Autoloading Modules</a>
+ <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="ioc.html">IOC</a> > <a
href="autoloading-modules.html">Autoloading Modules</a>
<a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=23338476">edit</a>
</div>
<div id="content">
-<div id="ConfluenceContent"><h1
id="AutoloadingModules-AutoloadingModules">Autoloading Modules</h1><p>An
important part of Tapestry IoC is the autoloading of modules; this allows new
features to be added to an application just by "dropping in" a JAR that
contains a module: the services in the module are automatically integrated into
the overall service registry, along with any configuration or other supporting
code and resources.</p><p>An example of this is the <a shape="rect"
href="uploading-files.html">tapestry-upload</a> library, which introduces an
Upload component, along with supporting services related to handling file
upload requests.</p><p>The core Tapestry IoC module is automatically included.
When using the Tapestry web framework, the core Tapestry module is also
included, as is an optional per-application module, plus any autoloaded
modules.</p><p>Module autoloading isn't 100% free ... you must tell Tapestry
IoC where the modules to load are located, which can be done via
a Manifest file entry, or via an annotation.</p><h1
id="AutoloadingModules-JARManifestEntries">JAR Manifest Entries</h1><p>When
setting up the registry, Tapestry can automatically locate modules packaged
into JARs. It does this by searching for a particular global manifest
entry.</p><p>The manifest entry name is "Tapestry-Module-Classes". The value is
a comma-separated list of fully qualified class names of module classes (this
allows a single JAR to contain multiple, related modules). Whitespace is
ignored.</p><p>Example:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<div id="ConfluenceContent"><p><strong>Autoloading of modules</strong> allows
new features to be added to an application just by "dropping in" a JAR that
contains a module: the services in the module are automatically integrated into
the overall service registry, along with any configuration or other supporting
code and resources.</p><p>An example of this is the <a shape="rect"
href="uploading-files.html">tapestry-upload</a> library, which introduces an
Upload component, along with supporting services related to handling file
upload requests.</p><p>The core Tapestry IoC module is automatically included.
When using the Tapestry web framework, the core Tapestry module is also
included, as is an optional per-application module, plus any autoloaded
modules.</p><p>Module autoloading isn't 100% free ... you must tell Tapestry
IoC where the modules to load are located, which can be done via a Manifest
file entry, or via an annotation.</p><h1
id="AutoloadingModules-JARManifestEntries">JAR M
anifest Entries</h1><p>When setting up the registry, Tapestry can
automatically locate modules packaged into JARs. It does this by searching for
a particular global manifest entry.</p><p>The manifest entry name is
"Tapestry-Module-Classes". The value is a comma-separated list of fully
qualified class names of module classes (this allows a single JAR to contain
multiple, related modules). Whitespace is ignored.</p><p>Example:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre class="brush: text; gutter: false; theme: Default"
style="font-size:12px;">Manifest-Version: 1.0
Tapestry-Module-Classes: org.example.mylib.LibModule,
org.example.mylib.internal.InternalModule</pre>
</div></div><p>If you are using Maven 2, then getting these entries into your
JAR's manifest is as simple as some configuration in your pom.xml:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
@@ -97,7 +97,7 @@ Tapestry-Module-Classes: org.example.myl
public final class InternalModule
{
. . .</pre>
-</div></div><p>In general, your should only need to identify a single module
in the JAR manifest, and make use of @SubModule to pull in any additional
module classes.</p></div>
+</div></div><p>In general, your should only need to identify a single module
in the JAR manifest, and make use of @SubModule to pull in any additional
module classes.</p><p> </p><p></p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/tapestry/content/case-insensitivity.html
==============================================================================
--- websites/production/tapestry/content/case-insensitivity.html (original)
+++ websites/production/tapestry/content/case-insensitivity.html Sat Aug 8
17:20:04 2015
@@ -27,16 +27,6 @@
</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 type="text/javascript">
- SyntaxHighlighter.defaults['toolbar'] = false;
- SyntaxHighlighter.all();
- </script>
<link href="/styles/style.css" rel="stylesheet" type="text/css"/>
@@ -62,27 +52,12 @@
<div class="clearer"></div>
<div id="breadcrumbs">
- <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="ioc.html">IoC</a> > <a href="case-insensitivity.html">Case
Insensitivity</a>
+ <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="ioc.html">IOC</a> > <a href="case-insensitivity.html">Case
Insensitivity</a>
<a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=23338477">edit</a>
</div>
<div id="content">
-<div id="ConfluenceContent">
-
-<h1 id="CaseInsensitivity-CaseInsensitivity">Case Insensitivity</h1>
-
-<p>Ever get frustrated because you typed the right thing with the wrong case
and your system blew up? We do.</p>
-
-<p>Tapestry IoC attempts to be case insensitive for all the main
constructs:</p>
-
-<ul><li>Service ids.</li><li>Object provider prefixes.</li><li>Message
keys.<br clear="none">
-Thus, <code>getService("Baz", Baz.class)</code> is preferred, but
<code>getService("BAZ", Baz.class)</code> (or any variation thereof) will work
just exactly as well. This also extends to other naming conventions, such as
<code>contributeFoo</code> methods. It also applies to values inside
annotations.</li></ul>
-
-
-<p>Just case is ignored – other punctuation, as well as whitespace, must
exactly match.</p>
-
-<p>Under the covers, this is supported by the <a shape="rect"
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/CaseInsensitiveMap.html">CaseInsensitiveMap</a>
class.</p>
-</div>
+<div id="ConfluenceContent"><p>Ever get frustrated because you typed the right
thing with the wrong case and your system blew up? We do.</p><p>Tapestry IoC
attempts to be case insensitive for all the main constructs:</p><ul><li>Service
ids.</li><li>Object provider prefixes.</li><li>Message keys.<br clear="none">
Thus, <code>getService("Baz", Baz.class)</code> is preferred, but
<code>getService("BAZ", Baz.class)</code> (or any variation thereof) will work
just exactly as well. This also extends to other naming conventions, such as
<code>contributeFoo</code> methods. It also applies to values inside
annotations.</li></ul><p>Just case is ignored – other punctuation, as
well as whitespace, must exactly match.</p><p>Under the covers, this is
supported by the <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/CaseInsensitiveMap.html">CaseInsensitiveMap</a>
class.</p><p> </p><p></p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/chainbuilder-service.html
==============================================================================
--- websites/production/tapestry/content/chainbuilder-service.html (original)
+++ websites/production/tapestry/content/chainbuilder-service.html Sat Aug 8
17:20:04 2015
@@ -31,8 +31,6 @@
<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 type="text/javascript">
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
@@ -136,7 +134,7 @@
{
return chainBuilder.build(MyChainService.class, commands);
}</pre>
-</div></div><p>Here, the behavior of the MyChainService is defined by its
configuration: an ordered list of MyChainService commands that are contributed
by one or more modules.</p><p>Internally, the ChainBuilder creates a new class
that implements the service interface. The list of commands is converted into
an array, which is used inside the service implementation (for maximum
efficiency). Therefore, changing the list after creating the chain instance
will not affect the chain instance's behavior.</p><p>ChainBuilder will reuse
the fabricated class for any number of chains of the same command
interface.</p></div>
+</div></div><p>Here, the behavior of the MyChainService is defined by its
configuration: an ordered list of MyChainService commands that are contributed
by one or more modules.</p><p>Internally, the ChainBuilder creates a new class
that implements the service interface. The list of commands is converted into
an array, which is used inside the service implementation (for maximum
efficiency). Therefore, changing the list after creating the chain instance
will not affect the chain instance's behavior.</p><p>ChainBuilder will reuse
the fabricated class for any number of chains of the same command
interface.</p><p> </p><p></p></div>
</div>
<div class="clearer"></div>
Modified:
websites/production/tapestry/content/creating-the-skeleton-application.html
==============================================================================
--- websites/production/tapestry/content/creating-the-skeleton-application.html
(original)
+++ websites/production/tapestry/content/creating-the-skeleton-application.html
Sat Aug 8 17:20:04 2015
@@ -30,9 +30,7 @@
<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 type="text/javascript">
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
@@ -67,7 +65,7 @@
</div>
<div id="content">
-<div id="ConfluenceContent"><p> </p><p> Before we can get down to
the fun, we have to create an empty application. Tapestry uses a feature of
Maven to do this: <strong>archetypes</strong> (a too-clever way of saying
"project templates").</p><p>For the tutorial, we're using a fresh install of
Eclipse and an empty workspace at <code>/users/joeuser/workspace</code>. You
may need to adjust a few things for other operating systems or local
paths.</p><h2
id="CreatingTheSkeletonApplication-UsingtheQuickstartArchetype">Using the
Quickstart Archetype</h2><p>From Eclipse, we'll use a Maven archetype to create
a skeleton Tapestry project.</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Maven Behind a
Firewall</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>If you are behind a
firewall/proxy, before performing any Maven downloads,
you may need to configure your proxy settings in your Maven settings.xml file
(typically in the .m2 subdirectory of your home directory, ~/.m2 or
C:\users\joeuser\.m2). Here is an example:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>settings.xml</b></div><div
class="codeContent panelContent pdl">
+<div id="ConfluenceContent"><p>First, let's create an empty application.
Tapestry provides a Maven <strong>archetype</strong> (a project template) to
make this easy.</p><p>For the tutorial, we're using a fresh install of Eclipse
and an empty workspace at <code>/users/joeuser/workspace</code>. You may need
to adjust a few things for other operating systems or local paths.</p><h2
id="CreatingTheSkeletonApplication-UsingtheQuickstartArchetype">Using the
Quickstart Archetype</h2><p>From Eclipse, we'll use a Maven archetype to create
a skeleton Tapestry project.</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Maven Behind a
Firewall</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>If you are behind a
firewall/proxy, before performing any Maven downloads, you may need to
configure your proxy settings in your Maven settings.xml file (ty
pically in the .m2 subdirectory of your home directory, ~/.m2 or
C:\users\joeuser\.m2). Here is an example:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>settings.xml</b></div><div
class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><settings>
<proxies>
<proxy>
@@ -83,7 +81,7 @@
<localRepository>C:/Users/joeuser/.m2/repository</localRepository>
</settings>
</pre>
-</div></div><p>Of course, adjust the <code>localRepository</code> element to
match the correct path for your computer.</p></div></div><p>Okay, let's get
started creating our new project.</p><p>In Eclipse, go to <strong>File > New
></strong> <strong>Project... > Maven > Maven
Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/select-a-wizard.png"></span></p><p>Then
click <strong>Next</strong>, <strong>Next</strong> (again), and then on the
<strong>Select an Archetype</strong> page click the <strong>Configure</strong>
button on the Catalog line. The <strong>Archetype</strong> preferences dialog
should appear. Click the <strong>Add Remote Catalog...</strong> button, as
shown below:</p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/add-archetype-catalog.png"></span></p><p>As
shown above, en
ter <span class="nolink"><span
class="nolink">"http://tapestry.apache.org"</span></span> in the Catalog File
field, and "Apache Tapestry" in the Description field.</p><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>If you want to try an unreleased
(alpha or beta) version of Tapestry, use <span class="nolink">the
https://repository.apache.org/content/repositories/staging</span> archetype
catalog file instead.</p></div></div><p>Click <strong>OK</strong>, then<strong>
OK</strong> again.</p><p>On the Select an Archetype dialog (shown below),
select the newly-added Apache Tapestry catalog, then select the "quickstart"
artifact from the list and click <strong>Next</strong>.</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-application.data/se
lect-archetype.png"></span></p><p><em><strong>Note:</strong> Screenshots in
this tutorial may show different (either newer or older) versions of Tapestry
than you may see.</em></p><p>Fill in the Group Id, Artifact Id, Version and
Package  as follows:</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-application.data/specify-archetype-parameters.png"></span></p><p>then
click Finish.</p><div class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>The first time you use Maven,
project creation may take a while as Maven downloads a large number of JAR
dependencies for Maven, Jetty and Tapestry. These downloaded files are cached
locally and will not need to be downloaded again, but you do have to be patient
on first use.</p></div></div><p>After Mave
n finishes, you'll see a new directory, <code>tutorial in your Package
Explorer view in Eclipse.</code></p><h2
id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the
Application using Jetty</h2><p>One of the first things you can do is use Maven
to run Jetty directly.</p><p>Right-click on the tutorial project in your
Package Explorer view and select <strong>Run As > Maven Build...
></strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a
"Run Configuration" named "tutorial1" that we'll use throughout this tutorial
to start the app:</p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/run-configuration.png"></span></p><p>Tapestry
runs best with a couple of additional options; click the "JRE" tab and enter
the following VM
Arguments:</p><pre></pre><p>-XX:MaxPermSize=256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p><p><code><em>(If
you're usi
ng JDK 1.8 then you should omit the MaxPermSize
argument.)</em></code></p><p><code>Here's how it looks:<br
clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/run-configuration-jre.png"></span></p><p>Finally,
click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying
number of downloads, but before you know it, the Jetty servlet container is up
and running.</p><p>Once Jetty is initialized (which only takes a few seconds
after the first time), you'll see the following in your console:</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-application.data/console-startup.png"></span></p><p><em>Note
the red square icon above. Later on you'll use that icon to stop Jetty before
restarting the app.</em></p><p>You can now open a web browser to <a
shape="rect" class="external-link" href="http://localhost:80
80/tutorial1/" >http://localhost:8080/tutorial1/</a> to see the running
application:</p><p> </p><p><span class="confluence-embedded-file-wrapper
image-left-wrapper"><img class="confluence-embedded-image
confluence-content-image-border image-left"
src="creating-the-skeleton-application.data/startpage.png"></span></p><p> </p><div
style="clear: both"></div><p style="text-align: left;">The date and time in
the middle of the page shows that this is a live application.</p><p>This is a
complete little web app; it doesn't do much, but it demonstrate how to create a
number of pages sharing a common layout, and demonstrates some simple
navigation and link handling. You can see that it has several different pages
that share a common layout. (<span style="line-height:
1.4285715;"><em>Layout</em> is a loose term meaning common look and feel and
navigation across many or all of the pages of an application. Often an
application will include a Layout component to provide that commonness.)
</span></p><p><span style="line-height: 1.4285715;">Next: <a shape="rect"
href="exploring-the-project.html">Exploring the Project</a><br
clear="none"></span></p><p> </p></div>
+</div></div><p>Of course, adjust the <code>localRepository</code> element to
match the correct path for your computer.</p></div></div><p>Okay, let's get
started creating our new project.</p><p>In Eclipse, go to <strong>File > New
></strong> <strong>Project... > Maven > Maven
Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/select-a-wizard.png"></span></p><p>Then
click <strong>Next</strong>, <strong>Next</strong> (again), and then on the
<strong>Select an Archetype</strong> page click the <strong>Configure</strong>
button on the Catalog line. The <strong>Archetype</strong> preferences dialog
should appear. Click the <strong>Add Remote Catalog...</strong> button, as
shown below:</p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/add-archetype-catalog.png"></span></p><p>As
shown above, en
ter <span class="nolink"><span
class="nolink">"http://tapestry.apache.org"</span></span> in the Catalog File
field, and "Apache Tapestry" in the Description field.</p><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>If you want to try an unreleased
(alpha or beta) version of Tapestry, use <span class="nolink">the
<strong>https://repository.apache.org/content/repositories/staging</strong></span>
archetype catalog file instead.</p></div></div><p>Click <strong>OK</strong>,
then<strong> OK</strong> again.</p><p>On the Select an Archetype dialog (shown
below), select the newly-added Apache Tapestry catalog, then select the
"quickstart" artifact from the list and click
<strong>Next</strong>.</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-ap
plication.data/select-archetype.png"></span></p><p><em><strong>Note:</strong>
Screenshots in this tutorial may show different (either newer or older)
versions of Tapestry than you may see.</em></p><p>Fill in the Group Id,
Artifact Id, Version and Package  as follows:</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-application.data/specify-archetype-parameters.png"></span></p><p>then
click Finish.</p><div class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>The first time you use Maven,
project creation may take a while as Maven downloads a large number of JAR
dependencies for Maven, Jetty and Tapestry. These downloaded files are cached
locally and will not need to be downloaded again, but you do have to be patient
on first use.</p></div></
div><p>After Maven finishes, you'll see a new directory, <code>tutorial in
your Package Explorer view in Eclipse.</code></p><h2
id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the
Application using Jetty</h2><p>One of the first things you can do is use Maven
to run Jetty directly.</p><p>Right-click on the tutorial project in your
Package Explorer view and select <strong>Run As > Maven Build...
></strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a
"Run Configuration" named "tutorial1" that we'll use throughout this tutorial
to start the app:</p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/run-configuration.png"></span></p><p>Tapestry
runs best with a couple of additional options; click the "JRE" tab and enter
the following VM
Arguments:</p><pre></pre><p>-XX:MaxPermSize=256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p><p><code><
em>(If you're using JDK 1.8 then you should omit the MaxPermSize
argument.)</em></code></p><p><code>Here's how it looks:<br
clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img
class="confluence-embedded-image"
src="creating-the-skeleton-application.data/run-configuration-jre.png"></span></p><p>Finally,
click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying
number of downloads, but before you know it, the Jetty servlet container is up
and running.</p><p>Once Jetty is initialized (which only takes a few seconds
after the first time), you'll see the following in your console:</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image"
src="creating-the-skeleton-application.data/console-startup.png"></span></p><p><em>Note
the red square icon above. Later on you'll use that icon to stop Jetty before
restarting the app.</em></p><p>You can now open a web browser to <a
shape="rect" class="external-link" href="ht
tp://localhost:8080/tutorial1/" >http://localhost:8080/tutorial1/</a> to see
the running application:</p><p> </p><p><span
class="confluence-embedded-file-wrapper image-left-wrapper"><img
class="confluence-embedded-image confluence-content-image-border image-left"
src="creating-the-skeleton-application.data/startpage.png"></span></p><p> </p><div
style="clear: both"></div><p style="text-align: left;">The date and time in
the middle of the page shows that this is a live application.</p><p>This is a
complete little web app; it doesn't do much, but it demonstrate how to create a
number of pages sharing a common layout, and demonstrates some simple
navigation and link handling. You can see that it has several different pages
that share a common layout. (<span style="line-height:
1.4285715;"><em>Layout</em> is a loose term meaning common look and feel and
navigation across many or all of the pages of an application. Often an
application will include a Layout component to provide
that commonness.)</span></p><p><span style="line-height: 1.4285715;">Next: <a
shape="rect" href="exploring-the-project.html">Exploring the
Project</a></span></p><p><span style="line-height: 1.4285715;"><br
clear="none"></span></p></div>
</div>
<div class="clearer"></div>