svn commit: r1086481 [1/2] - in /websites/production/tapestry/content: ./ cache/
Author: buildbot Date: Sat May 18 03:12:22 2024 New Revision: 1086481 Log: Production update by buildbot for tapestry Modified: websites/production/tapestry/content/beaneditform-faq.html websites/production/tapestry/content/cache/main.pageCache websites/production/tapestry/content/component-events-faq.html websites/production/tapestry/content/component-parameters.html websites/production/tapestry/content/forms-and-validation.html websites/production/tapestry/content/injection.html websites/production/tapestry/content/javascript-faq.html websites/production/tapestry/content/page-navigation.html websites/production/tapestry/content/release-notes-50.html websites/production/tapestry/content/release-notes-51.html websites/production/tapestry/content/release-notes-52.html websites/production/tapestry/content/release-notes-53.html websites/production/tapestry/content/release-upgrade-faq.html websites/production/tapestry/content/request-processing-faq.html websites/production/tapestry/content/security-faq.html websites/production/tapestry/content/session-storage.html websites/production/tapestry/content/templating-and-markup-faq.html Modified: websites/production/tapestry/content/beaneditform-faq.html == --- websites/production/tapestry/content/beaneditform-faq.html (original) +++ websites/production/tapestry/content/beaneditform-faq.html Sat May 18 03:12:22 2024 @@ -144,11 +144,11 @@ BeanEditFormMain Article: BeanEditForm GuideContents/**/ +/*]]>*/ Why do I get exceptions about instantiating a bean when using BeanEditForm?What's the difference between BeanEditor and BeanEditForm?How do I customize the layout of the BeanEditForm? Why do I get exceptions about instantiating a bean when using BeanEditForm?When you render a BeanEditForm, or when the rendered form is submitted, Tapestry must instantiate an instance of the object to be edited. This occurs when the BeanEditForm's object parameter is bound to null: Tapestry instantiates an instance of the property type so that the BeanEditForm has an object to read default values from, or to push submitted values into.By default, this uses the standard injection mechanism, which means that Tapestry will identify the public constructor with the most parameters, and attempt to find objects and other objects for each constructor parameter.There's two ways to fine tune this so you don't get errors:Place an @http://tapestry.apache.org/current/apidocs/org/apache /tapestry5/ioc/annotations/Inject.html">Inject annotation on the correct constructor to use (often, the constructor with no parameters). public class MyBean { Modified: websites/production/tapestry/content/cache/main.pageCache == Binary files - no diff available. Modified: websites/production/tapestry/content/component-events-faq.html == --- websites/production/tapestry/content/component-events-faq.html (original) +++ websites/production/tapestry/content/component-events-faq.html Sat May 18 03:12:22 2024 @@ -144,11 +144,11 @@ Component EventsMain Article: Component EventsContents/**/ +/*]]>*/ Why does Tapestry send a redirect after a form is submitted?I specified a zone in my ActionLink/EventLink, so why doesn't my event fire via ajax (request.isXHR() is false)? Why does Tapestry send a redirect after a form is submitted?This is an extension of the http://en.wikipedia.org/wiki/Post/Redirect/Get"; rel="nofollow">Post/Redirect/Get approach. It ensures that after an operation that updates server-side state, such as a form submission, if the user resubmits the resulting page, the operation is not performed a second time; instead just the results of the operation, reflecting the changed server-side state, is re-rendered.This has the unwanted requirement that any data needed to render the response must persist between the event request (the form submission) and the render request; this often means that fields must be annotated with @http://tape
svn commit: r1086481 [2/2] - in /websites/production/tapestry/content: ./ cache/
Modified: websites/production/tapestry/content/release-notes-53.html == --- websites/production/tapestry/content/release-notes-53.html (original) +++ websites/production/tapestry/content/release-notes-53.html Sat May 18 03:12:22 2024 @@ -144,11 +144,11 @@ This is the consolidated list of changes between Tapestry versions 5.2 and 5.3. To upgrade from 5.2 to 5.3, most users who are not using deprecated features will be able to just update the Maven dependency in their POM file (or download the new JAR file) and the new version will just work. However, please read carefully below before upgrading, and also review the How to Upgrade instructions.Contents/**/ +/*]]>*/ Breaking ChangesNew FeaturesSub-tasks CompletedBugs FixedImprovements MadeNew Features ImplementedTasks Completed Breaking ChangesTapestry now depends on Servlet API version 2.5 (prior releases worked with 2.4).Tapestry no longer supports the ability to inject the component id into a String field. This was rarely (if ever) used functionality that caused unwanted conflicts elsewhere. When a component needs to know its component id, it may inject the http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ComponentResources.html";>ComponentResources object, and invoke getCompleteId().Tapestry templates without a are treated a bit differently in Tapestry 5.3; they are treated as if they have the HTML5 doctype (). See further notes about component templates.Many classes and interfaces that were deprecated in prior releases of Tapestry have been removed in Tapestry 5.3. See https://issues.apache.org/jira/browse/TAP5-1432";>the full list. As always, you should use your IDE to find and replace all deprecated items before you upgrade. The following are the most significant of these:@IncludeJavaScriptLibrary and @IncludeStylesheet annotations (replaced by @http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/Import.html";>Import)@ApplicationState annotation (replaced with @http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/SessionState.html";>SessionState)"validateForm" event triggered by Form component (replaced with "validate" event)Code and constants related to page poolingIn addition, some of the abstract base classes used with the tapestry-func library have changed into interfaces; you will want to recompile, but may also need to adjust your code, depending on your compiler settings and use of the standard Java @Override annotation.Because of the upgrade to Prototype 1.7, existing JavaScript that uses value.toJSON() may break; replace with Object.toJSON(value).Some number of interfaces and APIs in Tapestry 5.3 will be removed in Tapestry 5.4 or later. These include:The http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/RenderSupport.html";>RenderSupport environmental (replaced with the http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport environmental)The http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html";>MultiZoneUpdate object, replaced with http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/ajax/AjaxR esponseRenderer.html">AjaxResponseRendererClassFactory service and ClassFab interface (replaced with the http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory service and http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/plastic/PlasticClass.html";>PlasticClass interface)The "suppress redirects" functionality, which allows component event requests to respond directly with HTML, as in Tapestry 4.New FeaturesUnderscore.jsTapestry now bundles http://underscorejs.org/"; rel="nofollow">Underscore.js, a useful library for expressive functional programming in the browser. It is used in no conflict mode, made available as the T5._ object.User AlertsTapestry now has a central mechanism for handling user alerts; this includes the AlertManager service and the Alerts component. Just add an Alerts component to your application's standard layout component and Tapestry takes care of the rest. Alerts can be added during both traditional and Ajax requests, and may be transient (displayed for a few seconds), normal, or sticky (persist until the user expressly dismisses them). Alerts support three severities: info, warn(ing) and error; the look and feel can be customized by overriding Tape
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847307#comment-17847307 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-javax-java-17-freestyle #15 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-javax-java-17-freestyle/15/]) TAP5-2779: multiple classloader fixes (thiago: rev 70438950cf5c4aee41dfc6cdc9e1e7851df18520) * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847288#comment-17847288 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-trunk-freestyle #238 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-trunk-freestyle/238/]) TAP5-2779: multiple classloader fixes (thiago: rev 199795a8d326fc13562f7d4d74e8ebdbc163bf00) * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847287#comment-17847287 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-java-17-freestyle #104 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-java-17-freestyle/104/]) TAP5-2779: multiple classloader fixes (thiago: rev 199795a8d326fc13562f7d4d74e8ebdbc163bf00) * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847284#comment-17847284 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-javax-java-9-freestyle #13 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-javax-java-9-freestyle/13/]) TAP5-2779: multiple classloader fixes (thiago: rev 70438950cf5c4aee41dfc6cdc9e1e7851df18520) * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847282#comment-17847282 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-javax-java-11-freestyle #17 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-javax-java-11-freestyle/17/]) TAP5-2779: multiple classloader fixes (thiago: rev 70438950cf5c4aee41dfc6cdc9e1e7851df18520) * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847281#comment-17847281 ] Hudson commented on TAP5-2779: -- FAILURE: Integrated in Jenkins build Tapestry » tapestry-javax-java-8-freestyle #15 (See [https://ci-builds.apache.org/job/Tapestry/job/tapestry-javax-java-8-freestyle/15/]) TAP5-2779: multiple classloader fixes (thiago: rev 70438950cf5c4aee41dfc6cdc9e1e7851df18520) * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java * (edit) tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/components/SubclassWithImport.tml * (add) plastic/src/test/java/org/apache/tapestry5/plastic/test_/Enumeration.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/PlasticUtilsTest.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObjectSuperclass.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java * (edit) tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SuperclassWithImport.java * (edit) plastic/src/test/java/org/apache/tapestry5/plastic/test/PlasticUtilsTestObject.java * (edit) plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java * (edit) tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
(tapestry-5) branch javax updated: TAP5-2779: multiple classloader fixes
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/javax by this push: new 70438950c TAP5-2779: multiple classloader fixes 70438950c is described below commit 70438950cf5c4aee41dfc6cdc9e1e7851df18520 Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 17 09:42:21 2024 -0300 TAP5-2779: multiple classloader fixes --- .../org/apache/tapestry5/plastic/PlasticUtils.java | 81 - .../tapestry5/plastic/PropertyValueProvider.java | 38 +++- .../apache/tapestry5/plastic/PlasticUtilsTest.java | 37 +++- .../plastic/test/PlasticUtilsTestObject.java | 17 +- .../test/PlasticUtilsTestObjectSuperclass.java | 2 + .../Enumeration.java} | 27 +-- .../services/ComponentInstantiatorSourceImpl.java | 2 +- .../internal/services/PageSourceImpl.java | 21 ++- .../tapestry5/internal/transform/CachedWorker.java | 198 +++-- .../app1/components/SubclassWithImport.java| 20 ++- .../app1/components/SuperclassWithImport.java | 33 +++- .../app1/components/SubclassWithImport.tml | 3 + 12 files changed, 410 insertions(+), 69 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java index 8dd3c76f1..d36993b1d 100644 --- a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java @@ -25,6 +25,10 @@ import org.apache.tapestry5.internal.plastic.PrimitiveType; */ public class PlasticUtils { +private static final String SETTER_METHOD_NAME = "__propertyValueProvider__set"; + +private static final String GETTER_METHOD_NAME = "__propertyValueProvider__get"; + /** * The {@code toString()} method inherited from Object. */ @@ -37,14 +41,17 @@ public class PlasticUtils private static final AtomicLong UID_GENERATOR = new AtomicLong(System.nanoTime()); -private static final MethodDescription PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION; +private static final MethodDescription PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION; + +private static final MethodDescription PROPERTY_VALUE_PROVIDER_SETTER_METHOD_DESCRIPTION; private static final MethodDescription FIELD_VALUE_PROVIDER_METHOD_DESCRIPTION; static { try { -PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod("__propertyValueProvider__get", String.class)); +PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod(GETTER_METHOD_NAME, String.class)); +PROPERTY_VALUE_PROVIDER_SETTER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod(SETTER_METHOD_NAME, String.class, Object.class)); FIELD_VALUE_PROVIDER_METHOD_DESCRIPTION = new MethodDescription(FieldValueProvider.class.getMethod("__fieldValueProvider__get", String.class)); } catch (Exception e) { throw new ExceptionInInitializerError(e); @@ -250,7 +257,7 @@ public class PlasticUtils final Set methods = plasticClass.introduceInterface(PropertyValueProvider.class); -final InstructionBuilderCallback callback = (builder) -> { +final InstructionBuilderCallback getterCallback = (builder) -> { for (FieldInfo field : fieldInfos) { @@ -273,6 +280,9 @@ public class PlasticUtils } +// Field/property not found, so let's try the superclass in case +// it also implement + builder.loadThis(); builder.instanceOf(PropertyValueProvider.class); @@ -281,31 +291,86 @@ public class PlasticUtils builder.loadArgument(0); ifBuilder.invokeSpecial( plasticClass.getSuperClassName(), -PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION); +PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION); ifBuilder.returnResult(); }); +// Giving up + +builder.throwException(RuntimeException.class, "Property not found or not supported"); + +}; + +final InstructionBuilderCallback setterCallback = (builder) -> { + +for (FieldInfo field : fieldInfos) +{ +builder.loadArgument(0); +builder.loadConstant(field.name); +builder.invokeVirtual(String.class.getName(), "boolean", "equals", Obje
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847273#comment-17847273 ] ASF subversion and git services commented on TAP5-2779: --- Commit 70438950cf5c4aee41dfc6cdc9e1e7851df18520 in tapestry-5's branch refs/heads/javax from Thiago H. de Paula Figueiredo [ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=70438950c ] TAP5-2779: multiple classloader fixes > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TAP5-2779) Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature
[ https://issues.apache.org/jira/browse/TAP5-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847271#comment-17847271 ] ASF subversion and git services commented on TAP5-2779: --- Commit 199795a8d326fc13562f7d4d74e8ebdbc163bf00 in tapestry-5's branch refs/heads/master from Thiago H. de Paula Figueiredo [ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=199795a8d ] TAP5-2779: multiple classloader fixes > Tapestry 5.8.3 to 5.8.7 issues caused by the multiple classloader feature > - > > Key: TAP5-2779 > URL: https://issues.apache.org/jira/browse/TAP5-2779 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic, tapestry-core >Affects Versions: 5.8.3, 5.8.4, 5.8.6, 5.8.7 >Reporter: Thiago Henrique De Paula Figueiredo >Assignee: Thiago Henrique De Paula Figueiredo >Priority: Major > > TAP5-2742 -- This message was sent by Atlassian Jira (v8.20.10#820010)
(tapestry-5) branch master updated: TAP5-2779: multiple classloader fixes
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/master by this push: new 199795a8d TAP5-2779: multiple classloader fixes 199795a8d is described below commit 199795a8d326fc13562f7d4d74e8ebdbc163bf00 Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 17 09:42:21 2024 -0300 TAP5-2779: multiple classloader fixes --- .../org/apache/tapestry5/plastic/PlasticUtils.java | 81 - .../tapestry5/plastic/PropertyValueProvider.java | 38 +++- .../apache/tapestry5/plastic/PlasticUtilsTest.java | 37 +++- .../plastic/test/PlasticUtilsTestObject.java | 17 +- .../test/PlasticUtilsTestObjectSuperclass.java | 2 + .../Enumeration.java} | 27 +-- .../services/ComponentInstantiatorSourceImpl.java | 2 +- .../internal/services/PageSourceImpl.java | 21 ++- .../tapestry5/internal/transform/CachedWorker.java | 198 +++-- .../app1/components/SubclassWithImport.java| 20 ++- .../app1/components/SuperclassWithImport.java | 33 +++- .../app1/components/SubclassWithImport.tml | 3 + 12 files changed, 410 insertions(+), 69 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java index 8dd3c76f1..d36993b1d 100644 --- a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticUtils.java @@ -25,6 +25,10 @@ import org.apache.tapestry5.internal.plastic.PrimitiveType; */ public class PlasticUtils { +private static final String SETTER_METHOD_NAME = "__propertyValueProvider__set"; + +private static final String GETTER_METHOD_NAME = "__propertyValueProvider__get"; + /** * The {@code toString()} method inherited from Object. */ @@ -37,14 +41,17 @@ public class PlasticUtils private static final AtomicLong UID_GENERATOR = new AtomicLong(System.nanoTime()); -private static final MethodDescription PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION; +private static final MethodDescription PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION; + +private static final MethodDescription PROPERTY_VALUE_PROVIDER_SETTER_METHOD_DESCRIPTION; private static final MethodDescription FIELD_VALUE_PROVIDER_METHOD_DESCRIPTION; static { try { -PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod("__propertyValueProvider__get", String.class)); +PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod(GETTER_METHOD_NAME, String.class)); +PROPERTY_VALUE_PROVIDER_SETTER_METHOD_DESCRIPTION = new MethodDescription(PropertyValueProvider.class.getMethod(SETTER_METHOD_NAME, String.class, Object.class)); FIELD_VALUE_PROVIDER_METHOD_DESCRIPTION = new MethodDescription(FieldValueProvider.class.getMethod("__fieldValueProvider__get", String.class)); } catch (Exception e) { throw new ExceptionInInitializerError(e); @@ -250,7 +257,7 @@ public class PlasticUtils final Set methods = plasticClass.introduceInterface(PropertyValueProvider.class); -final InstructionBuilderCallback callback = (builder) -> { +final InstructionBuilderCallback getterCallback = (builder) -> { for (FieldInfo field : fieldInfos) { @@ -273,6 +280,9 @@ public class PlasticUtils } +// Field/property not found, so let's try the superclass in case +// it also implement + builder.loadThis(); builder.instanceOf(PropertyValueProvider.class); @@ -281,31 +291,86 @@ public class PlasticUtils builder.loadArgument(0); ifBuilder.invokeSpecial( plasticClass.getSuperClassName(), -PROPERTY_VALUE_PROVIDER_METHOD_DESCRIPTION); +PROPERTY_VALUE_PROVIDER_GETTER_METHOD_DESCRIPTION); ifBuilder.returnResult(); }); +// Giving up + +builder.throwException(RuntimeException.class, "Property not found or not supported"); + +}; + +final InstructionBuilderCallback setterCallback = (builder) -> { + +for (FieldInfo field : fieldInfos) +{ +builder.loadArgument(0); +builder.loadConstant(field.name); +builder.invokeVirtual(String.class.getName(), "boolean", "equals", Ob