Author: hlship
Date: Thu Apr 2 17:31:24 2009
New Revision: 761354
URL: http://svn.apache.org/viewvc?rev=761354&view=rev
Log:
TAP5-615: Tapestry template parse should ignore the case of any
Tapestry-specific elements (such as t:body, t:content, etc.)
Modified:
tapestry/tapestry5/trunk/src/site/apt/index.apt
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StaxTemplateParser.java
Modified: tapestry/tapestry5/trunk/src/site/apt/index.apt
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/index.apt?rev=761354&r1=761353&r2=761354&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/src/site/apt/index.apt (original)
+++ tapestry/tapestry5/trunk/src/site/apt/index.apt Thu Apr 2 17:31:24 2009
@@ -38,7 +38,7 @@
* Tapestry now automatically combines multiple JavaScript libraries into a
single request.
- * An Ajax event requst may now return a
+ * An Ajax event request may now return a
{{{apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html}MultiZoneUpdate}}
instance
to update multiple zones in the client web browser.
@@ -53,7 +53,7 @@
* Tapestry Services can now be injected into Spring Beans, when using the
Tapestry/Spring integration library.
- * Tapestry now {{{guide/compress.html}compresses}} responses for clients
that support compression.
+ * Tapestry now {{{guide/compress.html}compresses}} responses for clients
that support GZIP compression.
Context and classpath assets
are now handled uniformly: versioned URLs, far-future expiration headers,
and GZIP compression where applicable.
@@ -71,52 +71,16 @@
Roadmap
- Now that that 5.0 release is <finally> out and available, work is starting
on a 5.1 release.
+ Now that that 5.0 release is <finally> out and available, work is rounding
out on the 5.1 release.
The goal is to produce such releases on a regular schedule, every 4 - 6
months.
- High priorities for 5.1 include Spring Web Flow integration, and support for
developing Tapestry applications as Portlets.
+ High priorities for 5.2 include Spring Web Flow integration, and support for
developing Tapestry applications as Portlets.
Third Party Libraries, Tutorials and Resources
- Tapestry 5 has inspired a number of people to create third party libraries,
providing a mix of new components
- and new and improved integrations.
-
-*--+--+--+
-| <<Name>> | <<Author>> | <<Description>>
-*--+--+--+
-| {{{http://code.google.com/p/tapestry5-appfuse/}AppFuse for Tapestry 5}} |
Serge Eby | Application template, with basic authentication and Hibernate and
Spring integration pre-configured |
-*--+--+--+
-| {{{http://www.arsmachina.com.br}Ars Machina}} | Thiago H. de Paula
Figueiredo | Tapestry/Hibernate extensions for Generic DAOs, standard CRUD
interfaces, and user access logging and tracking |
-*--+--+--+
-| {{{http://www.chenillekit.org/}Chenille Kit}} | Massimo Lusetti |
Collection of modules, services, utilities and components (many of which
require only tapestry-ioc) \
-*--+--+--+
-| {{{http://equanda.org/equanda-tapestry5/}equanda-tapestry5}} | Joachim Van
der Auwera | Components useful for building enterprise applications.
Includes Accordion, Tabs, Formtraversal. Amongst other things, these focus on
easy input of data without the need for a mouse.
-*--+--+--+
-| {{{http://code.google.com/p/gc-tapestry-components/}Godcode Components}} |
Chris Lewis | A mixed collection of components providing simple but
time-saving functionality, as well as more exotic ones; built on top of the
prototype and script.aculo.us javascript libraries. |
-*--+--+--+
-| <<{{{http://jumpstart.doublenegative.com.au/}JumpStart}}>> | Geoff
Callender | A "living tutorial" in the form of a base Tapestry application
ready to be expanded and customized. |
-*--+--+--+
-| {{{http://interldap.org}InterLDAP}} | Linagora / Francois Armand | LDAP
content management system for non tech users. |
-*--+--+--+
-| {{{http://code.google.com/p/loom-t5/}loom-t5}} | Chris Scheid | Eclipse
plugin. |
-*--+--+--+
-| {{{http://code.google.com/p/shams/}Shams Examples, Components}} | Mohammad
H. Shamsi | A set of Tapestry 5 Examples, Tutorials, Components, and
Documents for beginners. |
-*--+--+--+
-| {{{http://www.infoq.com/articles/tapestry5-intro}Tapestry for Nonbelievers}}
| Renat Zubairov & Igor Drobiazko | Simple introduction to using Tapestry
and creating components |
-*--+--+--+
-| {{{http://code.google.com/p/tapestry5-components/}T5Components}} | Sven
Homburg | Ajax-enabled components based on Prototype and Scriptaculous. |
-*--+--+--+
-| {{{http://tacos.sourceforge.net/tacos5/tacos-seam/}tacos-seam}} | Igor
Drobiazko | Intregrates with {{{http://www.jboss.com/products/seam}JBoss
Seam}}. |
-*--+--+--+
-| {{{http://www.localhost.nu/java/tapestry5-acegi/}tapestry5-acegi}} | Robin
Helgelin | Integration with the Acegi path-based security framework. |
-*--+--+--+
-|
{{{http://tapestry.formos.com/nightly/tapestry-templating/}tapestry-templating}}
| Howard M. Lewis Ship | Use Tapestry pages off-line to generate content
(such as email) |
-*--+--+--+
-| {{{http://code.google.com/p/tapestry5-treegrid/}tapestry5-treegrid}} |
Gabriel Landais | Combination tree navigation and data grid, based on sstree. |
-*--+--+--+
-
-
+ A number of Third Party Libraries, Tutorials and Resources are listed on
+ the {{{http://tapestry.apache.org/}Tapestry Home Page}}.
Adaptive API
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StaxTemplateParser.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StaxTemplateParser.java?rev=761354&r1=761353&r2=761354&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StaxTemplateParser.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StaxTemplateParser.java
Thu Apr 2 17:31:24 2009
@@ -214,7 +214,7 @@
if (TAPESTRY_SCHEMA_5_1_0.equals(uri))
{
- if (name.equals("extend"))
+ if (name.equalsIgnoreCase("extend"))
{
extend(state);
return;
@@ -223,7 +223,7 @@
if (TAPESTRY_SCHEMA_URIS.contains(uri))
{
- if (name.equals("container"))
+ if (name.equalsIgnoreCase("container"))
{
container(state);
return;
@@ -244,7 +244,8 @@
{
case START_ELEMENT:
- if (reader.getNamespaceURI().equals(TAPESTRY_SCHEMA_5_1_0)
&& reader.getLocalName().equals(
+ if (reader.getNamespaceURI().equals(
+ TAPESTRY_SCHEMA_5_1_0) &&
reader.getLocalName().equalsIgnoreCase(
"replace"))
{
replace(state);
@@ -391,28 +392,28 @@
if (TAPESTRY_SCHEMA_5_1_0.equals(uri))
{
- if (name.equals("remove"))
+ if (name.equalsIgnoreCase("remove"))
{
removeContent();
return false;
}
- if (name.equals("content"))
+ if (name.equalsIgnoreCase("content"))
{
limitContent(state);
return false;
}
- if (name.equals("extension-point"))
+ if (name.equalsIgnoreCase("extension-point"))
{
extensionPoint(state);
return false;
}
- if (name.equals("replace"))
+ if (name.equalsIgnoreCase("replace"))
{
throw new RuntimeException("The <replace> element may only
appear directly within an extend element.");
}
@@ -424,24 +425,24 @@
if (TAPESTRY_SCHEMA_URIS.contains(uri))
{
- if (name.equals("body"))
+ if (name.equalsIgnoreCase("body"))
{
body();
return false;
}
- if (name.equals("container"))
+ if (name.equalsIgnoreCase("container"))
{
mustBeRoot(name);
}
- if (name.equals("block"))
+ if (name.equalsIgnoreCase("block"))
{
block(state);
return false;
}
- if (name.equals("parameter"))
+ if (name.equalsIgnoreCase("parameter"))
{
classicParameter();
@@ -903,7 +904,7 @@
if (isXMLSpaceAttribute(qName)) continue;
- if (qName.getLocalPart().equals(attributeName))
+ if (qName.getLocalPart().equalsIgnoreCase(attributeName))
{
result = reader.getAttributeValue(i);
continue;