Return-Path: X-Original-To: apmail-tapestry-commits-archive@minotaur.apache.org Delivered-To: apmail-tapestry-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D1EBA1006B for ; Wed, 28 May 2014 17:20:51 +0000 (UTC) Received: (qmail 63611 invoked by uid 500); 28 May 2014 17:20:51 -0000 Delivered-To: apmail-tapestry-commits-archive@tapestry.apache.org Received: (qmail 63573 invoked by uid 500); 28 May 2014 17:20:51 -0000 Mailing-List: contact commits-help@tapestry.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tapestry.apache.org Delivered-To: mailing list commits@tapestry.apache.org Received: (qmail 63566 invoked by uid 99); 28 May 2014 17:20:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 May 2014 17:20:51 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 May 2014 17:20:46 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 754F323889B9 for ; Wed, 28 May 2014 17:20:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r910276 [1/2] - in /websites/production/tapestry/content: ./ cache/ Date: Wed, 28 May 2014 17:20:25 -0000 To: commits@tapestry.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140528172026.754F323889B9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Wed May 28 17:20:24 2014 New Revision: 910276 Log: Production update by buildbot for tapestry Modified: websites/production/tapestry/content/application-module-class-cheat-sheet.html websites/production/tapestry/content/cache/main.pageCache websites/production/tapestry/content/community.html websites/production/tapestry/content/component-parameters.html websites/production/tapestry/content/component-reference.html websites/production/tapestry/content/configuration.html websites/production/tapestry/content/cookbook.html websites/production/tapestry/content/download.html websites/production/tapestry/content/exploring-the-project.html websites/production/tapestry/content/forms-and-validation.html websites/production/tapestry/content/frequently-asked-questions.html websites/production/tapestry/content/integrating-with-jpa.html websites/production/tapestry/content/integrating-with-spring-framework.html websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html websites/production/tapestry/content/javascript-rewrite.html websites/production/tapestry/content/news.html websites/production/tapestry/content/page-and-component-classes-faq.html websites/production/tapestry/content/principles.html websites/production/tapestry/content/release-notes-50.html websites/production/tapestry/content/release-notes-51.html websites/production/tapestry/content/release-notes-52.html websites/production/tapestry/content/release-notes-53.html websites/production/tapestry/content/release-notes-535.html websites/production/tapestry/content/session-storage.html websites/production/tapestry/content/templating-and-markup-faq.html websites/production/tapestry/content/test-page-2.html websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html Modified: websites/production/tapestry/content/application-module-class-cheat-sheet.html ============================================================================== --- websites/production/tapestry/content/application-module-class-cheat-sheet.html (original) +++ websites/production/tapestry/content/application-module-class-cheat-sheet.html Wed May 28 17:20:24 2014 @@ -80,11 +80,11 @@ table.ScrollbarTable td.ScrollbarNextIco /*]]>*/
+/*]]>*/
  • Related Articles
  • Naming conventions
    • The bind method
    • Service builder methods
    • Contribute methods Modified: websites/production/tapestry/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/tapestry/content/community.html ============================================================================== --- websites/production/tapestry/content/community.html (original) +++ websites/production/tapestry/content/community.html Wed May 28 17:20:24 2014 @@ -62,11 +62,11 @@

      Tapestry has an active community of users and developers. This is an overview of how to participate, along with a list of some of the great contributions of the community members.

      +/*]]>*/

Component Parameters

+/*]]>*/

  • Related Articles

Configuring Tapestry

This page discusses all the ways in which Tapestry can be configured. Tapestry applications are configured almost entirely using Java, with very little XML at all.

Contents

+/*]]>*/

XML configuration (web.xml)

Tapestry runs on top of the standard Java Servlet API. To the servlet container, such as Tomcat, Tapestry appears as a servlet filter. This gives Tapestry great flexibility in matching URLs without requiring lots of XML configuration.

Although most configuration is done with Java, a small but necessary amount of configuration occurs inside the servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is boilerplate, nearly the same for all applications.

web.xml (partial)
-

Tapestry 4.x

Tapestry 4.1.6 was released on 07 Sep 2008 and is the final release of Tapestry 4. See the release notes for details.

Tapestry 4.1.6

Mirrors

Checksum

Signature

Binary (tar.bz2)

Download

MD5

ASC

Binary (tar.gz)

Download

MD5

ASC

Binary (zip)

Download

MD5

ASC

Source/docs (tar.bz2)

Download

MD5

ASC

Source/docs (tar.gz)

Download

MD5

ASC

Source/docs (zip)

Download

MD5

ASC

Archives

Looking for an older version of Tapestry? Try the archives.

Releases Under Development

