[jira] Commented: (TAP5-1293) Whitespaces in SymbolConstants.SUPPORTED_LOCALES cause that locales are not persised

2010-10-04 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12917751#action_12917751
 ] 

Hudson commented on TAP5-1293:
--

Integrated in tapestry-5.2-freestyle #203 (See 
[https://hudson.apache.org/hudson/job/tapestry-5.2-freestyle/203/])


> Whitespaces in SymbolConstants.SUPPORTED_LOCALES cause that locales are not 
> persised
> 
>
> Key: TAP5-1293
> URL: https://issues.apache.org/jira/browse/TAP5-1293
> Project: Tapestry 5
>  Issue Type: Bug
>Affects Versions: 5.2.1
>Reporter: Igor Drobiazko
>Assignee: Igor Drobiazko
> Fix For: 5.2.2
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-1217) merge in documentation from trunk

2010-10-04 Thread Christophe Cordenier (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12917698#action_12917698
 ] 

Christophe Cordenier commented on TAP5-1217:


I was meaning, they are not present on confluence. Should i add them ?

> merge in documentation from trunk
> -
>
> Key: TAP5-1217
> URL: https://issues.apache.org/jira/browse/TAP5-1217
> Project: Tapestry 5
>  Issue Type: Sub-task
>  Components: documentation
>Reporter: Ulrich Stärk
> Attachments: quickstart.src.site.apt.diff, src.site.apt.diff, 
> tapestry-hibernate.src.site.apt.diff, tapestry-ioc.src.site.apt.diff, 
> tapestry-spring.src.site.apt.diff, tapestry-tutorial1.src.site.apt.diff
>
>
> The documentation in confluence is for version 5.1. We need to look at the 
> changes made to the documentation in trunk and merge the differences into 
> confluence, marking parts with {deprecacted} and {since} where applicable.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[CONF] Apache Tapestry > Principles

2010-10-04 Thread confluence







Principles
Page edited by Josh Canfield


 Changes (14)
 



...
Tapestry is architected to scale from tiny, single-page applications all the way up to massive applications consisting of hundreds of individual pages, developed by large, diverse teams. Tapestry easily integrates with any kind of backend, including JEE, Spring and Hibernate.  
It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files change). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in JavaServer Pages. Managers love it because it makes it easy for large teams to work together, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back!  Tapestry is released under the Apache Software Licence 2.0.  h2. Principle 1 -- Static Structure, Dynamic Behavior  
Tapestry is designed to be extremely scalable in several dimensions: 
* Tapestry applications may contain large numbers of pages and many custom components. * Tapestry applications may contain very complex functionality. 
...
* Tapestry applications can service large numbers of concurrent users.  
One core architecture decision in Tapestry exists to service many of the above goals (and others that are harder to describe). Static Structure, Dynamic Behavior 
It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files change). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in JavaServer Pages. Managers love it because it makes it easy for large teams to work together, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back! 
 
In Tapestry, the structure of any particular page is static. This is necessary for several reasons, most importantly because Tapestry pages are pooled. Creating a Tapestry page is an involved process, because the page object is simply the root of a large tree of other objects including user provided components, many kinds of structural objects, template objects, and others. Creating a new page instance for each request is simply not scalable. 
Tapestry is released under the Apache Software Licence 2.0. 
 
Instead, Tapestry pools pages. Once created, a page instance will be stored in a pool for that particular type of page, and reused in later requests. An incoming request, the result of a user clicking a link or submitting a form, will be processed by some server within a cluster, and will use some page instance within the page pool. Because page instances are static and uniform across instances and servers, Tapestry can use any available page instance, or create a new one as needed. 
h2. Principle 1 -- Static Structure, Dynamic Behavior 
 
