Apache Tapestry
![]() |
|
Developer(s) | Apache Software Foundation |
---|---|
Stable release | 5.3.3 / April 23, 2012 |
Development status | Active |
Written in | Java |
Operating system | Cross-platform |
Type | Web Framework |
License | Apache License 2.0 |
Website | tapestry.apache.org |
Apache Tapestry is an open-source component-oriented Java web application framework to implement applications in accordance with the model–view–controller (MVC) architectural pattern. Tapestry was created by Howard Lewis Ship independently, and was adopted by the Apache Software Foundation as a top-level project. Tapestry emphasizes simplicity, ease of use, and developer productivity. Tapestry adheres to the Convention over Configuration paradigm, eliminating almost all XML configuration. Tapestry uses a modular approach to web development, by having strong binding between user interface components (objects) on the web page and their corresponding Java classes. This component-based architecture borrows many ideas from WebObjects.[1]
Component templates in Tapestry are XHTML files, with an additional XML namespace for Tapestry-specific elements. Component templates act as the view; a corresponding Java class acts as the controller and model. Tapestry includes a large number of built-in components, but also encourages developers to create their own, application-specific components.
Page and component class are Plain Old Java Objects; annotations and naming conventions are used to tie together the framework with user-created components (earlier versions of the framework used XML files to tie things together).
Tapestry embraces a technique called "live class reloading"; the running application picks up changes to classes and templates immediately, without a restart. This greatly enhances developer productivity.
The tight integration between the template and Java class, and the use of annotations and naming conventions, keeps Tapestry applications concise and readable.
Tapestry bundles the Prototype and script.aculo.us Javascript frameworks, along with a Tapestry-specific library, so as to support Ajax operations as first-class citizens.
Tapestry 5.1 improves performance and reduces memory consumption and adds other performance related features such as automatic GZIP compression and JavaScript library aggregation, but is still backwards compatible to Tapestry 5.
Tapestry 5.2 integrates the JSR 303 (Bean Validation) specification into its validation mechanism.[2] It also extends live class reloading to service implementations (Tapestry 5.0 and 5.1 would only reload page and component classes) and removes the need for page pooling.
Tapestry 5.3 boosts performance further, reduces memory utilization, adds new components, reworks the internal bytecode manipulation, supports the HTML5 doctype correctly, as well as many other improvements large and small.
Contents |
Related projects
- Tynamo Framework aka Trails 2 is based on Tapestry 5.
See also
- Model–view–controller
- Jakarta Project
- Java EE
- Comparison of web application frameworks
- Facelets
- Java: View Technologies and Frameworks
References
- Kolesnikov, Alexander (January 15, 2008), Tapestry 5: Building Web Applications: A step-by-step guide to Java Web development with the developer-friendly Apache Tapestry framework, Packt Publishing, pp. 280, ISBN 1-84719-307-2, http://www.packtpub.com/tapestry-5/book
- Iok Tong, Ka (January 1, 2007), Enjoying Web Development with Tapestry (3rd ed.), pp. 497, ASIN B00262M3HS
Notes
- ^ Tapestry in Action - Preface by Howard Lewis Ship
- ^ "Tapestry and JSR-303 Bean Validation API". 2010-01-04. Archived from the original on 16 April 2010. http://blog.tapestry5.de/index.php/2010/01/04/tapestry-and-jsr-303-bean-validation-api/. Retrieved 2010-03-13.
External links
- Tapestry Home Page
- Howard Lewis Ship
- Enjoying Web Development with Tapestry book
- Tynamo Project
- Getting Started Examples
|
|