Releases under development are less stable; alpha releases are often inc omplete; beta releases occur in the lead up to creation of a stable release.

Tapestry 5.4 is under active development. There have been more than twenty alpha releases so far. See the subdirectories of https://repository.apache.org/content/groups/staging/org/apache/tapestry/.

Nightly snapshot binaries are also available in Apache's Nexus Maven repository under the subdirectories of https://repository.apache.org/content/repositories/snapshots/org/apache/tapestry. Please be aware that nightly snapshots have not been reviewed and may have significant stability problems from time to time.

Download sources

The source download links are listed in the boxes above. In addition, the source code can be checked out anonymously from Git with the clone command:

+

Tapestry 4.x

Tapestry 4.1.6 was released on 07 Sep 2008 and is the final release of Tapestry 4. See the release notes for details.

Tapestry 4.1.6

Mirrors

Checksum

Signature

Binary (tar.bz2)

Download

MD5

ASC

Binary (tar.gz)

Download

MD5

ASC

Binary (zip)

Download

MD5

ASC

Source/docs (tar.bz2)

Download

MD5

ASC

Source/docs (tar.gz)

Download

MD5

ASC

Source/docs (zip)

Download

MD5

ASC

Archives

Looking for an older version of Tapestry? Try the archives.

Releases Under Development

Releases under development are less stable; alpha releases are often inc omplete; beta releases occur in the lead up to creation of a stable release.

Tapestry 5.4 is under active development. There have been a series beta releases so far, and several have been voted for general release. The most recent is 5.4-beta-6.

 

Tapestry 5.4-beta-6

Mirrors

Signature

MD5

Binary (zip)

Download

ASC

d143172da8c05515e31a410b528b599b

Source (zip)

Download

ASC

ef0a789dd58051fd950ec1c87182595c

API Docs (zip)

Download

ASC

178268f37aea6cc4d045a37e7c5c6122

Maven Dependency
+ +

Nightly snapshot binaries are also available in Apache's Nexus Maven repository under the subdirectories of https://repository.apache.org/content/repositories/snapshots/org/apache/tapestry. Please be aware that nightly snapshots have not been reviewed and may have significant stability problems from time to time.

Download sources

The source download links are listed in the boxes above. In addition, the source code can be checked out anonymously from Git with the clone command:

(See Building Tapestry from Source for more info.)

Versions 5.3.2 and earlier are also available via Subversion, at https://svn.apache.org/repos/asf/tapestry/tapestry5/trunk/

Access from behind a firewall

Refer to the documentation of your Git client for more information about access behind a firewall. Generally this requires configuring access through a proxy (by specifying the proxy host and port) or opening up a port on the firewall.

Modified: websites/production/tapestry/content/exploring-the-project.html ============================================================================== --- websites/production/tapestry/content/exploring-the-project.html (original) +++ websites/production/tapestry/content/exploring-the-project.html Wed May 28 17:20:24 2014 @@ -170,7 +170,7 @@ public class Index } } ]]> -

There's a bit going on in this listing, as the Index page attempts to demonstrate a bunch of different ideas in Tapestry. Even so, the class is essentially pretty simple: Tapestry pages and components have no base classes to extend, no interfaces to implement, and are just a very pure POJO (Plain Old Java Object) ... with some special naming conventions and annotations for fields and methods.

You do have to meet the Tapestry framework partway:

  • You need to put the Java class in the expected package, here com.example.tutorial.pages
  • The class must be public
  • You need to make sure there's a public, no-arguments constructor (here, the Java compiler has silently provided one for us)
  • All non-static fields must be private

As we saw when running the application, the page displays the current date and time, as well as a couple of extra links. The currentTime property is where that value comes from ; shortly we'll see how that value is referenced in the template, so it can be extracted from the page and output.

Tapestry always matches a page class to a template; neither is functional without the other. In fact, components within a page are treated the same way (except that components do not always have templates).

You will often hear about the Model-View-Controller pattern (MVC). In Tapestry, the page class acts as both the Model (the source of data) and the controller (the logic that responds to user interaction). The template is the View in MVC. As a model, the page exposes JavaBeans properties that can be referenced in the template.

Let's look at how the component template builds on the Java class to provide the full user interface.

Component Template

Tapestry pages are the combination of a POJO Java class with a Tapestry component template. The template has the same name as the Java class, but has the extension .tml. Since the Java class here is com.example.tutorial.pages.Index, the template file will be located at src/main/resource/com/example/tutorial/pages/Index.tml. Ultimately, both the Java class and the component template file will be stored in the same folder within the deployed WAR file.