Tapestry does not need to store page instances inside the HttpSession. At most, it stores a smattering of persistent field values from the page, but not the entire page instance. This lean use of the HttpSession is key to Tapestry's very high scalability, especially in a clustered configuration. 
The concept of "Dynamic Behavior" should be pretty obvious when you are building a web application; things should look different for different users/situations. But what does it mean that Tapestry has "Static Structure?" Static structure implies that when you build a page in Tapestry you are going to define all of the components that are used within that page. Under no circumstance during the rendering or event processing of the page will you be able to dynamically create a new component and place that into the component tree. 
 
In some Tapestry-like frameworks, such as Faces and Wicket, the page structure is more dynamic, at the cost of storing much, much more data in the HttpSession. 
h5. Why use static structure? Doesn't this hamper my ability to build software they way I want? Second part first, static structure is not as limiting as you may think. You have plenty of options for getting dynamic behavior out of your static structure; from the simple conditional and looping components to the more advanced implementations of Tapestry's BeanEditor o

svn commit: r1004333 - /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java

2010-10-04 Thread drobiazko
Author: drobiazko
Date: Mon Oct  4 17:51:18 2010
New Revision: 1004333

URL: http://svn.apache.org/viewvc?rev=1004333&view=rev
Log:
Fixing the build

Modified:

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java?rev=1004333&r1=1004332&r2=1004333&view=diff
==
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
 Mon Oct  4 17:51:18 2010
@@ -69,17 +69,19 @@ public class LocalizationSetterImpl impl
 
 this.supportedLocaleNames = CollectionFactory.newSet();
 
-for (String name : TapestryInternalUtils.splitAtCommas(localeNames))
+String[] names = TapestryInternalUtils.splitAtCommas(localeNames);
+
+for (String name : names)
 {
 supportedLocaleNames.add(name.toLowerCase());
 }
 
-supportedLocales = parseNames(supportedLocaleNames);
+supportedLocales = parseNames(names);
 
 defaultLocale = supportedLocales.get(0);
 }
 
