You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bu...@apache.org on 2015/08/08 19:20:05 UTC

svn commit: r961168 [1/5] - in /websites/production/tapestry/content: ./ cache/

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>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="ioc.html">IoC</a>&nbsp;&gt;&nbsp;<a href="autoloading-modules.html">Autoloading Modules</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="ioc.html">IOC</a>&nbsp;&gt;&nbsp;<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>&#160;</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>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="ioc.html">IoC</a>&nbsp;&gt;&nbsp;<a href="case-insensitivity.html">Case Insensitivity</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="ioc.html">IOC</a>&nbsp;&gt;&nbsp;<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 &#8211; 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 &#8211; 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>&#160;</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>&#160;</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>&#160;</p><p>&#160;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;">&lt;settings&gt;
   &lt;proxies&gt;
     &lt;proxy&gt;
@@ -83,7 +81,7 @@
   &lt;localRepository&gt;C:/Users/joeuser/.m2/repository&lt;/localRepository&gt;
 &lt;/settings&gt;
 </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 &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; 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&#160; 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 &gt; Maven Build... &gt;</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>&#160;</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>&#160;</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>&#160;</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 &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; 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&#160; 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 &gt; Maven Build... &gt;</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>&#160;</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>&#160;</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>