Tapestry component templates are well-formed XML documents. This means that you can use any available XML editor. Templates may even have a DOCTYPE or an XML schema to validate the structure of the template page

<style type='text/css'> +

There's a bit going on in this listing, as the Index page attempts to demonstrate a bunch of different ideas in Tapestry. Even so, the class is essentially pretty simple: Tapestry pages and components have no base classes to extend, no interfaces to implement, and are just a very pure POJO (Plain Old Java Object) ... with some special naming conventions and annotations for fields and methods.

You do have to meet the Tapestry framework partway:

  • You need to put the Java class in the expected package, here com.example.tutorial.pages
  • The class must be public
  • You need to make sure there's a public, no-arguments constructor (here, the Java compiler has silently provided one for us)
  • All non-static fields must be private

As we saw when running the application, the page displays the current date and time, as well as a couple of extra links. The currentTime property is where that value comes from ; shortly we'll see how that value is referenced in the template, so it can be extracted from the page and output.

Tapestry always matches a page class to a template; neither is functional without the other. In fact, components within a page are treated the same way (except that components do not always have templates).

You will often hear about the Model-View-Controller pattern (MVC). In Tapestry, the page class acts as both the Model (the source of data) and the controller (the logic that responds to user interaction). The template is the View in MVC. As a model, the page exposes JavaBeans properties that can be referenced in the template.

Let's look at how the component template builds on the Java class to provide the full user interface.

Component Template

Tapestry pages are the combination of a POJO Java class with a Tapestry component template. The template has the same name as the Java class, but has the extension .tml. Since the Java class here is com.example.tutorial.pages.Index, the template file will be located at src/main/resource/com/example/tutorial/pages/Index.tml. Ultimately, both the Java class and the component template file will be stored in the same folder within the deployed WAR file.

Tapestry component templates are well-formed XML documents. This means that you can use any available XML editor. Templates may even have a DOCTYPE or an XML schema to validate the structure of the template page

<style type='text/css'> .FootnoteMarker, .FootnoteNum a { background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right; padding: 1px 2px 0px 1px; @@ -242,7 +242,7 @@ var footnoteMarkerHighlight = function(i 1 -

.

 

For the most part, a Tapestry component template looks like ordinary XHTML:

src/main/resources/com/example/tutorial/pages/Index.tml
+

.

 

For the most part, a Tapestry component template looks like ordinary XHTML:

src/main/resources/com/example/tutorial/pages/Index.tml
-

Here greeting is not a property of the page; its actually a localized message key. Every Tapestry page and component is allowed to have its own message catalog

+

Here greeting is not a property of the page; its actually a localized message key. Every Tapestry page and component is allowed to have its own message catalog

5 -

.

 

src/main/resources/com/example/tutorial/pages/Index.properties
+

.

 

src/main/resources/com/example/tutorial/pages/Index.properties
-

Message catalogs are useful for storing repeating strings outside of code or templates, though their primary purpose is related to localization of the application (which will be described in more detail in a later chapter). Messages that may be used across multiple pages can be stored in the application's global message catalog, src/main/webapp/WEB-INF/app.properties, instead.

This "message:" prefix is not some special case; there are actually quite a few of these binding prefixes built into Tapestry, each having a specific purpose. In fact, omitting a binding prefix in an expansion is exactly the same as using the "prop:" binding prefix, which means to treat the binding as a property expression.

Expansions are useful for extracting a piece of information and rendering it out to the client as a string, but the real heavy lifting of Tapestry occurs inside components.

Components Inside Templa tes

Components can be represented inside a component template in two ways

+

Message catalogs are useful for storing repeating strings outside of code or templates, though their primary purpose is related to localization of the application (which will be described in more detail in a later chapter). Messages that may be used across multiple pages can be stored in the application's global message catalog, src/main/webapp/WEB-INF/app.properties, instead.

This "message:" prefix is not some special case; there are actually quite a few of these binding prefixes built into Tapestry, each having a specific purpose. In fact, omitting a binding prefix in an expansion is exactly the same as using the "prop:" binding prefix, which means to treat the binding as a property expression.

Expansions are useful for extracting a piece of information and rendering it out to the client as a string, but the real heavy lifting of Tapestry occurs inside components.

Components Inside Templa tes

Components can be represented inside a component template in two ways

6 -

:

 

  • As an ordinary element, but with a t:type attribute to define the type of component.
  • As an element in the Tapestry namespace, in which case the element name determines the type.

Here we've used an <html> element to represent the application's Layout component.

+

:

 

  • As an ordinary element, but with a t:type attribute to define the type of component.
  • As an element in the Tapestry namespace, in which case the element name determines the type.

Here we've used an <html> element to represent the application's Layout component.