-private List parseNames(Set localeNames)
+private List parseNames(String[] localeNames)
 {
 List list = CollectionFactory.newList();
 




[jira] Commented: (TAP5-1217) merge in documentation from trunk

2010-10-04 Thread JIRA

[ 
https://issues.apache.org/jira/browse/TAP5-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12917657#action_12917657
 ] 

Ulrich Stärk commented on TAP5-1217:


There were no changes between 5.1 and 5.2 in these modules so no action has to 
be taken.

> merge in documentation from trunk
> -
>
> Key: TAP5-1217
> URL: https://issues.apache.org/jira/browse/TAP5-1217
> Project: Tapestry 5
>  Issue Type: Sub-task
>  Components: documentation
>Reporter: Ulrich Stärk
> Attachments: quickstart.src.site.apt.diff, src.site.apt.diff, 
> tapestry-hibernate.src.site.apt.diff, tapestry-ioc.src.site.apt.diff, 
> tapestry-spring.src.site.apt.diff, tapestry-tutorial1.src.site.apt.diff
>
>
> The documentation in confluence is for version 5.1. We need to look at the 
> changes made to the documentation in trunk and merge the differences into 
> confluence, marking parts with {deprecacted} and {since} where applicable.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (TAP5-1295) Simplify connecting a link or form to an (enclosing) Zone

2010-10-04 Thread Howard M. Lewis Ship (JIRA)
Simplify connecting a link or form to an (enclosing) Zone
-

 Key: TAP5-1295
 URL: https://issues.apache.org/jira/browse/TAP5-1295
 Project: Tapestry 5
  Issue Type: Improvement
  Components: tapestry-core
Affects Versions: 5.2.2
Reporter: Howard M. Lewis Ship
Priority: Minor


Currently, when connecting a link to a zone, you bind the zone parameter of the 
link to the client-side id of the Zone.

To do this, you must know the client-side id of the Zone.

It would be nice if the zone value could be evaluated on the client and make 
use of the rendered DOM to simplify this.

I thought the special string "^" could mean "the containing Zone", and could be 
located via the "t-zone" CSS class that Zones normally have.

An extended form could be "^.foo" to find an enclosing element with CSS class 
foo and assume that is the zone (this would help when dealing with nested 
zones).

The exact syntax is up for debate but the idea is that the connection could be 
made on the client-side without having to deal with the (relative) intricacies 
of either assigning a zone id explicitly, or reading the Zone's id.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[CONF] Apache Tapestry > Getting Started

2010-10-04 Thread confluence







Getting Started
Page edited by Christophe Cordenier


 Changes (1)
 



...
h2. More  
Learn more about [Tapestry Philosophy |TAPESTRY:Principles] and then checkout our full [Documentation|../display/TAPESTRY/Documentation] [Documentation|TAPESTRY:Documentation] page on which you will find a lot of resources written by committers and contributors. 
 h2. Obtain Help 
...

Full Content

Create your first Tapestry project

The easiest way to get started is to use Apache Maven to create your initial project; Maven can use an archetype (a kind of project template) to create a bare-bones Tapestry application for you.

One you have Maven installed, execute the command mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org. Maven will (after performing a large number of one-time downloads) ask you questions about how to create the new project, including a group id (like a package name) and an artifact id for your new project.


$ mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] 
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] 
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://tapestry.apache.org -> quickstart (Tapestry 5.2.1-SNAPSHOT Quickstart Project)
2: http://tapestry.apache.org -> tapestry-archetype (Tapestry 4.1.6 Archetype)
Choose a number: : 1
Choose version:
1: 5.0.19
2: 5.1.0.5
3: 5.2.0
4: 5.2.1-SNAPSHOT
Choose a number: : 3
Define value for property 'groupId': : com.example
Define value for property 'artifactId': : newapp
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.example: com.example.newapp
Confirm properties configuration:
groupId: com.example
artifactId: newapp
version: 1.0-SNAPSHOT
package: com.example.newapp
Y:
[INFO] 
[INFO] BUILD SUCCESSFUL
[INFO] 
[INFO] Total time: 25 seconds
[INFO] Finished at: Tue Aug 17 14:01:50 PDT 2010
[INFO] Final Memory: 16M/81M
[INFO] 
/tmp
$ tree newapp
newapp
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| | `-- example
| | `-- newapp
| | |-- components
| | | `-- Layout.java
| | |-- pages
| | | |-- About.java
| | | |-- Contact.java
| | | `-- Index.java
| | `-- services
| | `-- AppModule.java
| |-- resources
| | |-- com
| | | `-- example
| | | `-- newapp
| | | |-- components
| | | | `-- Layout.tml
| | | `-- pages
| | | `-- Index.properties
| | `-- log4j.properties
| `-- webapp
| |-- About.tml
| |-- Contact.tml
| |-- Index.tml
| |-- WEB-INF
| | |-- app.properties
| | `-- web.xml
| |-- favicon.ico
| `-- layout
| |-- images
| | |-- img01.jpg
| | |-- img02.jpg
| | |-- img03.jpg
| | |-- img04.jpg
| | |-- img05.gif
| | |-- img06.gif
| | |-- img07.gif
| | |-- img08.gif
| | |-- img09.gif
| | |-- img10.gif
| | |-- img11.gif
| | |-- img12.gif
| | |-- img13.gif
| | |-- img14.gif
| | |-- img15.gif
| | |-- img16.gif
| | |-- img17.gif
| | |-- img18.gif
| | |-- img19.gif
| | |-- img20.gif
| | `-- spacer.gif
| |-- layout.css
| `-- license.txt
|-- site
| |-- apt
| | `-- index.apt
| `-- site.xml
`-- test
|-- conf
| |-- testng.xml
| `-- webdefault.xml
|-- java
| `-- PLACEHOLDER
`-- resources
`-- PLACEHOLDER

25 directories, 44 files
/tmp
$


The exact content and layout of project generated from the archetype will change across different releases of Tapestry.

