[CONF] Apache Tapestry > User Guide
User Guide Page edited by Christophe Cordenier Changes (2) ... * [Service Status|Service Status] h2. Tapestry IOC As with Tapestry 5 in general, the goal of Tapestry IoC is greater simplicity, greater power, and an avoidance of XML. To fully understand extension capabilities of Tapestry you should be aware of this built-in [IoC|IOC]. h3. Architecture * [|Introduction][Introduction|TAPESTRY:IoC] * [Overview|TAPESTRY:IoC - overview] * [TAPESTRY:IoC - module] h3. Features * [Services|TAPESTRY:IoC - service] * [Advisors|TAPESTRY:IoC - advice] * [Decorators|TAPESTRY:IoC - decorator] h2. Integrate Hibernate * [TAPESTRY:Hibernate - Core - Conf|TAPESTRY:Hibernate - Core - Conf] * [TAPESTRY:User Guide] * [TAPESTRY:Statistics] ... Full Content Hot Features Class Reloading Configuration Configuration URL rewriting HTTPS Localization Response Compression Understand Page Lifecycle Component Rendering Request Processing Type Coercion Develop your pages and components Structure Project Layout Page Navigation Logging Component Classes Component Templates Component Events Component Mixins Component Parameters Templating Content Type and Markup Layout Component CSS DOM Assets Property Expressions Handle persistence Persistent Page Data Persistent State Working with IOC Injection _javascript_ Ajax & _javascript_ Working with Forms Input Validation BeanEditForm Guide Upload files Test Unit testing pages or components Integrate with Selenium test tool Tooling Generate your Component Reference Service Status Tapestry IOC As with Tapestry 5 in general, the goal of Tapestry IoC is greater simplicity, greater power, and an avoidance of XML. To fully understand extension capabilities of Tapestry you should be aware of this built-in IoC. Architecture IntroductionIntroduction Overview IoC - module Features Services Advisors Decorators Integrate Hibernate Hibernate - Core - Conf User Guide Statistics Integrate Spring Inject your spring beans inside Tapestry components Advanced Aliases Environmental Services Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > IoC cookbook
IoC cookbook Page moved by Christophe Cordenier From: Apache Tapestry > IoC To: Apache Tapestry > Cookbook Children moved IoC cookbook - basics IoC cookbook - override IoC cookbook - patterns IoC cookbook - servconf Change Notification Preferences View Online
[CONF] Apache Tapestry > IoC
IoC Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved IoC - advice IoC - autoload IoC - case IoC - coerce IoC - command IoC - configuration IoC - decorator IoC - injection IoC - logging IoC - module IoC - order IoC - overview IoC - parallel IoC - pipeline IoC - provider IoC - run IoC - serialization IoC - service IoC - shadow IoC - startup IoC - strategy IoC - symbols Change Notification Preferences View Online
[jira] Assigned: (TAP5-1287) Services do not reload even though they should
[ https://issues.apache.org/jira/browse/TAP5-1287?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship reassigned TAP5-1287: -- Assignee: Howard M. Lewis Ship > Services do not reload even though they should > -- > > Key: TAP5-1287 > URL: https://issues.apache.org/jira/browse/TAP5-1287 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc >Affects Versions: 5.2.2 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship > > Been working on an application that uses a lot of JMS. I noticed that > reloads did not appear to happen as expected. > DEBUG MessageSinkSource - Invoking constructor public > com.fivoosh.services.activemq.MessageSinkSourceImpl(org.slf4j.Logger,com.fivoosh.services.activemq.ActiveMQConnectionSource,org.apache.tapestry5.ioc.services.PerthreadManager,com.fivoosh.services.TimeService,java.util.Map). > DEBUG MessageSinkSource - BEGIN Analyzing > com.fivoosh.services.activemq.MessageSinkSourceImpl$1 > DEBUG MessageSinkSource - END Analyzing > com.fivoosh.services.activemq.MessageSinkSourceImpl$1 > DEBUG MessageSinkSource - BEGIN Analyzing > com.fivoosh.services.activemq.MessageSinkSourceImpl$TextQueueSender > DEBUG MessageSinkSource - END Analyzing > com.fivoosh.services.activemq.MessageSinkSourceImpl$TextQueueSender > DEBUG MasterMessageHandler - Processing message > 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:9:1:1' from queue 'echo' > Message received on thread ActiveMQ Session Task: > { > "foo" : "bar" > } > I then changed the code (it affects the logging message that starts > "Processing message ": > DEBUG MasterMessageHandler - Implementation class > com.fivoosh.services.activemq.MasterMessageHandlerImpl has changed and will > be reloaded on next use. > DEBUG MasterMessageHandler - Processing message > 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:10:1:1' from queue > 'echo' > Message received on thread ActiveMQ Session Task: > { > "foo" : "bar" > } > Note that the message indicates the implementation class changed, but the old > behavior is stuck. > Later changes to the code and new messages sent: > DEBUG MasterMessageHandler - Processing message > 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:12:1:1' from queue > 'echo' > Message received on thread ActiveMQ Session Task: > { > "foo" : "baz" > } > ... do not even register that a change occured. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-1287) Services do not reload even though they should
Services do not reload even though they should -- Key: TAP5-1287 URL: https://issues.apache.org/jira/browse/TAP5-1287 Project: Tapestry 5 Issue Type: Bug Components: tapestry-ioc Affects Versions: 5.2.2 Reporter: Howard M. Lewis Ship Been working on an application that uses a lot of JMS. I noticed that reloads did not appear to happen as expected. DEBUG MessageSinkSource - Invoking constructor public com.fivoosh.services.activemq.MessageSinkSourceImpl(org.slf4j.Logger,com.fivoosh.services.activemq.ActiveMQConnectionSource,org.apache.tapestry5.ioc.services.PerthreadManager,com.fivoosh.services.TimeService,java.util.Map). DEBUG MessageSinkSource - BEGIN Analyzing com.fivoosh.services.activemq.MessageSinkSourceImpl$1 DEBUG MessageSinkSource - END Analyzing com.fivoosh.services.activemq.MessageSinkSourceImpl$1 DEBUG MessageSinkSource - BEGIN Analyzing com.fivoosh.services.activemq.MessageSinkSourceImpl$TextQueueSender DEBUG MessageSinkSource - END Analyzing com.fivoosh.services.activemq.MessageSinkSourceImpl$TextQueueSender DEBUG MasterMessageHandler - Processing message 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:9:1:1' from queue 'echo' Message received on thread ActiveMQ Session Task: { "foo" : "bar" } I then changed the code (it affects the logging message that starts "Processing message ": DEBUG MasterMessageHandler - Implementation class com.fivoosh.services.activemq.MasterMessageHandlerImpl has changed and will be reloaded on next use. DEBUG MasterMessageHandler - Processing message 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:10:1:1' from queue 'echo' Message received on thread ActiveMQ Session Task: { "foo" : "bar" } Note that the message indicates the implementation class changed, but the old behavior is stuck. Later changes to the code and new messages sent: DEBUG MasterMessageHandler - Processing message 'ID:Howards-Mighty-Tool.local-56885-1285896586008-3:0:12:1:1' from queue 'echo' Message received on thread ActiveMQ Session Task: { "foo" : "baz" } ... do not even register that a change occured. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[CONF] Apache Tapestry > Developer Bible
Developer Bible Page edited by Kalle Korhonen Changes (1) ... The year on the copyright should be updated as a file changes. As you are reviewing your changes before checking them in, try to check the copyright date, and add the current year to the list if not present. ... Full Content This is a semi-random outpouring of thoughts related to being a Tapestry committer. IDE IntelliJ It's a free license for all committers and it's just better. Yes, the first few days can be an unpleasant fumble because everything is almost, but not quite, familiar. Pretty soon you'll love IDEA and recognize that Eclipse has been bending you over and doing unspeakable things. There are shared code formatting settings in >. This will prevent unexpected conflicts due to formatting. Eclipse Howard uses this ... because he can't manage to switch IDEs constantly (he uses Eclipse for training). Lately its gotten better. Copyrights All source files should have a copyright comment on top, except where such a comment would interfere with its behavior. For example, component template files omit the comment. The year on the copyright should be updated as a file changes. As you are reviewing your changes before checking them in, try to check the copyright date, and add the current year to the list if not present. Commit Messages Always provide a commit message. I generally try to work off the JIRA, so my commit message is often: TAP5-1234: Make the Foo Widget more Ajax-tastic! It is very important to include the JIRA issue id in the commit. This is used in many places: JIRA links issues to the SVN commits for that issue (very handy for seeing what changed as part of a bug fix). The Hudson CI server does as well, and will actually link SVN commits to issues after succesfully building. JIRA Procedures All Tapestry committers should be registerred with JIRA and part of the tapestry-developers JIRA group. I work the following JIRA list: JIRA Work Queue. Ideally, we would always work top priortity to low priority. I (Howard) sometimes jump out of order, if there's something cool to work on that fits in an available time slot. Alternately, you are always allowed to change the priority of a bug before or as you work it. Starting work When you start to work on an issue, make sure it is assigned to you and use the start progress option. I often add comments about the state of the fix, or the challenges in creating a fix. This often spurs the Issue's adder to provide more details. I often update the issue description to make it more legible and more precise, i.e., "NPE in CheckUpdates" might become "NullPointerException when checking for updates to files that have been deleted". Verbose is good. Closing bugs Is it a bug fix without tests? No. In some cases, I write new tests to prove that an issue is not valid and then leave the tests in place – then close the bug as invalid. A good plan is to write a test that fails then work the code until the test passes. I'm also surprised by how often code works in a unit test but fails unexpectedly in an integration test. As the G-Man says "Expect unforseen consequences". When you check in a fix, you should close the issue and make sure the fix release is correct. We're playing fast and loose – a better procedure would be to mark the bug resolved and verify the fix before closing it. That's ok, we have a community to double check our work . For anything non-trivial, wait for the Hudson CI server to build. It catches a lot of things ... such as files that were not added to SVN. And even IntelliJ has a bit of trouble with wildly refactored code. Hudson will catch all that. Invalid issues and duplicates Always provide comments about why_ an issue is invalid ("A Ruby implementation of Tapestry is out of scope for the project."), or at least, a link to the duplicate issues. Close the issue but make sure the fix release is blank. Otherwise, the issue _will be listed in the release notes_, which we don't want. Copyrights The ASF copyright must appear on all Java source files. Technically it should appear on all non-binary files in the repository. As you make changes to files, update the copyright to add the current year to the list. The goal is that the copyright notice includes the year in which files change. When creating a new file, don't back date the copyright year ... starwith the current year. Try not to change the copyright year on files that haven't actually changed. IntelliJ has a great comparison view: Cmd-9 to see the local changes, the Cmd-D to see the differences. I whip through the changes (using Cmd-forward arrow) and make sure copyrights are up to date as I review the changes prior to a commit.
[jira] Commented: (TAP5-1286) Remove Maven APT files for documentation that has moved into the Confluence wiki
[ https://issues.apache.org/jira/browse/TAP5-1286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12916713#action_12916713 ] Hudson commented on TAP5-1286: -- Integrated in tapestry-5.2-freestyle #200 (See [https://hudson.apache.org/hudson/job/tapestry-5.2-freestyle/200/]) TAP5-1286: Remove Maven APT files for documentation that has moved into the Confluence wiki TAP5-1286: Remove Maven APT files for documentation that has moved into the Confluence wiki > Remove Maven APT files for documentation that has moved into the Confluence > wiki > > > Key: TAP5-1286 > URL: https://issues.apache.org/jira/browse/TAP5-1286 > Project: Tapestry 5 > Issue Type: Task > Components: documentation >Affects Versions: 5.2.2 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship > > Most of the documentation has been moved into Confluence. It's time to > delete the APT and XDOC format documentation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r1003306 - in /tapestry/tapestry5/trunk/src/site: apt/dev/bible.apt site.xml
Author: hlship Date: Thu Sep 30 21:50:47 2010 New Revision: 1003306 URL: http://svn.apache.org/viewvc?rev=1003306&view=rev Log: TAP5-1286: Remove Maven APT files for documentation that has moved into the Confluence wiki Removed: tapestry/tapestry5/trunk/src/site/apt/dev/bible.apt Modified: tapestry/tapestry5/trunk/src/site/site.xml Modified: tapestry/tapestry5/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/site.xml?rev=1003306&r1=1003305&r2=1003306&view=diff == --- tapestry/tapestry5/trunk/src/site/site.xml (original) +++ tapestry/tapestry5/trunk/src/site/site.xml Thu Sep 30 21:50:47 2010 @@ -95,11 +95,6 @@ http://wiki.apache.org/tapestry/Tapestry5HowTos"/> - - - - -
[CONF] Apache Tapestry > Developer Bible
Developer Bible Page added by Howard M. Lewis Ship This is a semi-random outpouring of thoughts related to being a Tapestry committer. IDE IntelliJ It's a free license for all committers and it's just better. Yes, the first few days can be an unpleasant fumble because everything is almost, but not quite, familiar. Pretty soon you'll love IDEA and recognize that Eclipse has been bending you over and doing unspeakable things. There are shared code formatting settings in >. This will prevent unexpected conflicts due to formatting. Eclipse Howard uses this ... because he can't manage to switch IDEs constantly (he uses Eclipse for training). Lately its gotten better. Copyrights All source files should have a copyright comment on top, except where such a comment would interfere with its behavior. For example, component template files omit the comment. The year on the copyright should be updated as a file changes. As you are reviewing your changes before checking them in, try to check the coyright date, and add the current year to the list if not present. Commit Messages Always provide a commit message. I generally try to work off the JIRA, so my commit message is often: TAP5-1234: Make the Foo Widget more Ajax-tastic! It is very important to include the JIRA issue id in the commit. This is used in many places: JIRA links issues to the SVN commits for that issue (very handy for seeing what changed as part of a bug fix). The Hudson CI server does as well, and will actually link SVN commits to issues after succesfully building. JIRA Procedures All Tapestry committers should be registerred with JIRA and part of the tapestry-developers JIRA group. I work the following JIRA list: JIRA Work Queue. Ideally, we would always work top priortity to low priority. I (Howard) sometimes jump out of order, if there's something cool to work on that fits in an available time slot. Alternately, you are always allowed to change the priority of a bug before or as you work it. Starting work When you start to work on an issue, make sure it is assigned to you and use the start progress option. I often add comments about the state of the fix, or the challenges in creating a fix. This often spurs the Issue's adder to provide more details. I often update the issue description to make it more legible and more precise, i.e., "NPE in CheckUpdates" might become "NullPointerException when checking for updates to files that have been deleted". Verbose is good. Closing bugs Is it a bug fix without tests? No. In some cases, I write new tests to prove that an issue is not valid and then leave the tests in place – then close the bug as invalid. A good plan is to write a test that fails then work the code until the test passes. I'm also surprised by how often code works in a unit test but fails unexpectedly in an integration test. As the G-Man says "Expect unforseen consequences". When you check in a fix, you should close the issue and make sure the fix release is correct. We're playing fast and loose – a better procedure would be to mark the bug resolved and verify the fix before closing it. That's ok, we have a community to double check our work . For anything non-trivial, wait for the Hudson CI server to build. It catches a lot of things ... such as files that were not added to SVN. And even IntelliJ has a bit of trouble with wildly refactored code. Hudson will catch all that. Invalid issues and duplicates Always provide comments about why_ an issue is invalid ("A Ruby implementation of Tapestry is out of scope for the project."), or at least, a link to the duplicate issues. Close the issue but make sure the fix release is blank. Otherwise, the issue _will be listed in the release notes_, which we don't want. Copyrights The ASF copyright must appear on all Java source files. Technically it should appear on all non-binary files in the repository. As you make changes to files, update the copyright to add the current year to the list. The goal is that the copyright notice includes the year in which files change. When creating a new file, don't back date the copyright year ... starwith the current year. Try not to change the copyright year on files that haven't actually changed. IntelliJ has a great comparison view: Cmd-9 to see the local changes, the Cmd-D to see the differences. I whip through the changes (using Cmd-forward arrow) and make sure copyrights are up to date as I review the changes prior to a commit. Public vs. Private/Internal This is a real big deal. As long as code is in the internal package, we have a high degree of carte-blanche to change it. As soon as code is public, we become handcuffed to backwards compatibility. Interfaces are public, implementations are private. You can see this is the bulk of the code, where org.apache.tapestry5.services is almost all interfaces and the implementations are in org.apache.t
svn commit: r1003270 - in /tapestry/tapestry5/trunk: src/site/ src/site/apt/cookbook/ src/site/apt/dev/ src/site/apt/guide/ src/site/fml/faq/ tapestry-webflow/ tapestry-webflow/src/main/java/org/apach
Author: hlship Date: Thu Sep 30 21:05:46 2010 New Revision: 1003270 URL: http://svn.apache.org/viewvc?rev=1003270&view=rev Log: TAP5-1286: Remove Maven APT files for documentation that has moved into the Confluence wiki Removed: tapestry/tapestry5/trunk/src/site/apt/cookbook/defaultparameter.apt tapestry/tapestry5/trunk/src/site/apt/cookbook/exceptions.apt tapestry/tapestry5/trunk/src/site/apt/cookbook/index.apt tapestry/tapestry5/trunk/src/site/apt/cookbook/informals.apt tapestry/tapestry5/trunk/src/site/apt/cookbook/lib.apt tapestry/tapestry5/trunk/src/site/apt/cookbook/switch.apt tapestry/tapestry5/trunk/src/site/apt/dev/checklist.apt tapestry/tapestry5/trunk/src/site/apt/dev/env.apt tapestry/tapestry5/trunk/src/site/apt/guide/ajax.apt tapestry/tapestry5/trunk/src/site/apt/guide/alias.apt tapestry/tapestry5/trunk/src/site/apt/guide/appstate.apt tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt tapestry/tapestry5/trunk/src/site/apt/guide/beaneditform.apt tapestry/tapestry5/trunk/src/site/apt/guide/coercion.apt tapestry/tapestry5/trunk/src/site/apt/guide/component-classes.apt tapestry/tapestry5/trunk/src/site/apt/guide/compress.apt tapestry/tapestry5/trunk/src/site/apt/guide/conf.apt tapestry/tapestry5/trunk/src/site/apt/guide/content-type.apt tapestry/tapestry5/trunk/src/site/apt/guide/css.apt tapestry/tapestry5/trunk/src/site/apt/guide/dom.apt tapestry/tapestry5/trunk/src/site/apt/guide/env.apt tapestry/tapestry5/trunk/src/site/apt/guide/event.apt tapestry/tapestry5/trunk/src/site/apt/guide/inject.apt tapestry/tapestry5/trunk/src/site/apt/guide/layout.apt tapestry/tapestry5/trunk/src/site/apt/guide/lifecycle.apt tapestry/tapestry5/trunk/src/site/apt/guide/localization.apt tapestry/tapestry5/trunk/src/site/apt/guide/logging.apt tapestry/tapestry5/trunk/src/site/apt/guide/mixins.apt tapestry/tapestry5/trunk/src/site/apt/guide/pagenav.apt tapestry/tapestry5/trunk/src/site/apt/guide/parameters.apt tapestry/tapestry5/trunk/src/site/apt/guide/persist.apt tapestry/tapestry5/trunk/src/site/apt/guide/project-layout.apt tapestry/tapestry5/trunk/src/site/apt/guide/propexp.apt tapestry/tapestry5/trunk/src/site/apt/guide/reload.apt tapestry/tapestry5/trunk/src/site/apt/guide/rendering.apt tapestry/tapestry5/trunk/src/site/apt/guide/request.apt tapestry/tapestry5/trunk/src/site/apt/guide/secure.apt tapestry/tapestry5/trunk/src/site/apt/guide/servicestatus.apt tapestry/tapestry5/trunk/src/site/apt/guide/templates.apt tapestry/tapestry5/trunk/src/site/apt/guide/testing.apt tapestry/tapestry5/trunk/src/site/apt/guide/unit-testing-pages.apt tapestry/tapestry5/trunk/src/site/apt/guide/url-rewriting.apt tapestry/tapestry5/trunk/src/site/apt/guide/validation.apt tapestry/tapestry5/trunk/src/site/fml/faq/general.fml tapestry/tapestry5/trunk/tapestry-webflow/pom.xml tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/ExternalContextSource.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/ExternalContextSourceImpl.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/FlowExecutionResultProcessor.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/FlowManagerImpl.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/InternalFlowManager.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/InternalFlowManagerImpl.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/InternalViewFactoryCreator.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/InternalViewFactoryCreatorImpl.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/PageViewWrapper.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/TapestryFlowURLHandler.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/internal/webflow/services/WebflowDispatcher.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/webflow/TapestryViewFactoryCreator.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/webflow/WebflowConstants.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/webflow/services/FlowManager.java tapestry/tapestry5/trunk/tapestry-webflow/src/main/java/org/apache/tapestry5/webflow/services/WebFlowModule.java tapestry/tapestry5/trunk/tapestry-webflow/src/s
[CONF] Apache Tapestry > Release Process
Release Process Page edited by Andreas Andreou Changes (3) ... * Update your _Subversion_ workspace * Manually update the tapestry version in the source code of the Tapestry archetype (found in quickstart/src/main/resources/archetype-resources/*) to the version number to be released * mvn release:prepare * mvn release:perform ... h2. Notes {{mvn release:prepare}} does a very good job at guessing the right version numbers (i.e., stripping off the -SNAPSHOT suffix for the release version, and incrementing the version number for the new development version). If it's one of your first releases, consider trying {{mvn release:prepare -DdryRun=true}} and manually observing the differences in the poms (this command will not commit the updated poms - it'll just generate them). See [the Maven documentation|http://maven.apache.org/plugins/maven-release-plugin/introduction.html] for more details. The Maven code assumes it is executing inside a Subversion (not Git+SVN) workspace. I often create a fresh checkout into a new directory. ... Full Content Release Steps The process can be summarized as: Update your Subversion workspace Manually update the tapestry version in the source code of the Tapestry archetype (found in quickstart/src/main/resources/archetype-resources/*) to the version number to be released mvn release:prepare mvn release:perform Generate and upload Binary / Source distributions The ant build script creates the distributions There's some manual work to sign and upload the distributions Login to Nexus, 'close' the automatically created staging repository and note its url Use the Manage Versions page in JIRA to add a new release (the new development release) Generate HTML Release Notes for the release Create a new child page of Release Notes Paste the HTML content into the new page (you'll have to use the {html} macro) Update Release Notes to point to the new page Send vote email ... 3 days pass Login to Nexus and promote the release SSH to people.apache.org and copy the Binary / Source distributions to the right directory Once files reach all mirrors, update the Downloads Page Dont forget to change the version number to the new release Dont forget to link to the new release's Release Notes page Be aware that Maven will perform some automatic Subversion commits, and even create the new release tag for you! Make sure to get those version numbers right; I've found to my dismay that it can be tricky to correct this after-the-fact. Notes mvn release:prepare does a very good job at guessing the right version numbers (i.e., stripping off the -SNAPSHOT suffix for the release version, and incrementing the version number for the new development version). If it's one of your first releases, consider trying mvn release:prepare -DdryRun=true and manually observing the differences in the poms (this command will not commit the updated poms - it'll just generate them). See the Maven documentation for more details. The Maven code assumes it is executing inside a Subversion (not Git+SVN) workspace. I often create a fresh checkout into a new directory. The correct response to this prompt: What is the SCM release tag or label for "Tapestry 5 Project" is 5.X.X This reflects that Tapestry stores its SVN tags in a slightly weird way (that made perfect sense at the time). A template for the vote e-mail: I've created and uploaded a release of Tapestry 5.x.x, ready to be voted upon. The binary and source downloads are uploaded to: http://people.apache.org/~XXX/tapestry-releases/ and the Maven artifacts staged to: https://repository.apache.org/content/repositories/orgapachetapestry-XXX/ Please examine these files to determine if the new release, 5.X.X, is ready. I've also created a 5.X.X tag in Subversion: http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.X.X/ On a successful vote, I'll move the files from these directories to the proper distribution directories and update the Tapestry site documentation. Vote will run for three days; on success I'll move the voted artifacts into place and send out appropriate notifications. I often embellish this template with extra detail. Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > About
About Page edited by Andreas Andreou Changes (1) ... || Name || ID || role || email address || website || | Dan Adams | dadams | committer | {align:right}dad...@apache.org{align} | | | Andreas Andreou | andyhot | PMC member | {align:right}andy...@apache.org{align} | http://andyhot.gr | | Christophe Cordenier | ccordenier | committer | {align:right}ccorden...@apache.org{align} | http://spreadthesource.com | | Ben Dotte | bdotte | committer | {align:right}bdo...@apache.org{align} | | ... Full Content 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 is released under the Apache Software Licence 2.0 Releases Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. The people behind Tapestry Name ID role email address website Dan Adams dadams committer dad...@apache.org Andreas Andreou andyhot PMC member andy...@apache.org http://andyhot.gr Christophe Cordenier ccordenier committer ccorden...@apache.org http://spreadthesource.com Ben Dotte bdotte committer bdo...@apache.org Igor Drobiazko drobiazko PMC member drobia...@apache.org http://tapestry5.de Thiago H. de Paula Figueiredo thiagohp PMC member thiag...@apache.org Daniel Gredler gredler committer gred...@apache.org Daniel Jue djue committer d...@apache.org Robin Komiwes robinkomiwes committer robinkomi...@apache.org http://spreadthesource.com Jesse Kuhnert jkuhnert PMC member jkuhn...@apache.org Richard Lewis-Shell rlewisshell PMC member rlewissh...@apache.org Kevin Menard kmenard committer kmen...@apache.org Marcus Schulte mschulte PMC member mschu...@apache.org Howard M. Lewis Ship hlship PMC chair hls...@apache.org http://howardlewisship.com David Solis dsolis committer dso...@apache.org Ulrich Stärk uli PMC member u...@apache.org Ted Steen tedst committer te...@apache.org Brian Wallace bwallace committer bwall...@apache.org Robert D. Zeigler robertdzeigler committer robertdzeig...@apache.org Training and Support Training on Tapestry and Support is available directly from the source: the Tapestry project committers: Howard Lewis Ship: Provides a multi-day, hands-on workshop on Tapestry, as well as mentoring, support and project work Thiago H. de Paula Figueriredo: Provides training and support on Tapestry and related technologies including Spring and Hibernate Change Notification Preferences View Online | View Changes
[jira] Assigned: (TAP5-1286) Remove Maven APT files for documentation that has moved into the Confluence wiki
[ https://issues.apache.org/jira/browse/TAP5-1286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship reassigned TAP5-1286: -- Assignee: Howard M. Lewis Ship > Remove Maven APT files for documentation that has moved into the Confluence > wiki > > > Key: TAP5-1286 > URL: https://issues.apache.org/jira/browse/TAP5-1286 > Project: Tapestry 5 > Issue Type: Task > Components: documentation >Affects Versions: 5.2.2 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship > > Most of the documentation has been moved into Confluence. It's time to > delete the APT and XDOC format documentation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[CONF] Apache Tapestry > Maven Support FAQ
Maven Support FAQ Page edited by Howard M. Lewis Ship Changes (1) ... then any expansions in _Tapestry templates_ that match against Maven project properties are substituted. If you look at the deployed application you'll see that {{\${name\}}} {{$\{name\}}} is gone, replaced with your project's name! The solution is to update your {{pom.xml}} and ignore any .tml files when ... Full Content Maven Support Why do Maven project names and other details show up in my pages? Tapestry and maven both use the same syntax for dynamic portions of files: the ${...} syntax. When Maven is copying resources from src/main/resources, and when filtering is enabled (which is not the default), then any expansions in Tapestry templates that match against Maven project properties are substituted. If you look at the deployed application you'll see that ${name} is gone, replaced with your project's name! The solution is to update your pom.xml and ignore any .tml files when copying and filtering: pom.xml (partial) Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Maven Support FAQ
Maven Support FAQ Page edited by Howard M. Lewis Ship Changes (2) ... src/main/resources **/*.tml true src/main/resources**/*.tml false {newcode} Full Content Maven Support Why do Maven project names and other details show up in my pages? Tapestry and maven both use the same syntax for dynamic portions of files: the ${...} syntax. When Maven is copying resources from src/main/resources, and when filtering is enabled (which is not the default), then any expansions in Tapestry templates that match against Maven project properties are substituted. If you look at the deployed application you'll see that \${name} is gone, replaced with your project's name! The solution is to update your pom.xml and ignore any .tml files when copying and filtering: pom.xml (partial) Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Maven Support FAQ
Maven Support FAQ Page added by Howard M. Lewis Ship Maven Support Why do Maven project names and other details show up in my pages? Tapestry and maven both use the same syntax for dynamic portions of files: the ${...} syntax. When Maven is copying resources from src/main/resources, and when filtering is enabled (which is not the default), then any expansions in Tapestry templates that match against Maven project properties are substituted. If you look at the deployed application you'll see that \${name} is gone, replaced with your project's name! The solution is to update your pom.xml and ignore any .tml files when copying and filtering: pom.xml (partial) Change Notification Preferences View Online
[CONF] Apache Tapestry > Maven Support FAQ
Maven Support FAQ Page added by Howard M. Lewis Ship Maven Support Why do Maven project names and other details show up in my pages? Tapestry and maven both use the same syntax for dynamic portions of files: the ${...} syntax. When Maven is copying resources from src/main/resources, and when filtering is enabled (which is not the default), then any expansions in Tapestry templates that match against Maven project properties are substituted. If you look at the deployed application you'll see that \${name} is gone, replaced with your project's name! The solution is to update your pom.xml and ignore any .tml files when copying and filtering: pom.xml (partial) Change Notification Preferences View Online
[CONF] Apache Tapestry > Hibernate Support FAQ
Hibernate Support FAQ Page edited by Howard M. Lewis Ship Changes (1) h2. Hibernate Support h3. How do I get Hibernate to startup up when the application starts up, rather than lazily with the first request for the application? ... Full Content Hibernate Support How do I get Hibernate to startup up when the application starts up, rather than lazily with the first request for the application? This was a minor problem in 5.0; by 5.1 it was just a matter of overriding the configuration system tapestry.hibernate-early-startup to "true". Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Hibernate Support FAQ
Hibernate Support FAQ Page added by Howard M. Lewis Ship How do I get Hibernate to startup up when the application starts up, rather than lazily with the first request for the application? This was a minor problem in 5.0; by 5.1 it was just a matter of overriding the configuration system tapestry.hibernate-early-startup to "true". Change Notification Preferences View Online
[CONF] Apache Tapestry > Download Tapestry
Download Tapestry Page edited by Christophe Cordenier Changes (10) h12. Download Tapestry Tapestry releases are available from the Apache Mirrors. Each file is available for download from a mirror. Click any *Download* link below to be directed to the closest available mirror site. ... The source distribution includes all source files, including those for the Maven plugin modules. h23. License and Dependencies Tapestry is distributed under the [Apache License, version 2.0|http://tapestry.apache.org/license.html]. ... *You may need to download some dependencies separately.* h23. Alpha Releases Alpha releases (also known as "preview" releases) vary in stability and are always actively being developed / modified. Look here for most new development activity. h23. Beta Releases Beta releases are expected to be more stable, with the bulk of effort going into fixing bugs rather than introducing new features. h23. Alpha Releases h12. Tapestry 5.2.0 | | Mirrors | Checksum | Signature | ... | tapestry-src 5.2.0 binary (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-src-5.2.0.zip] | [MD5|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.zip.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.zip.asc] | h23. Stable Releases Stable releases should be relatively free of critical bugs and are considered the _safest_ option if stability is a requirement. h12. Tapestry 5.1.0.5 (Stable) Tapestry 5.1.0.5 is the stable release for [Tapestry 5.1|http://tapestry.apache.org/tapestry5.1/]. Tapestry 5.1 addresses some limitations in 5.0 and improves performance and scalability. ... | tapestry-src 5.1.0.5 binary (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-src-5.1.0.5.zip] | [MD5|http://www.apache.org/dist/tapestry/tapestry-src-5.1.0.5.zip.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-src-5.1.0.5.zip.asc] | h12. Tapestry 4.1.6 (Stable) The next generation Tapestry 4 version that improves upon the existing Tapestry 4 series with lots of bug fixes / AJAX support / performance enhancements. ... | 4.1.6 source/docs (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-project-4.1.6-full.zip] | [MD5|http://www.apache.org/dist/tapestry/tapestry-project-4.1.6-full.zip.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-project-4.1.6-full.zip.asc] | h12. Archives Looking for and older version of Tapestry? Try the [archives|http://archive.apache.org/dist/tapestry/]. Full Content Download Tapestry Tapestry releases are available from the Apache Mirrors. Each file is available for download from a mirror. Click any Download link below to be directed to the closest available mirror site. Once you've downloaded a file, you should check it for authenticity. The MD5 link is an MD5 checksum file, used to ensure that the file downloaded properly. The ASC link is a GnuPG (GNU Privacy Guard) detached signature file, which can be authenticated against the file KEYS. This is used to ensure that what you downloaded is what we uploaded. Tapestry releases are distributed as a binary and a source distribution. The binary distribution includes a code JAR for each module, as well as a source JAR for each module (having the Java source available is a huge benefit when working with Tapestry inside an IDE). The binary distribution now also includes third party dependencies (for dependencies with licenses compatible with the Apache Software License). The source distribution includes all source files, including those for the Maven plugin modules. License and Dependencies Tapestry is distributed under the Apache License, version 2.0. Tapestry incorporates additional software from the Apache project. In addition, Tapestry makes use of some non-Apache open source products, including Javassist (Mozilla Public License) and OGNL (OGNL license). You may need to download some dependencies separately. Alpha Releases Alpha releases (also known as "preview" releases) vary in stability and are always actively being developed / modified. Look here for most new development activity. Beta Releases Beta releases are expected to be more stable, with the bulk of effort going into fixing bugs rather than introducing new features. Alpha Releases Tapestry 5.2.0 Mirrors Checksum Signature tapestry-bin 5.2.0 binary (tar.bz2) Download MD5 ASC tapestry-bin 5.2.0 bina
[CONF] Apache Tapestry > Download Tapestry
Download Tapestry Page edited by Christophe Cordenier Changes (2) h1. Download Tapestry Tapestry releases are available from the Apache Mirrors. Each file is available for download from a mirror. Click any *Download* link below to be directed to the closest available mirror site. Once you've downloaded a file, you should check it for authenticity. The *MD5* link is an MD5 checksum file, used to ensure that the file downloaded properly. The *ASC* link is a [GnuPG|http://www.gnupg.org/] (GNU Privacy Guard) detached signature file, which can be authenticated against the file [KEYS|http://www.apache.org/dist/tapestry/KEYS]. This is used to ensure that what you downloaded is what _we_ uploaded. Tapestry releases are distributed as a binary and a source distribution. The binary distribution includes a code JAR for each module, as well as a source JAR for each module (having the Java source available is a huge benefit when working with Tapestry inside an IDE). The binary distribution now also includes third party dependencies (for dependencies with licenses compatible with the Apache Software License). The source distribution includes all source files, including those for the Maven plugin modules. h2. License and Dependencies Tapestry is distributed under the [Apache License, version 2.0|http://tapestry.apache.org/license.html]. Tapestry incorporates additional software from the Apache project. In addition, Tapestry makes use of some non-Apache open source products, including [Javassist|http://www.jboss.com/products/javassist] (Mozilla Public License) and [OGNL|http://www.ognl.org/] ([OGNL license|http://www.ognl.org/copyright.html]). *You may need to download some dependencies separately.* h2. Alpha Releases Alpha releases (also known as "preview" releases) vary in stability and are always actively being developed / modified. Look here for most new development activity. h2. Beta Releases Beta releases are expected to be more stable, with the bulk of effort going into fixing bugs rather than introducing new features. h2. Alpha Releases h1. Tapestry 5.2.0 | | Mirrors | Checksum | Signature | | tapestry-bin 5.2.0 binary (tar.bz2) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.2.0.tar.bz2] | [MD5|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.tar.bz2.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.tar.bz2.asc] | | tapestry-bin 5.2.0 binary (tar.gz) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.2.0.tar.gz] | [MD5|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.tar.gz.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.tar.gz.asc] | | tapestry-bin 5.2.0 binary (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.2.0.zip] | [MD5|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.zip.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-bin-5.2.0.zip.asc] | | tapestry-src 5.2.0 binary (tar.bz2) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-src-5.2.0.tar.bz2] | [MD5|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.tar.bz2.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.tar.bz2.asc] | | tapestry-src 5.2.0 binary (tar.gz) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-src-5.2.0.tar.gz] | [MD5|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.tar.gz.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.tar.gz.asc] | | tapestry-src 5.2.0 binary (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-src-5.2.0.zip] | [MD5|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.zip.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-src-5.2.0.zip.asc] | h2. Stable Releases Stable releases should be relatively free of critical bugs and are considered the _safest_ option if stability is a requirement. h1. Tapestry 5.1.0.5 (Stable) Tapestry 5.1.0.5 is the stable release for [Tapestry 5.1|http://tapestry.apache.org/tapestry5.1/]. Tapestry 5.1 addresses some limitations in 5.0 and improves performance and scalability. | | Mirrors | Checksum | Signature | | tapestry-bin 5.1.0.5 binary (tar.bz2) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.1.0.5.tar.bz2] | [MD5|http://www.apache.org/dist/tapestry/tapestry-bin-5.1.0.5.tar.bz2.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-bin-5.1.0.5.tar.bz2.asc] | | tapestry-bin 5.1.0.5 binary (tar.gz) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.1.0.5.tar.gz] | [MD5|http://www.apache.org/dist/tapestry/tapestry-bin-5.1.0.5.tar.gz.md5] | [ASC|http://www.apache.org/dist/tapestry/tapestry-bin-5.1.0.5.tar.gz.asc] | | tapestry-bin 5.1.0.5 binary (zip) | [Download|http://www.apache.org/dyn/closer.cgi/tapestry/tapestry-bin-5.1.0.5.
[CONF] Apache Tapestry > About
About Page edited by Christophe Cordenier Changes (3) ... | Andreas Andreou | andyhot | PMC member | {align:right}andy...@apache.org{align} | | | Christophe Cordenier | ccordenier | committer | {align:right}ccorden...@apache.org{align} | | | Ben Dotte | bdotte | committer | {align:right}bdo...@apache.org{align} | http://spreadthesource.com | | Igor Drobiazko | drobiazko | PMC member | {align:right}drobia...@apache.org{align} | http://tapestry5.de | | Thiago H. de Paula Figueiredo | thiagohp | PMC member | {align:right}thiag...@apache.org{align} | | | Daniel Gredler | gredler | committer | {align:right}gred...@apache.org{align} | | | Daniel Jue | djue | committer | {align:right}d...@apache.org{align} | | | Robin Komiwes | robinkomiwes | committer | {align:right}robinkomi...@apache.org{align} | http://spreadthesource.com | | Jesse Kuhnert | jkuhnert | PMC member | {align:right}jkuhn...@apache.org{align} | | | Richard Lewis-Shell | rlewisshell | PMC member | {align:right}rlewissh...@apache.org{align} | | ... | Robert D. Zeigler | robertdzeigler | committer | {align:right}robertdzeig...@apache.org{align} | | h2. Contributors h2. Training and Support ... Full Content 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 is released under the Apache Software Licence 2.0 Releases Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. The people behind Tapestry Name ID role email address website Dan Adams dadams committer dad...@apache.org Andreas Andreou andyhot PMC member andy...@apache.org Christophe Cordenier ccordenier committer ccorden...@apache.org Ben Dotte bdotte committer bdo...@apache.org http://spreadthesource.com Igor Drobiazko drobiazko PMC member drobia...@apache.org http://tapestry5.de Thiago H. de Paula Figueiredo thiagohp PMC member thiag...@apache.org Daniel Gredler gredler committer gred...@apache.org Daniel Jue djue committer d...@apache.org Robin Komiwes robinkomiwes committer robinkomi...@apache.org http://spreadthesource.com Jesse Kuhnert jkuhnert PMC member jkuhn...@apache.org Richard Lewis-Shell rlewisshell PMC member rlewissh...@apache.org Kevin Menard kmenard committer kmen...@apache.org Marcus Schulte mschulte PMC member mschu...@apache.org Howard M. Lewis Ship hlship PMC chair hls...@apache.org http://tapestryjava.blogspot.com David Solis dsolis committer dso...@apache.org Ulrich Stärk uli PMC member u...@apache.org Ted Steen tedst committer te...@apache.org Brian Wallace bwallace committer bwall...@apache.org Robert D. Zeigler robertdzeigler committer robertdzeig...@apache.org Training and Support Training on Tapestry and Support is available directly from the source: the Tapestry project committers: Howard Lewis Ship: Provides a multi-day, hands-on workshop on Tapestry, as well as mentoring, support and project work Thiago H. de Paula Figueriredo: Provides training and support on Tapestry and related technologies including Spring and Hibernate Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > About
About Page edited by Christophe Cordenier Changes (2) ... | Dan Adams | dadams | committer | {align:right}dad...@apache.org{align} | | | Andreas Andreou | andyhot | PMC member | {align:right}andy...@apache.org{align} | | | Christophe Cordenier | ccordenier | committer | {align:right}ccorden...@apache.org{align} | http://spreadthesource.com | | Ben Dotte | bdotte | committer | {align:right}bdo...@apache.org{align} | http://spreadthesource.com | | Igor Drobiazko | drobiazko | PMC member | {align:right}drobia...@apache.org{align} | http://tapestry5.de | | Thiago H. de Paula Figueiredo | thiagohp | PMC member | {align:right}thiag...@apache.org{align} | | ... Full Content 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 is released under the Apache Software Licence 2.0 Releases Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. The people behind Tapestry Name ID role email address website Dan Adams dadams committer dad...@apache.org Andreas Andreou andyhot PMC member andy...@apache.org Christophe Cordenier ccordenier committer ccorden...@apache.org http://spreadthesource.com Ben Dotte bdotte committer bdo...@apache.org Igor Drobiazko drobiazko PMC member drobia...@apache.org http://tapestry5.de Thiago H. de Paula Figueiredo thiagohp PMC member thiag...@apache.org Daniel Gredler gredler committer gred...@apache.org Daniel Jue djue committer d...@apache.org Robin Komiwes robinkomiwes committer robinkomi...@apache.org http://spreadthesource.com Jesse Kuhnert jkuhnert PMC member jkuhn...@apache.org Richard Lewis-Shell rlewisshell PMC member rlewissh...@apache.org Kevin Menard kmenard committer kmen...@apache.org Marcus Schulte mschulte PMC member mschu...@apache.org Howard M. Lewis Ship hlship PMC chair hls...@apache.org http://tapestryjava.blogspot.com David Solis dsolis committer dso...@apache.org Ulrich Stärk uli PMC member u...@apache.org Ted Steen tedst committer te...@apache.org Brian Wallace bwallace committer bwall...@apache.org Robert D. Zeigler robertdzeigler committer robertdzeig...@apache.org Training and Support Training on Tapestry and Support is available directly from the source: the Tapestry project committers: Howard Lewis Ship: Provides a multi-day, hands-on workshop on Tapestry, as well as mentoring, support and project work Thiago H. de Paula Figueriredo: Provides training and support on Tapestry and related technologies including Spring and Hibernate Change Notification Preferences View Online | View Changes
[jira] Created: (TAP5-1286) Remove Maven APT files for documentation that has moved into the Confluence wiki
Remove Maven APT files for documentation that has moved into the Confluence wiki Key: TAP5-1286 URL: https://issues.apache.org/jira/browse/TAP5-1286 Project: Tapestry 5 Issue Type: Task Components: documentation Affects Versions: 5.2.2 Reporter: Howard M. Lewis Ship Most of the documentation has been moved into Confluence. It's time to delete the APT and XDOC format documentation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[CONF] Apache Tapestry > Release Notes 5.2.0
Release Notes 5.2.0 Page edited by Howard M. Lewis Ship Changes (1) ... read the notes below carefully. h3. Live Service Reloading Tapestry 5.2.0 extends Tapestry's concept of live reloading of Java code into the service layer. In most cases, service implementations of your application will now live reload, seamlessly. See the [FAQ|Frequently Asked Questions] for some additional notes about live reloading. h3. Pages No Longer Pooled This is a huge change from Tapestry 5.1 to 5.2; Tapestry no longer pools page instances. It creates *one* instance of each page (per supported locale). Tapestry rewrites your component classes so that all mutable state is stored in a per-thread HashMap. This will greatly reduce Tapestry's memory footprint, especially on heavily loaded sites. This change makes it easier to share objects between threads, which is problematic when the objects are not thread-safe. For example: {newcode:title=Valid Component Code (5.1)} @Inject private Locale locale;private final DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);public String getCurrentTimeFormatted() { return format.format(new Date()); } {newcode} In the above code, _under 5.1_, the DateFormat object was not shared between threads, as each thread would operate with a different instance of the containing page. Under 5.2, the final field _will_ be shared across threads, which is problematic as DateFormat is not thread safe. The code should be rewritten as: {newcode:title=Updated for 5.2} @Inject private Locale locale;public String getCurrentTimeFormatted() { DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); return format.format(new Date()); } {newcode} h3. Service Id Injection ... Full Content Tapestry 5.2.0 represents nearly a year of work past the prior stable release, 5.1.0.5. For the most part, the upgrade is quite straight forward, but please read the notes below carefully. Live Service Reloading Tapestry 5.2.0 extends Tapestry's concept of live reloading of Java code into the service layer. In most cases, service implementations of your application will now live reload, seamlessly. See the FAQ for some additional notes about live reloading. Pages No Longer Pooled This is a huge change from Tapestry 5.1 to 5.2; Tapestry no longer pools page instances. It creates one instance of each page (per supported locale). Tapestry rewrites your component classes so that all mutable state is stored in a per-thread HashMap. This will greatly reduce Tapestry's memory footprint, especially on heavily loaded sites. This change makes it easier to share objects between threads, which is problematic when the objects are not thread-safe. For example: Valid Component Code (5.1) In the above code, under 5.1, the DateFormat object was not shared between threads, as each thread would operate with a different instance of the containing page. Under 5.2, the final field will be shared across threads, which is problematic as DateFormat is not thread safe. The code should be rewritten as: Updated for 5.2 Service Id Injection In prior releases of Tapestry, a constructor parameter of type String was assumed to be the service id. In the many cases where these was not the case (such as using the @Value or @Symbol annotation), the parameter needed to be annotated with the @Inject annotation. Starting in 5.2.0, this feature is no longer present (this is a non-backwards compatible change, but one that affects virtually nobody). A parameter of type String will be subject to normal injection; you will likely want to use @Value or @Symbol with it, or you will see an error that "No service implements java.lang.String.". Igor made a change such that a bare String is injected as the service id in some circumstance; it may be decorator methods. This needs to be documented properly. TranslatorSource The configuration type for TranslatorSource has changed in an incompatible way: from an unordered collection to a mapped collection; this is to support overrides of Tapestry's built-in translators. This will break existing module classes that contribute to the TranslatorSource service configuration. Assets There have been some changes to how assets operate in Tapestry 5.2. Virtual folders, used to define root packages for component libraries, may no longer contain slashes. Virtual folders are the pathPrefix property of the LibraryMapping objects that are contributed to the ComponentClassResolver service. Each LibraryMapping is now automatically converted into a matching contribution to the ClasspathAssetAliasManager service. Previously a library author was encouraged to make contributions to bot
[CONF] Apache Tapestry > User Guide
User Guide Page edited by Christophe Cordenier Changes (2) ... h2. Integrate Hibernate * [Configure Hibernate|Hibernate - Core] * [Develop with Hibernate|Hibernate] * [TAPESTRY:Hibernate - Core - Conf] * [TAPESTRY:User Guide] * [TAPESTRY:Statistics] h2. Integrate Spring ... Full Content Hot Features Class Reloading Configuration Configuration URL rewriting HTTPS Localization Response Compression Understand Page Lifecycle Component Rendering Request Processing Type Coercion Develop your pages and components Structure Project Layout Page Navigation Logging Component Classes Component Templates Component Events Component Mixins Component Parameters Templating Content Type and Markup Layout Component CSS DOM Assets Property Expressions Handle persistence Persistent Page Data Persistent State Working with IOC Injection _javascript_ Ajax & _javascript_ Working with Forms Input Validation BeanEditForm Guide Upload files Test Unit testing pages or components Integrate with Selenium test tool Tooling Generate your Component Reference Service Status Integrate Hibernate Hibernate - Core - Conf User Guide Statistics Integrate Spring Inject your spring beans inside Tapestry components Advanced Aliases Environmental Services Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > User Guide
User Guide Page edited by Christophe Cordenier Changes (5) ... * [Input Validation|Input Validation] h3. Advanced T5 components * [BeanEditForm Guide|BeanEditForm Guide] * [Upload files|Upload] h3. Test * [Unit testing pages or components|Unit testing pages or components] * [Integrate with Selenium test tool|Test] h3. Tooling * [Generate your Component Reference|Component Report] * [Service Status|Service Status] h2. Integrate Hibernate * [Configure Hibernate|Hibernate - Core] * [Develop with Hibernate|Hibernate] h2. Integrate Spring * [Inject your spring beans inside Tapestry components|Spring] h2. Advanced ... Full Content Hot Features Class Reloading Configuration Configuration URL rewriting HTTPS Localization Response Compression Understand Page Lifecycle Component Rendering Request Processing Type Coercion Develop your pages and components Structure Project Layout Page Navigation Logging Component Classes Component Templates Component Events Component Mixins Component Parameters Templating Content Type and Markup Layout Component CSS DOM Assets Property Expressions Handle persistence Persistent Page Data Persistent State Working with IOC Injection _javascript_ Ajax & _javascript_ Working with Forms Input Validation BeanEditForm Guide Upload files Test Unit testing pages or components Integrate with Selenium test tool Tooling Generate your Component Reference Service Status Integrate Hibernate Configure Hibernate Develop with Hibernate Integrate Spring Inject your spring beans inside Tapestry components Advanced Aliases Environmental Services Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Release Notes 5.2.0
Release Notes 5.2.0 Page added by Howard M. Lewis Ship Tapestry 5.2.0 represents nearly a year of work past the prior stable release, 5.1.0.5. For the most part, the upgrade is quite straight forward, but please read the notes below carefully. Service Id Injection In prior releases of Tapestry, a constructor parameter of type String was assumed to be the service id. In the many cases where these was not the case (such as using the @Value or @Symbol annotation), the parameter needed to be annotated with the @Inject annotation. Starting in 5.2.0, this feature is no longer present (this is a non-backwards compatible change, but one that affects virtually nobody). A parameter of type String will be subject to normal injection; you will likely want to use @Value or @Symbol with it, or you will see an error that "No service implements java.lang.String.". Igor made a change such that a bare String is injected as the service id in some circumstance; it may be decorator methods. This needs to be documented properly. TranslatorSource The configuration type for TranslatorSource has changed in an incompatible way: from an unordered collection to a mapped collection; this is to support overrides of Tapestry's built-in translators. This will break existing module classes that contribute to the TranslatorSource service configuration. Assets There have been some changes to how assets operate in Tapestry 5.2. Virtual folders, used to define root packages for component libraries, may no longer contain slashes. Virtual folders are the pathPrefix property of the LibraryMapping objects that are contributed to the ComponentClassResolver service. Each LibraryMapping is now automatically converted into a matching contribution to the ClasspathAssetAliasManager service. Previously a library author was encouraged to make contributions to both services. The path prefix of a LibraryMapping is also now prohibited from containing the slash character. It is now quite necessary to configure the application version number: all assets are exposed via a URL that incorporates the application version number; in previous releases, each library could configure its own version number. By implication, changing library versions and nothing else will now require a change to the application version number. ClassTransformation API changes The ClassTransformation API, used to implement component meta-programming, has been rewritten with an eye to making class transformations easier to implement while removing the dependency on the Javassist library. This is of note only to advanced users who have implemented ComponentClassTransformWorkers, which operate on the ClassTransformation API. Much of the existing API has been deprecated and some deprecated methods are now non-functional. The deprecated methods will be removed in Tapestry 5.3. This represents a shift in how the API operates; previously much of the logic in ComponentClassTransformWorkers was built in terms of Javassist: adding new bytecode to existing methods. The new API switches away from this, and now works in terms of adding new fields, initializing those fields using callbacks, providing callbacks for access to fields, and adding advice to methods. Template Parser back to SAX Tapestry no longer uses a StAX parser to parse component templates, it has reverted to using a normal SAX parser. This change reduces the number of dependencies for Tapestry, and is a stepping stone towards compatibility with Google App Engine. Bug [TAP5-266] - In a conflict between a render phase annotation and the naming convention, the explicit annotation should win [TAP5-707] - Yellow highlight remains on updated zone if zone is re-updated too quickly [TAP5-711] - Submit component: using image parameter prevents selected event from being fired [TAP5-714] - Incorrect encoding of single quotes for Ajax requests [TAP5-715] - TypeCoercer.explain incorrectly reports the plan to coerce from primitive types to wrapper types [TAP5-719] - Component LinkSubmit doesn't work [TAP5-728] - When using the @Validate annotation, spaces around the commas that separate contraints cause runtime exceptions [TAP5-734] - Tapestry tutorial documentation refers to old archtype command [TAP5-747] - Property expressions that include method invocations that in turn reference properties result in spurious error about "root" [TAP5-748] - NPE when defining a component using just t:id and no type or @Component annotation [TAP5-749] - The FormFragment and LinkSubmit components create a hidden field whose id ends with ":hidden" [TAP5-750] - Tapestry should not attempt to GZip flash movies (.swf files) [TAP5-755] - URL rewriting documentation contains an example that won't compile due to lack of a return value [TAP5-759]
[CONF] Apache Tapestry > Upload
Upload Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Hibernate - Core
Hibernate - Core Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Hibernate - Core - Conf Change Notification Preferences View Online
[CONF] Apache Tapestry > Annotations
Annotations Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Spring
Spring Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Test
Test Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Component Report
Component Report Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Hibernate
Hibernate Page moved by Christophe Cordenier From: Apache Tapestry > Modules To: Apache Tapestry > User Guide Children moved Statistics Userguide Change Notification Preferences View Online
[CONF] Apache Tapestry > User Guide
User Guide Page edited by Christophe Cordenier Changes (3) h2. Hot Features {children} * [Class Reloading|Class Reloading] h2. Configuration * [Configuration|Configuration] * [URL rewriting|URL rewriting] * [HTTPS|HTTPS] * [Localization|Localization] * [Response Compression|Response Compression] h2. Understand * [Page Lifecycle|Page Lifecycle] * [Component Rendering|Component Rendering] * [Request Processing|Request Processing] * [Type Coercion|Type Coercion] h2. Develop your pages and components h3. Structure * [Project Layout|Project Layout] * [Page Navigation|Page Navigation] * [Logging|Logging] * [Component Classes|Component Classes] * [Component Templates|Component Templates] * [Component Events|Component Events] * [Component Mixins|Component Mixins] * [Component Parameters|Component Parameters] h3. Templating * [Content Type and Markup|Content Type and Markup] * [Layout Component|Layout Component] * [CSS|CSS] * [DOM|DOM] * [Assets|Assets] * [Property Expressions|Property Expressions] h3. Handle persistence * [Persistent Page Data|Persistent Page Data] * [Persistent State|Persistent State] h3. Working with IOC * [Injection|Injection] h3. _javascript_ * [Ajax & _javascript_|Ajax & _javascript_] h3. Working with Forms * [Input Validation|Input Validation] h3. Advanced T5 components * [BeanEditForm Guide|BeanEditForm Guide] h3. Test * [Unit testing pages or components|Unit testing pages or components] h3. Tooling * [Service Status|Service Status] h2. Advanced * [Aliases|Aliases] * [Environmental Services|Environmental Services] Full Content Hot Features Class Reloading Configuration Configuration URL rewriting HTTPS Localization Response Compression Understand Page Lifecycle Component Rendering Request Processing Type Coercion Develop your pages and components Structure Project Layout Page Navigation Logging Component Classes Component Templates Component Events Component Mixins Component Parameters Templating Content Type and Markup Layout Component CSS DOM Assets Property Expressions Handle persistence Persistent Page Data Persistent State Working with IOC Injection _javascript_ Ajax & _javascript_ Working with Forms Input Validation Advanced T5 components BeanEditForm Guide Test Unit testing pages or components Tooling Service Status Advanced Aliases Environmental Services Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Release Notes
Release Notes Page edited by Howard M. Lewis Ship Changes (1) ... * [5.2.1|Release Notes 5.2.1] * [5.2.0|Release Notes 5.2.0] Full Content Release notes, by release: 5.2.1 5.2.0 Change Notification Preferences View Online | View Changes
[CONF] Space Edited: Apache Tapestry (TAPESTRY)
Space Edited : Apache Tapestry Apache Tapestry edited by Ulrich Stärk (Sep 30, 2010). View the home page of the space Edit the home page of the space View a summary of the space Add a new page to the space Name: Apache Tapestry (TAPESTRY) Home Page: Home Created By: Ulrich Stärk (Sep 19, 2006) Description: 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. Visit the official Tapestry website at http://tapestry.apache.org/
[CONF] Apache Tapestry > Home
Home Page moved by Ulrich Stärk From: Apache Tapestry > Index To: Apache Tapestry Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Home
Home Page added by Ulrich Stärk This is the home page of the Apache Tapestry wiki. From here you can go to Index - the entry page for the auto-generated website Documentation - the documentation main page Sandbox - a sandbox for developing new ideas and testing things out Change Notification Preferences View Online
[CONF] Apache Tapestry > test2
test2 Page removed by Ulrich Stärk [ |http://tapestry.apache.org/tapestry5/][ |http://www.apache.org/] Last Published: 06 May 2009 | Version: 5.1.0.5 Tapestry 5 Project Screencasts Tapestry for Struts Developers Download Release Notes Component Reference JavaDocs Nightly Docs Issues FAQ Refcard Howard's Blog Upgrade Notes From Tapestry 5.0 From Tapestry 4 Upgrade Notes (5.0) Release Notes (5.0) Tapestry 5 Modules tapestry5-annotations tapestry-core tapestry-hibernate tapestry-hibernate-core tapestry-ioc tapestry-spring tapestry-test tapestry-upload Tapestry Tutorials Tutorial #1 User Guide Ajax & _javascript_ Aliases Assets BeanEditForm Guide Class Reloading Component Classes Component Events Component Mixins Component Parameters Component Rendering Component Templates Configuration Content Type and Markup CSS DOM Environmental Services HTTPS Injection Input Validation Layout Component Localization Logging Page Lifecycle Page Navigation Persistent Page Data Persistent State Property Expressions Project Layout Request Processing Response Compression Service Status Type Coercion Unit testing pages/components URL rewriting Tapestry Cookbook Introduction Default Parameter Exception Reporting Supporting Informal Parameters Component Libraries Switching Cases Tapestry 5 Maven Support quickstart tapestry-component-report Deployment Notes Glassfish JBoss Jetty Tomcat WebSphere Resources Wiki Wiki HowTos Developer Info Environment Release Checklist Bible Project Documentation Project Information [ |http://maven.apache.org/] 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. New And Of Note Tapestry now uses the Blackbird _javascript_ console. Tapestry now automatically combines multiple _javascript_ libraries into a single request. An Ajax event request may now return a MultiZoneUpdate instance to update multiple zones in the client web browser. Client-side numeric validation is now locale-sensitive. Some significant performance improvements over Tapestry 5.0.18: the time to initially load a page, and the time to render a page have decreased. Tapestry IoC services can now be easily advised as well as decorated (both of these refer to Aspect Oriented Techniques applied to Tapestry IoC services). Tapestry Services can now be injected into Spring Beans, when using the Tapestry/Spring integration library. Tapestry now 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. Ordered and mapped configurations can now have overrides. Property expressions have been improved: You can now invoke methods with parameter
[CONF] Apache Tapestry > Tapestry Home
Tapestry Home Page removed by Ulrich Stärk Quick Links We have no discernible content to be had yet but hopefully there might be something real here soon?
[CONF] Apache Tapestry > Download Tapestry
Download Tapestry Page moved by Ulrich Stärk From: Apache Tapestry > Navigation To: Apache Tapestry > Index Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Getting Started
Getting Started Page moved by Ulrich Stärk From: Apache Tapestry > Navigation To: Apache Tapestry > Index Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > Sandbox
Sandbox Page moved by Ulrich Stärk From: Apache Tapestry > Index To: Apache Tapestry Children moved Tapestry Reference Guide Plan (Draft) Change Notification Preferences View Online
[CONF] Apache Tapestry > About
About Page moved by Ulrich Stärk From: Apache Tapestry > Navigation To: Apache Tapestry > Index Children moved Change Notification Preferences View Online
[CONF] Apache Tapestry > About
About Page edited by Ulrich Stärk Changes (10) 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. 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 is released under the Apache Software Licence 2.0 ... h2. Releases Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. h2. The people behind Tapestry || Name || ID || role || email address || website || | Dan Adams | dadams | committer | {align:right}dad...@apache.org{align} | | | Andreas Andreou | andyhot | PMC member | {align:right}andy...@apache.org{align} | | | Christophe Cordenier | ccordenier | committer | {align:right}ccorden...@apache.org{align} | | | Ben Dotte | bdotte | committer | {align:right}bdo...@apache.org{align} | | | Igor Drobiazko | drobiazko | PMC member | {align:right}drobia...@apache.org{align} | http://tapestry5.de | | Thiago H. de Paula Figueiredo | thiagohp | PMC member | {align:right}thiag...@apache.org{align} | | | Daniel Gredler | gredler | committer | {align:right}gred...@apache.org{align} | | | Daniel Jue | djue | committer | {align:right}d...@apache.org{align} | | | Robin Komiwes | robinkomiwes | committer | {align:right}robinkomi...@apache.org{align} | | | Jesse Kuhnert | jkuhnert | PMC member | {align:right}jkuhn...@apache.org{align} | | | Richard Lewis-Shell | rlewisshell | PMC member | {align:right}rlewissh...@apache.org{align} | | | Kevin Menard | kmenard | committer | {align:right}kmen...@apache.org{align} | | | Marcus Schulte | mschulte | PMC member | {align:right}mschu...@apache.org{align} | | | Howard M. Lewis Ship | hlship | PMC chair | {align:right}hls...@apache.org{align} | http://tapestryjava.blogspot.com | | David Solis | dsolis | committer | {align:right}dso...@apache.org{align} | | | Ulrich Stärk | uli | PMC member | {align:right}...@apache.org{align} | | | Ted Steen | tedst | committer | {align:right}te...@apache.org{align} | | | Brian Wallace | bwallace | committer | {align:right}bwall...@apache.org{align} | | | Robert D. Zeigler | robertdzeigler | committer | {align:right}robertdzeig...@apache.org{align} | | h2. Contributors h2. Training and Support Training on Tapestry and Support is available directly from the source: the Tapestry project committers : Training on Tapestry and Support is available directly from the source: the Tapestry project committers: * [Howard Lewis Ship|http://howardlewisship.com/training.html] : Provides a multi-day, hands-on workshop on Tapestry, as well as mentoring, support and project work * [Thiago H. de Paula Figueriredo|http://www.arsmachina.com.br/services] : Provides training and support on Tapestry and related technologies including Spring and Hibernate * [Thiago H. de Paula Figueriredo|http://www.arsmachina.com.br/services]: Provides training and support on Tapestry and related technologies including Spring and Hibernate Full Content 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 is released under the Apache Software Licence 2.0 Releases Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5. The people behind Tapestry Name ID role email address website Dan Adams dadams committer dad...@apache.org Andreas Andreou andyhot PMC member andy...@apache.org Christophe Cordenier ccordenier committer ccorden...@apache.org Ben Dotte bdotte committer bdo...@apache.org Igor Dro
[CONF] Apache Tapestry > Default Parameter
Default Parameter Page edited by Ulrich Stärk Changes (4) ... Let's say you have a component, {{OutputGadget}}, whose job is to output some information about an entity type, {{Gadget}}. {newcode:JAVA} public class OutputGadget { ... } } {newcode} This can now be used as {{}}, assuming {{currentGadget}} is a property of the container. ... Because this is such a common idiom, it has been made simpler for you. Rather than writing the code above, you can just use the autoconnect attribute of the Parameter annotation. This, effectively, creates the {{defaultGadget()}} method for you. In this case the code of component {{OutputGadget}} can be reduced to: {newcode:JAVA} public class OutputGadget { ... } {newcode} Full Content Default Parameter Many of the components provided with Tapestry share a common behavior: if the component's id matches a property of the container, then some parameter of the component (usually value) defaults to that property. This is desirable, in terms of not having to specify the component's id and then specify the same value as some other parameter. Making this work involves two concepts: default parameter methods (methods that can compute a default value for a parameter), and a service, ComponentDefaultProvider. Let's say you have a component, OutputGadget, whose job is to output some information about an entity type, Gadget. public class OutputGadget { @Property @Parameter(required=true) private Gadget gadget; @Inject private ComponentDefaultProvider defaultProvider; @Inject private ComponentResources resources; Binding defaultGadget() { return defaultProvider.defaultBinding("gadget", resources); } } This can now be used as , assuming currentGadget is a property of the container. If there is no matching property, then the defaultGadget() method will return null, and a runtime exception will be thrown because the gadget parameter is required and not bound. The principal attribute on the Parameter annotation is not needed in the specific case; in some cases, a default for some other parameter may be based on the bound type of another parameter, the principal attribute forces the parameter to be resolved first. In many Tapestry form components, the value parameter is principal, so that the validate and translate parameters can computer defaults, based on the type and annotations bound to the value parameter. autoconnect attribute Because this is such a common idiom, it has been made simpler for you. Rather than writing the code above, you can just use the autoconnect attribute of the Parameter annotation. This, effectively, creates the defaultGadget() method for you. In this case the code of component OutputGadget can be reduced to: public class OutputGadget { @Property @Parameter(required=true, autoconnect = true) private Gadget gadget; } Change Notification Preferences View Online | View Changes
[CONF] Apache Tapestry > Default Parameter
Default Parameter Page edited by Ulrich Stärk Changes (4) ... Let's say you have a component, {{OutputGadget}}, whose job is to output some information about an entity type, {{Gadget}}. {newcode:JAVA} public class OutputGadget { ... } } {newcode} This can now be used as {{}}, assuming {{currentGadget}} is a property of the container. ... Because this is such a common idiom, it has been made simpler for you. Rather than writing the code above, you can just use the autoconnect attribute of the Parameter annotation. This, effectively, creates the {{defaultGadget()}} method for you. In this case the code of component {{OutputGadget}} can be reduced to: {newcode:JAVA} public class OutputGadget { ... } {newcode} Full Content Default Parameter Many of the components provided with Tapestry share a common behavior: if the component's id matches a property of the container, then some parameter of the component (usually value) defaults to that property. This is desirable, in terms of not having to specify the component's id and then specify the same value as some other parameter. Making this work involves two concepts: default parameter methods (methods that can compute a default value for a parameter), and a service, ComponentDefaultProvider. Let's say you have a component, OutputGadget, whose job is to output some information about an entity type, Gadget. This can now be used as , assuming currentGadget is a property of the container. If there is no matching property, then the defaultGadget() method will return null, and a runtime exception will be thrown because the gadget parameter is required and not bound. The principal attribute on the Parameter annotation is not needed in the specific case; in some cases, a default for some other parameter may be based on the bound type of another parameter, the principal attribute forces the parameter to be resolved first. In many Tapestry form components, the value parameter is principal, so that the validate and translate parameters can computer defaults, based on the type and annotations bound to the value parameter. autoconnect attribute Because this is such a common idiom, it has been made simpler for you. Rather than writing the code above, you can just use the autoconnect attribute of the Parameter annotation. This, effectively, creates the defaultGadget() method for you. In this case the code of component OutputGadget can be reduced to: Change Notification Preferences View Online | View Changes