Once it is created, you can load it into any IDE and start coding, or use mvn jetty:run




1


. Again, more one-time downloads, but then you can open your browser to http://localhost:8080 to run the application.

More

Learn more about Tapestry Philosophy  and then checkout our full Documentation page on which you will find a lot of resources written by committers and contributors.

Obtain Help

Tapestry has an active user mailing list on which you can find a lot of valuable support. You can subscribe users-subscr...@tapestry.apache.org or look for an answer in the archives

Having trouble?  Try our Frequently Asked Questions.



Change Notification Preferences

  

[CONF] Apache Tapestry > Getting Started

2010-10-04 Thread confluence







Getting Started
Page edited by Christophe Cordenier


 Changes (10)
 



...
{warning}The exact content and layout of project generated from the archetype will change across different releases of Tapestry.{warning}  
Once it is created, you can load it into any IDE and start coding, or use {{mvn jetty:run{}}}{footnote}Jetty is a well-known, open-source, high-performance servlet container. Jetty starts up quickly, and implements the official Servlet specification very closely.{footnote}. Again, more one-time downloads, but then you can open your browser to [http://localhost:8080] to run the application. 
 
h2. Obtain Help 
h2. More 
 
Tapestry has an active user mailing list on which you can find a lot of valuable support. You can subscribe [mailto:users-subscr...@tapestry.apache.org] or look for an answer in the [archives|http://markmail.org/search/list:org.apache.tapestry.users]  
Learn more about[Tapestry Philosophy |TAPESTRY:Principles] and then checkout our full [Documentation|../display/TAPESTRY/Documentation] page on which you will find a lot of resources written by committers and contributors. 
 
Having trouble?  Try our [TAPESTRY:Frequently Asked Questions]. 
h2. Obtain Help 
 
h2. More 
Tapestry has an active user mailing list on which you can find a lot of valuable support. You can subscribe [mailto:users-subscr...@tapestry.apache.org] or look for an answer in the [archives|http://markmail.org/search/list:org.apache.tapestry.users] 
 
Checkout our [Documentation|Documentation] page on which you will find a lot of resources written by committers and contributors. 
Having trouble?  Try our [TAPESTRY:Frequently Asked Questions]. 

Full Content

Create your first Tapestry project

The easiest way to get started is to use Apache Maven to create your initial project; Maven can use an archetype (a kind of project template) to create a bare-bones Tapestry application for you.

One you have Maven installed, execute the command mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org. Maven will (after performing a large number of one-time downloads) ask you questions about how to create the new project, including a group id (like a package name) and an artifact id for your new project.


$ mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] 
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] 
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://tapestry.apache.org -> quickstart (Tapestry 5.2.1-SNAPSHOT Quickstart Project)
2: http://tapestry.apache.org -> tapestry-archetype (Tapestry 4.1.6 Archetype)
Choose a number: : 1
Choose version:
1: 5.0.19
2: 5.1.0.5
3: 5.2.0
4: 5.2.1-SNAPSHOT
Choose a number: : 3
Define value for property 'groupId': : com.example
Define value for property 'artifactId': : newapp
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.example: com.example.newapp
Confirm properties configuration:
groupId: com.example
artifactId: newapp
version: 1.0-SNAPSHOT
package: com.example.newapp
Y:
[INFO] 
[INFO] BUILD SUCCESSFUL
[INFO] 
[INFO] Total time: 25 seconds
[INFO] Finished at: Tue Aug 17 14:01:50 PDT 2010
[INFO] Final Memory: 16M/81M
[INFO] 
/tmp
$ tree newapp
newapp
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| | `-- example
| | `-- newapp
| | |-- components
| | | `-- Layout.java
| | |-- pages
| | | |-- About.java
| | | |-- Contact.java
| | | `-- Index.java
| | `-- services
| | `-- AppModule.java
| |-- resources
| | |-- com
| | | `-- example
| | | `-- newapp
| | | |-- components
| | | | `-- Layout.tml
| | | `-- pages
| | | `-- Index.properties
| | `-- log4j.properties
| `-- webapp
| |-- About.tml
| |-- Contact.tml
| |-- Index.tml
| |-- WEB-INF
| | |-- app.properties
| | `-- web.xml
| |-- favicon.ico
| `-- layout
| |-- images
| | |-- img01.jpg
| | 

[CONF] Apache Tapestry > Principles

2010-10-04 Thread confluence







Principles
Page  added by Christophe Cordenier

 

 What is Apache Tapestry?

Apache Tapestry is an open-source framework for creating dynamic, robust, highly scalable web applications in Java. Tapestry complements and builds upon the standard Java Servlet API, and so it works in any servlet container or application server.

Tapestry divides a web application into a set of pages, each constructed from components. This provides a consistent structure, allowing the Tapestry framework to assume responsibility for key concerns such as URL construction and dispatch, persistent state storage on the client or on the server, user input validation, localization/internationalization, and exception reporting. Developing Tapestry applications involves creating HTML templates using plain HTML, and combining the templates with small amounts of Java code. In Tapestry, you create your application in terms of objects, and the methods and properties of those objects – and specifically not in terms of URLs and query parameters. Tapestry brings true object oriented development to Java web applications.

Tapestry is specifically designed to make creating new components very easy, as this is a routine approach when building applications.

Tapestry is architected to scale from tiny, single-page applications all the way up to massive applications consisting of hundreds of individual pages, developed by large, diverse teams. Tapestry easily integrates with any kind of backend, including JEE, Spring and Hibernate.

It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files change). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in JavaServer Pages. Managers love it because it makes it easy for large teams to work together, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back!

Tapestry is released under the Apache Software Licence 2.0.

Principle 1 – Static Structure, Dynamic Behavior

Tapestry is designed to be extremely scalable in several dimensions:


	Tapestry applications may contain large numbers of pages and many custom components.
	Tapestry applications may contain very complex functionality.
	Tapestry applications may be created by large, diverse teams.
	Tapestry applications can service large numbers of concurrent users.



One core architecture decision in Tapestry exists to service many of the above goals (and others that are harder to describe). Static Structure, Dynamic Behavior

In Tapestry, the structure of any particular page is static. This is necessary for several reasons, most importantly because Tapestry pages are pooled. Creating a Tapestry page is an involved process, because the page object is simply the root of a large tree of other objects including user provided components, many kinds of structural objects, template objects, and others. Creating a new page instance for each request is simply not scalable.

Instead, Tapestry pools pages. Once created, a page instance will be stored in a pool for that particular type of page, and reused in later requests. An incoming request, the result of a user clicking a link or submitting a form, will be processed by some server within a cluster, and will use some page instance within the page pool. Because page instances are static and uniform across instances and servers, Tapestry can use any available page instance, or create a new one as needed.

Tapestry does not need to store page instances inside the HttpSession. At most, it stores a smattering of persistent field values from the page, but not the entire page instance. This lean use of the HttpSession is key to Tapestry's very high scalability, especially in a clustered configuration.

In some Tapestry-like frameworks, such as Faces and Wicket, the page structure is more dynamic, at the cost of storing much, much more data in the HttpSession.

This static structure is not so limiting as you might think. With different kinds of conditional and looping components, and the ability to "jump out of the flow" and render components in an arbitrary order, you will not find Tapestry to be rigid ... anything but!

Principle 2 – Adaptive API

A key feature of Tapestry 5 is adaptive API.

In traditional Java frameworks, including Tapestry 4, user code is expected to conform to the framework. You create classes that extend from framework-provided base classes, or implement framework-provided interfaces.

This works well until you upgrade to the next release of the framework: with the new features of the upgrade, you will more often than not experience breaks in backwards compatibility. Interfaces or base