(tapestry-5) tag 5.9.0-preview-2-javax created (now 8ab5a4fe1)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.9.0-preview-2-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 8ab5a4fe1 (commit) No new revisions were added by this update.
(tapestry-5) tag 5.9.0-preview-2 created (now 57e9217c5)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.9.0-preview-2 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 57e9217c5 (commit) No new revisions were added by this update.
(tapestry-5) branch javax updated: TAP5-2785: suffixing more jakarta.* artifacts
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 0b4ad3845 TAP5-2785: suffixing more jakarta.* artifacts 0b4ad3845 is described below commit 0b4ad38458060c0b787a494319a0f278d9eeec29 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Sep 8 18:16:56 2024 -0300 TAP5-2785: suffixing more jakarta.* artifacts --- build.gradle | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7deeb2676..e7a3d0079 100755 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,11 @@ def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", "tapestry-runner", "tapestry-spring", "tapestry-spring", "tapestry-kaptcha", "tapestry-openapi-viewer", "tapestry-upload", "tapestry-jmx", "tapestry-jpa", "tapestry-kaptcha", "tapestry-openapi-viewer", -"tapestry-rest-jackson", "tapestry-webresources"] +"tapestry-rest-jackson", "tapestry-webresources", "tapestry-cdi", +"tapestry-ioc", "tapestry-ioc-jcache", "tapestry-jmx", "tapestry-spock", +"tapestry-clojure", "tapestry-hibernate", "tapestry-hibernate-core", +"tapestry-ioc-junit", "tapestry-latest-java-tests", "tapestry-mongodb", +"tapestry-spock"] ext.continuousIntegrationBuild = Boolean.getBoolean("ci")
(tapestry-5) branch master updated: TAP5-2787: avoiding infinite loop in PageSourceImpl
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 24c5fe9b6 TAP5-2787: avoiding infinite loop in PageSourceImpl 24c5fe9b6 is described below commit 24c5fe9b6ee78816edf6c22b38879c370074efb6 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 31 12:02:50 2024 -0300 TAP5-2787: avoiding infinite loop in PageSourceImpl when multiple classloader mode on --- .../org/apache/tapestry5/internal/services/PageSourceImpl.java | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java index 38ab835fd..c4633cc29 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java @@ -113,6 +113,9 @@ public class PageSourceImpl implements PageSource private final static ThreadLocal CURRENT_PAGE = ThreadLocal.withInitial(() -> null); + +private final static ThreadLocal> CALL_STACK = +ThreadLocal.withInitial(HashSet::new); public PageSourceImpl(PageLoader pageLoader, ComponentRequestSelectorAnalyzer selectorAnalyzer, ComponentDependencyRegistry componentDependencyRegistry, @@ -194,11 +197,13 @@ public class PageSourceImpl implements PageSource // Avoiding problems in PlasticClassPool.createTransformation() // when the class being loaded has a page superclass final List pageDependencies = getPageDependencies(className); +CALL_STACK.get().add(className); for (String dependencyClassName : pageDependencies) { // Avoiding infinite recursion caused by circular dependencies -if (!alreadyProcessed.contains(dependencyClassName)) +if (!alreadyProcessed.contains(dependencyClassName) && +!CALL_STACK.get().contains(className)) { alreadyProcessed.add(dependencyClassName);
(tapestry-5) branch javax updated: TAP5-2787: avoiding infinite loop in PageSourceImpl
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 230114044 TAP5-2787: avoiding infinite loop in PageSourceImpl 230114044 is described below commit 230114044007f2305e69e380c1d61af8f1eb69ec Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 31 12:02:50 2024 -0300 TAP5-2787: avoiding infinite loop in PageSourceImpl when multiple classloader mode on --- .../org/apache/tapestry5/internal/services/PageSourceImpl.java | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java index 38ab835fd..c4633cc29 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java @@ -113,6 +113,9 @@ public class PageSourceImpl implements PageSource private final static ThreadLocal CURRENT_PAGE = ThreadLocal.withInitial(() -> null); + +private final static ThreadLocal> CALL_STACK = +ThreadLocal.withInitial(HashSet::new); public PageSourceImpl(PageLoader pageLoader, ComponentRequestSelectorAnalyzer selectorAnalyzer, ComponentDependencyRegistry componentDependencyRegistry, @@ -194,11 +197,13 @@ public class PageSourceImpl implements PageSource // Avoiding problems in PlasticClassPool.createTransformation() // when the class being loaded has a page superclass final List pageDependencies = getPageDependencies(className); +CALL_STACK.get().add(className); for (String dependencyClassName : pageDependencies) { // Avoiding infinite recursion caused by circular dependencies -if (!alreadyProcessed.contains(dependencyClassName)) +if (!alreadyProcessed.contains(dependencyClassName) && +!CALL_STACK.get().contains(className)) { alreadyProcessed.add(dependencyClassName);
(tapestry-5) branch javax updated: Bumping version to 5.9.0-preview-2 after 5.9.0-preview release
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 187ff37e9 Bumping version to 5.9.0-preview-2 after 5.9.0-preview release 187ff37e9 is described below commit 187ff37e9e95b14a3e677c2020a2893b6c2735b6 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 31 10:46:05 2024 -0300 Bumping version to 5.9.0-preview-2 after 5.9.0-preview release --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d93f2e8d4..7deeb2676 100755 --- a/build.gradle +++ b/build.gradle @@ -50,7 +50,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.9.0-preview" +def major = "5.9.0-preview-2" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) branch master updated: Bumping version to 5.9.0-preview-2 after 5.9.0-preview release
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 1bd22b065 Bumping version to 5.9.0-preview-2 after 5.9.0-preview release 1bd22b065 is described below commit 1bd22b0656e0c7c68ac373bbe1948f4aa208b5ac Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 31 10:46:05 2024 -0300 Bumping version to 5.9.0-preview-2 after 5.9.0-preview release --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 109ec2328..248295d2d 100755 --- a/build.gradle +++ b/build.gradle @@ -50,7 +50,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.9.0-preview" +def major = "5.9.0-preview-2" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) branch javax updated: TAP5-2785: suffixing more jakarta.servlet artifacts
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 531a18b00 TAP5-2785: suffixing more jakarta.servlet artifacts 531a18b00 is described below commit 531a18b00f080082262e6d07a4ee8d888a92e3cd Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 25 11:04:17 2024 -0300 TAP5-2785: suffixing more jakarta.servlet artifacts --- build.gradle | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8efdb6c90..d93f2e8d4 100755 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,10 @@ def artifactSuffix = "" // Artifacts that have both an unsuffixed artifact from the javax branch // and a suffixed one from the master branch def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", -"tapestry-runner", "tapestry-spring"] +"tapestry-runner", "tapestry-spring", "tapestry-spring", "tapestry-kaptcha", +"tapestry-openapi-viewer", "tapestry-upload", "tapestry-jmx", +"tapestry-jpa", "tapestry-kaptcha", "tapestry-openapi-viewer", +"tapestry-rest-jackson", "tapestry-webresources"] ext.continuousIntegrationBuild = Boolean.getBoolean("ci")
(tapestry-5) branch master updated: TAP5-2785: suffixing more jakarta.servlet artifacts
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 9b0e1ef68 TAP5-2785: suffixing more jakarta.servlet artifacts 9b0e1ef68 is described below commit 9b0e1ef687f40006a4842d9d0171715e6e2adc5c Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 25 11:04:17 2024 -0300 TAP5-2785: suffixing more jakarta.servlet artifacts --- build.gradle | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 934dfacf0..109ec2328 100755 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,10 @@ def artifactSuffix = "-jakarta" // Artifacts that have both an unsuffixed artifact from the javax branch // and a suffixed one from the master branch def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", -"tapestry-runner", "tapestry-spring"] +"tapestry-runner", "tapestry-spring", "tapestry-spring", "tapestry-kaptcha", +"tapestry-openapi-viewer", "tapestry-upload", "tapestry-jmx", +"tapestry-jpa", "tapestry-kaptcha", "tapestry-openapi-viewer", +"tapestry-rest-jackson", "tapestry-webresources"] ext.continuousIntegrationBuild = Boolean.getBoolean("ci")
(tapestry-5) branch master updated: TAP5-2786: fixing broken test
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 8e8d12dee TAP5-2786: fixing broken test 8e8d12dee is described below commit 8e8d12dee2819c7472fa3c9dd857071e59f39e5e Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 24 17:38:44 2024 -0300 TAP5-2786: fixing broken test --- .../tapestry5/internal/transform/PropertyWorker.java | 18 -- .../org/apache/tapestry5/modules/TapestryModule.java | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java index 05677467c..74327c626 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java @@ -1,4 +1,4 @@ -// Copyright 2008, 2010, 2011 The Apache Software Foundation +// Copyright 2008, 2010, 2011, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,9 @@ package org.apache.tapestry5.internal.transform; +import org.apache.tapestry5.SymbolConstants; import org.apache.tapestry5.annotations.Property; +import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.model.MutableComponentModel; import org.apache.tapestry5.plastic.MethodAlreadyExistsException; import org.apache.tapestry5.plastic.PlasticClass; @@ -32,6 +34,14 @@ import org.apache.tapestry5.services.transform.TransformationSupport; */ public class PropertyWorker implements ComponentClassTransformWorker2 { + +final private boolean multipleClassloaders; + +public PropertyWorker(@Symbol(SymbolConstants.MULTIPLE_CLASSLOADERS) final boolean multipleClassloaders) +{ +super(); +this.multipleClassloaders = multipleClassloaders; +} public void transform(PlasticClass plasticClass, TransformationSupport support, MutableComponentModel model) { @@ -44,7 +54,11 @@ public class PropertyWorker implements ComponentClassTransformWorker2 catch (MethodAlreadyExistsException e) { // Method was already created somewhere else, so -// nothing to do here +// nothing to do here +if (!multipleClassloaders) +{ +throw e; +} } } } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java index b5a2cf557..e3c47e86f 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java @@ -687,7 +687,7 @@ public final class TapestryModule @Symbol(SymbolConstants.PRODUCTION_MODE) boolean productionMode, @Symbol(SymbolConstants.MULTIPLE_CLASSLOADERS) boolean multipleClassloaders) { -configuration.add("Property", new PropertyWorker()); +configuration.add("Property", new PropertyWorker(multipleClassloaders)); // Order this one pretty early:
(tapestry-5) branch javax updated: TAP5-2786: fixing broken test
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 e3e4944e5 TAP5-2786: fixing broken test e3e4944e5 is described below commit e3e4944e5675646bd6bb6a8e290977b88d63ef26 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 24 17:38:44 2024 -0300 TAP5-2786: fixing broken test --- .../tapestry5/internal/transform/PropertyWorker.java | 18 -- .../org/apache/tapestry5/modules/TapestryModule.java | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java index 05677467c..74327c626 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java @@ -1,4 +1,4 @@ -// Copyright 2008, 2010, 2011 The Apache Software Foundation +// Copyright 2008, 2010, 2011, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,9 @@ package org.apache.tapestry5.internal.transform; +import org.apache.tapestry5.SymbolConstants; import org.apache.tapestry5.annotations.Property; +import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.model.MutableComponentModel; import org.apache.tapestry5.plastic.MethodAlreadyExistsException; import org.apache.tapestry5.plastic.PlasticClass; @@ -32,6 +34,14 @@ import org.apache.tapestry5.services.transform.TransformationSupport; */ public class PropertyWorker implements ComponentClassTransformWorker2 { + +final private boolean multipleClassloaders; + +public PropertyWorker(@Symbol(SymbolConstants.MULTIPLE_CLASSLOADERS) final boolean multipleClassloaders) +{ +super(); +this.multipleClassloaders = multipleClassloaders; +} public void transform(PlasticClass plasticClass, TransformationSupport support, MutableComponentModel model) { @@ -44,7 +54,11 @@ public class PropertyWorker implements ComponentClassTransformWorker2 catch (MethodAlreadyExistsException e) { // Method was already created somewhere else, so -// nothing to do here +// nothing to do here +if (!multipleClassloaders) +{ +throw e; +} } } } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java index b5a2cf557..e3c47e86f 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java @@ -687,7 +687,7 @@ public final class TapestryModule @Symbol(SymbolConstants.PRODUCTION_MODE) boolean productionMode, @Symbol(SymbolConstants.MULTIPLE_CLASSLOADERS) boolean multipleClassloaders) { -configuration.add("Property", new PropertyWorker()); +configuration.add("Property", new PropertyWorker(multipleClassloaders)); // Order this one pretty early:
(tapestry-5) branch master updated: TAP5-2786: don't override final method in subclass
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 6661642ca TAP5-2786: don't override final method in subclass 6661642ca is described below commit 6661642ca1d662bb084d5addb6dae082ae830898 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 24 15:57:24 2024 -0300 TAP5-2786: don't override final method in subclass when in multiple classloader mode --- .../internal/plastic/PlasticFieldImpl.java | 2 +- .../plastic/MethodAlreadyExistsException.java | 35 .../tapestry5/internal/transform/CachedWorker.java | 14 ++- .../internal/transform/PropertyWorker.java | 11 - .../components/SubclassWithFinalCachedMethod.java | 36 + .../SuperclassWithFinalCachedMethod.java | 47 ++ .../pages/SubclassWithFinalCachedMethodDemo.java | 19 + .../components/SuperclassWithFinalCachedMethod.tml | 12 ++ .../pages/SubclassWithFinalCachedMethodDemo.tml| 10 + 9 files changed, 183 insertions(+), 3 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java index d490750d6..8b1fe9310 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java @@ -360,7 +360,7 @@ class PlasticFieldImpl extends PlasticMember implements PlasticField, Comparable if (plasticClass.inheritanceData.isImplemented(name, desc)) { -throw new IllegalArgumentException(String.format( +throw new MethodAlreadyExistsException(String.format( "Unable to create new accessor method %s on class %s as the method is already implemented.", description.toString(), plasticClass.className)); } diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java new file mode 100644 index 0..4f434ac8f --- /dev/null +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java @@ -0,0 +1,35 @@ +// Copyright 2024 The Apache Software Foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.apache.tapestry5.plastic; + +/** + * Exception raised when there's an attempt to create a method which + * already exists in a class. + * + * This extends {@linkplain IllegalArgumentException} for backward compatibility. + * + * @since 5.9.0 + */ +public class MethodAlreadyExistsException extends IllegalArgumentException +{ + +private static final long serialVersionUID = 1L; + +public MethodAlreadyExistsException(String message) +{ +super(message); +} + +} diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java index e5848dcd3..045188d09 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java @@ -36,6 +36,7 @@ import org.apache.tapestry5.services.TransformConstants; import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2; import org.apache.tapestry5.services.transform.TransformationSupport; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -219,7 +220,11 @@ public class CachedWorker implements ComponentClassTransformWorker2 for (int i = 0; i < array.size(); i++) { final JSONObject jsonObject = array.getJSONObject(i); -methods.add(toPlasticMethod(jsonObject, plasticClass, extraMethodCachedWatchMap)); +final PlasticMethod plasticMethod = toPlasticMethod(jsonObject, plasticClass, extraMethodCachedWatchMap); +if (plasticMethod != null) +{ +methods.add(plasticMethod); +}
(tapestry-5) branch javax updated: TAP5-2786: don't override final method in subclass
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 199c89f7a TAP5-2786: don't override final method in subclass 199c89f7a is described below commit 199c89f7af2a5bd11d0c55372a528a56225a2a57 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 24 15:57:24 2024 -0300 TAP5-2786: don't override final method in subclass when in multiple classloader mode --- .../internal/plastic/PlasticFieldImpl.java | 2 +- .../plastic/MethodAlreadyExistsException.java | 35 .../tapestry5/internal/transform/CachedWorker.java | 14 ++- .../internal/transform/PropertyWorker.java | 11 - .../components/SubclassWithFinalCachedMethod.java | 36 + .../SuperclassWithFinalCachedMethod.java | 47 ++ .../pages/SubclassWithFinalCachedMethodDemo.java | 19 + .../components/SuperclassWithFinalCachedMethod.tml | 12 ++ .../pages/SubclassWithFinalCachedMethodDemo.tml| 10 + 9 files changed, 183 insertions(+), 3 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java index d490750d6..8b1fe9310 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticFieldImpl.java @@ -360,7 +360,7 @@ class PlasticFieldImpl extends PlasticMember implements PlasticField, Comparable if (plasticClass.inheritanceData.isImplemented(name, desc)) { -throw new IllegalArgumentException(String.format( +throw new MethodAlreadyExistsException(String.format( "Unable to create new accessor method %s on class %s as the method is already implemented.", description.toString(), plasticClass.className)); } diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java new file mode 100644 index 0..4f434ac8f --- /dev/null +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodAlreadyExistsException.java @@ -0,0 +1,35 @@ +// Copyright 2024 The Apache Software Foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.apache.tapestry5.plastic; + +/** + * Exception raised when there's an attempt to create a method which + * already exists in a class. + * + * This extends {@linkplain IllegalArgumentException} for backward compatibility. + * + * @since 5.9.0 + */ +public class MethodAlreadyExistsException extends IllegalArgumentException +{ + +private static final long serialVersionUID = 1L; + +public MethodAlreadyExistsException(String message) +{ +super(message); +} + +} diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java index e5848dcd3..045188d09 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/CachedWorker.java @@ -36,6 +36,7 @@ import org.apache.tapestry5.services.TransformConstants; import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2; import org.apache.tapestry5.services.transform.TransformationSupport; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -219,7 +220,11 @@ public class CachedWorker implements ComponentClassTransformWorker2 for (int i = 0; i < array.size(); i++) { final JSONObject jsonObject = array.getJSONObject(i); -methods.add(toPlasticMethod(jsonObject, plasticClass, extraMethodCachedWatchMap)); +final PlasticMethod plasticMethod = toPlasticMethod(jsonObject, plasticClass, extraMethodCachedWatchMap); +if (plasticMethod != null) +{ +methods.add(plasticMethod); +}
svn commit: r70973 - /dev/tapestry/
Author: thiagohp Date: Sun Aug 18 22:47:08 2024 New Revision: 70973 Log: Apache Tapestry 5.9.0-preview Added: dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip (with props) dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.md5 dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.sha256 dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip (with props) dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.md5 dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.sha256 dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip (with props) dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.md5 dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.sha256 Added: dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.md5 == --- dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.md5 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +309c7891e2d44e6b6b107ef2b7688a10 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.sha256 == --- dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-apidocs.zip.sha256 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +eae2b6986180630abcf7aab207d492a189cf972a3bb536e5d331703e0745097c \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.md5 == --- dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.md5 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +8adc88707e7984b4786c6b111c308533 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.sha256 == --- dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-bin.zip.sha256 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +8927c4a56a16c6dd7f432656f0e5e125eff3da4e3a5e67b2981fd6b57db8802b \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.md5 == --- dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.md5 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +789896b8de27821d54371d2d55407112 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.sha256 == --- dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.9.0-preview-sources.zip.sha256 Sun Aug 18 22:47:08 2024 @@ -0,0 +1 @@ +96e652f27255e7fb17cbd1f1007a3cdedba4fb10aa73127341a28e2de3c7a292 \ No newline at end of file
(tapestry-5) tag 5.9.0-preview created (now 2ae8c39ef)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.9.0-preview in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 2ae8c39ef (commit) No new revisions were added by this update.
(tapestry-5) tag 5.9.0-preview-javax created (now fc4f37de3)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.9.0-preview-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at fc4f37de3 (commit) No new revisions were added by this update.
(tapestry-5) branch javax updated: TAP5-2785: uncommenting stuff in the justfile
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 fc4f37de3 TAP5-2785: uncommenting stuff in the justfile fc4f37de3 is described below commit fc4f37de3f8d9af4f0d8fb360fa4685931eca7f3 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 18:31:01 2024 -0300 TAP5-2785: uncommenting stuff in the justfile --- justfile | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/justfile b/justfile index b91730243..210fab2a5 100644 --- a/justfile +++ b/justfile @@ -19,9 +19,9 @@ tapestry-core-maven-local-snapshot: _deploy_branch branch extra-options: echo "Releasing branch: {{branch}} with Gradle extra options '{{extra-options}}'" # Fail if there are untracked files or uncommitted changes - #git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false - #git checkout master - #./gradlew clean generateRelease {{gradle-options}} {{extra-options}} + git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false + git checkout master + ./gradlew clean generateRelease {{gradle-options}} {{extra-options}} _deploy_javax extra-options: (_deploy_branch "javax" extra-options) _deploy_master extra-options: (_deploy_branch "master" extra-options) @@ -31,12 +31,12 @@ snapshot: (_deploy_branch "master" "-Dci=true") (_deploy_branch "javax" "-Dci=tr # Deploys a release to the ASF staging repository release version: (_deploy_branch "master" "") (_deploy_branch "javax" "") - #git checkout master - #git tag {{version}} - #git push --tags - #git checkout javax - #git tag {{version}}-javax - #git push --tags + git checkout master + git tag {{version}} + git push --tags + git checkout javax + git tag {{version}}-javax + git push --tags # Builds Tapestry without running tests build:
(tapestry-5) branch master updated: TAP5-2785: uncommenting stuff in the justfile
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 2ae8c39ef TAP5-2785: uncommenting stuff in the justfile 2ae8c39ef is described below commit 2ae8c39ef2c2c9429281e8288a13c273104dcf5e Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 18:31:01 2024 -0300 TAP5-2785: uncommenting stuff in the justfile --- justfile | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/justfile b/justfile index b91730243..210fab2a5 100644 --- a/justfile +++ b/justfile @@ -19,9 +19,9 @@ tapestry-core-maven-local-snapshot: _deploy_branch branch extra-options: echo "Releasing branch: {{branch}} with Gradle extra options '{{extra-options}}'" # Fail if there are untracked files or uncommitted changes - #git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false - #git checkout master - #./gradlew clean generateRelease {{gradle-options}} {{extra-options}} + git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false + git checkout master + ./gradlew clean generateRelease {{gradle-options}} {{extra-options}} _deploy_javax extra-options: (_deploy_branch "javax" extra-options) _deploy_master extra-options: (_deploy_branch "master" extra-options) @@ -31,12 +31,12 @@ snapshot: (_deploy_branch "master" "-Dci=true") (_deploy_branch "javax" "-Dci=tr # Deploys a release to the ASF staging repository release version: (_deploy_branch "master" "") (_deploy_branch "javax" "") - #git checkout master - #git tag {{version}} - #git push --tags - #git checkout javax - #git tag {{version}}-javax - #git push --tags + git checkout master + git tag {{version}} + git push --tags + git checkout javax + git tag {{version}}-javax + git push --tags # Builds Tapestry without running tests build:
(tapestry-5) branch master updated: TAP5-2785: creating snapshot and release recipes
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 6d8913d8e TAP5-2785: creating snapshot and release recipes 6d8913d8e is described below commit 6d8913d8ec752cf867b46a60ffc76072b99223c8 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 18:27:39 2024 -0300 TAP5-2785: creating snapshot and release recipes for the 2 branches --- justfile | 26 ++ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/justfile b/justfile index b49bc4813..b91730243 100644 --- a/justfile +++ b/justfile @@ -16,17 +16,27 @@ local-snapshot-full: tapestry-core-maven-local-snapshot: ./gradlew tapestry-core:publishToMavenLocal {{gradle-options}} -Dci=true +_deploy_branch branch extra-options: + echo "Releasing branch: {{branch}} with Gradle extra options '{{extra-options}}'" + # Fail if there are untracked files or uncommitted changes + #git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false + #git checkout master + #./gradlew clean generateRelease {{gradle-options}} {{extra-options}} + +_deploy_javax extra-options: (_deploy_branch "javax" extra-options) +_deploy_master extra-options: (_deploy_branch "master" extra-options) + # Deploys a snapshot to the ASF snapshots repository -snapshot: - git stash - ./gradlew clean generateRelease {{gradle-options}} -Dci=true - git stash pop +snapshot: (_deploy_branch "master" "-Dci=true") (_deploy_branch "javax" "-Dci=true") # Deploys a release to the ASF staging repository -release: - git stash - ./gradlew clean generateRelease {{gradle-options}} - git stash pop +release version: (_deploy_branch "master" "") (_deploy_branch "javax" "") + #git checkout master + #git tag {{version}} + #git push --tags + #git checkout javax + #git tag {{version}}-javax + #git push --tags # Builds Tapestry without running tests build:
(tapestry-5) 03/03: TAP5-2785: creating snapshot and release recipes
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 commit 603820cf2335f5e17ac2f6c12c2d846b55e178f2 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 18:27:39 2024 -0300 TAP5-2785: creating snapshot and release recipes for the 2 branches --- justfile | 26 ++ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/justfile b/justfile index b49bc4813..b91730243 100644 --- a/justfile +++ b/justfile @@ -16,17 +16,27 @@ local-snapshot-full: tapestry-core-maven-local-snapshot: ./gradlew tapestry-core:publishToMavenLocal {{gradle-options}} -Dci=true +_deploy_branch branch extra-options: + echo "Releasing branch: {{branch}} with Gradle extra options '{{extra-options}}'" + # Fail if there are untracked files or uncommitted changes + #git diff --quiet && git diff --cached --quiet || echo "\nThere are untracked files or uncommitted changes!\n" && git status && false + #git checkout master + #./gradlew clean generateRelease {{gradle-options}} {{extra-options}} + +_deploy_javax extra-options: (_deploy_branch "javax" extra-options) +_deploy_master extra-options: (_deploy_branch "master" extra-options) + # Deploys a snapshot to the ASF snapshots repository -snapshot: - git stash - ./gradlew clean generateRelease {{gradle-options}} -Dci=true - git stash pop +snapshot: (_deploy_branch "master" "-Dci=true") (_deploy_branch "javax" "-Dci=true") # Deploys a release to the ASF staging repository -release: - git stash - ./gradlew clean generateRelease {{gradle-options}} - git stash pop +release version: (_deploy_branch "master" "") (_deploy_branch "javax" "") + #git checkout master + #git tag {{version}} + #git push --tags + #git checkout javax + #git tag {{version}}-javax + #git push --tags # Builds Tapestry without running tests build:
(tapestry-5) 02/03: 5.9.0 preview version
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 commit 7787b5a17c7fd38ceb1388f3b3c914be17310720 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 17:45:56 2024 -0300 5.9.0 preview version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b1276032b..8efdb6c90 100755 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.9.0" +def major = "5.9.0-preview" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) 01/03: Bumping version to 5.9.0 for the -jakarta artifacts
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 commit 09d0dd222dd693ac8ace657233d0432ed374611c Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 17:40:48 2024 -0300 Bumping version to 5.9.0 for the -jakarta artifacts --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index df80a109c..b1276032b 100755 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.8" +def major = "5.9.0" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) branch javax updated (0aff446c1 -> 603820cf2)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git from 0aff446c1 Fixed Javadoc typo. No functional changes. new 09d0dd222 Bumping version to 5.9.0 for the -jakarta artifacts new 7787b5a17 5.9.0 preview version new 603820cf2 TAP5-2785: creating snapshot and release recipes The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: build.gradle | 2 +- justfile | 26 ++ 2 files changed, 19 insertions(+), 9 deletions(-)
(tapestry-5) branch master updated: 5.9.0 preview version
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 409c37121 5.9.0 preview version 409c37121 is described below commit 409c3712150e6be4751311ed5df9079620271bd6 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 17:45:56 2024 -0300 5.9.0 preview version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e7cf5757e..934dfacf0 100755 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.9.0" +def major = "5.9.0-preview" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) branch master updated: Bumping version to 5.9.0 for the -jakarta artifacts
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 d2aa3bbb9 Bumping version to 5.9.0 for the -jakarta artifacts d2aa3bbb9 is described below commit d2aa3bbb9b0d6b4872e5aa63caef8fabb6d9eaf9 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 17:40:48 2024 -0300 Bumping version to 5.9.0 for the -jakarta artifacts --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c257c7c4b..e7cf5757e 100755 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.8" +def major = "5.9.0" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) 02/02: Fixed Javadoc typo. No functional changes.
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 commit 0aff446c14f4aa76789839a61a0ce643c69ed00e Author: Volker Lamp AuthorDate: Thu Aug 15 18:13:58 2024 +0200 Fixed Javadoc typo. No functional changes. --- tapestry-core/src/main/java/org/apache/tapestry5/SymbolConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/SymbolConstants.java b/tapestry-core/src/main/java/org/apache/tapestry5/SymbolConstants.java index 07e4d28de..dc19b2756 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/SymbolConstants.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/SymbolConstants.java @@ -701,7 +701,7 @@ public class SymbolConstants /** * Defines the path the OpenAPI description file of this application's REST endpoints will be * published. It should start with a slash. Default value is /openapi.json. - * The description will only be published if {{@link #PUBLISH_OPENAPI_DEFINITON} is set to + * The description will only be published if {@link #PUBLISH_OPENAPI_DEFINITON} is set to * true. * @see OpenApiDescriptionGenerator * @since 5.8.0
(tapestry-5) 01/02: TAP5-2785: suffixing jakarta.servlet artifacts
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 commit b5c510be138b7337e4dc542e46b0050d38dec85a Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Aug 6 00:10:46 2024 -0300 TAP5-2785: suffixing jakarta.servlet artifacts First pass at creating suffixed artifacts for javax branch Notice that, for now, it just skips creating the non-jakarta.servlet-affected subprojects. The actual suffixing of artifact ids still needs to be done, but it's stubbed out at line 316 First pass at creating suffixed artifacts for javax branch Trying to create shared logic between javax and master Fixing artifact name --- build.gradle | 34 ++ 1 file changed, 34 insertions(+) diff --git a/build.gradle b/build.gradle index dfcef221e..df80a109c 100755 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,13 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] +def artifactSuffix = "" + +// Artifacts that have both an unsuffixed artifact from the javax branch +// and a suffixed one from the master branch +def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-runner", "tapestry-spring"] + ext.continuousIntegrationBuild = Boolean.getBoolean("ci") // Provided so that the CI server can override the normal version number for nightly builds. @@ -289,9 +296,13 @@ subprojects { mavenJava(MavenPublication) { version = parent.version groupId = "org.apache.tapestry" +if (suffixedArtifactNames.contains(project.name)) { +artifactId = project.name + artifactSuffix +} from components.java artifact sourcesJar + pom { name = project.name // TODO: find some way to get the subproject description here. @@ -308,6 +319,22 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +// Changes the generated pom.xml so its dependencies on suffixed artifacts +// get properly updated with suffixed artifact ids +withXml { +def artifactIdQName = new groovy.namespace.QName( +"http://maven.apache.org/POM/4.0.0";, "artifactId") +def node = asNode(); +def dependencies = node.get("dependencies")[0] +if (dependencies != null) { +dependencies.'*'.forEach { +def artifactIdNode = it.getAt(artifactIdQName)[0] +if (suffixedArtifactNames.contains(artifactIdNode.text())) { +artifactIdNode.value = artifactIdNode.text() + artifactSuffix +} +} +} +} } matching { it.name.endsWith(".jar") || it.name.endsWith(".pom") @@ -348,6 +375,13 @@ subprojects { sign publishing.publications.mavenJava } } + +def actuallyPublish = !artifactSuffix.isEmpty() || suffixedArtifactNames.contains(project.name) +// println "XX Actually publish? " + actuallyPublish + " project " + project.name + " " + "!artifactSuffix.isEmpty() " + !artifactSuffix.isEmpty() +if (!actuallyPublish) { +tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } +tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false } +} task uploadPublished {
(tapestry-5) branch javax updated (5c4fb1261 -> 0aff446c1)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git from 5c4fb1261 Changing quickstart's generated project version to 7.3 new b5c510be1 TAP5-2785: suffixing jakarta.servlet artifacts new 0aff446c1 Fixed Javadoc typo. No functional changes. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: build.gradle | 34 ++ .../java/org/apache/tapestry5/SymbolConstants.java | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-)
(tapestry-5) branch master updated: TAP5-2785: suffixing jakarta.servlet artifacts
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 88d0aa49d TAP5-2785: suffixing jakarta.servlet artifacts 88d0aa49d is described below commit 88d0aa49d1194535edb0e2e5b775237b27b82b2d Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 18 12:08:10 2024 -0300 TAP5-2785: suffixing jakarta.servlet artifacts --- build.gradle | 35 ++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index cd51c5987..c257c7c4b 100755 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,13 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] +def artifactSuffix = "-jakarta" + +// Artifacts that have both an unsuffixed artifact from the javax branch +// and a suffixed one from the master branch +def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-runner", "tapestry-spring"] + ext.continuousIntegrationBuild = Boolean.getBoolean("ci") // Provided so that the CI server can override the normal version number for nightly builds. @@ -40,7 +47,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.50.0" +def major = "5.8.8" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build. @@ -289,6 +296,9 @@ subprojects { mavenJava(MavenPublication) { version = parent.version groupId = "org.apache.tapestry" +if (suffixedArtifactNames.contains(project.name)) { +artifactId = project.name + artifactSuffix +} from components.java artifact sourcesJar @@ -308,6 +318,22 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +// Changes the generated pom.xml so its dependencies on suffixed artifacts +// get properly updated with suffixed artifact ids +withXml { +def artifactIdQName = new groovy.namespace.QName( +"http://maven.apache.org/POM/4.0.0";, "artifactId") +def node = asNode(); +def dependencies = node.get("dependencies")[0] +if (dependencies != null) { +dependencies.'*'.forEach { +def artifactIdNode = it.getAt(artifactIdQName)[0] +if (suffixedArtifactNames.contains(artifactIdNode.text())) { +artifactIdNode.value = artifactIdNode.text() + artifactSuffix +} +} +} +} } matching { it.name.endsWith(".jar") || it.name.endsWith(".pom") @@ -348,6 +374,13 @@ subprojects { sign publishing.publications.mavenJava } } + +def actuallyPublish = !artifactSuffix.isEmpty() || suffixedArtifactNames.contains(project.name) +// println "XX Actually publish? " + actuallyPublish + " project " + project.name + " " + "!artifactSuffix.isEmpty() " + !artifactSuffix.isEmpty() +if (!actuallyPublish) { +tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } +tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false } +} task uploadPublished {
(tapestry-5) branch tapestry-core-javax updated: Fixing artifact name
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/tapestry-core-javax by this push: new 5e7c21e24 Fixing artifact name 5e7c21e24 is described below commit 5e7c21e24e692f13042f8b21b9d5cc4fca25eeff Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 22:10:59 2024 -0300 Fixing artifact name --- build.gradle | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e8f41b481..df80a109c 100755 --- a/build.gradle +++ b/build.gradle @@ -296,12 +296,15 @@ subprojects { mavenJava(MavenPublication) { version = parent.version groupId = "org.apache.tapestry" +if (suffixedArtifactNames.contains(project.name)) { +artifactId = project.name + artifactSuffix +} from components.java artifact sourcesJar pom { -name = project.name + artifactSuffix +name = project.name // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/";
(tapestry-5) branch tapestry-core-jakarta updated: Fixing artifact name
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/tapestry-core-jakarta by this push: new 792b7dc3e Fixing artifact name 792b7dc3e is described below commit 792b7dc3ed1ed241ab152ee3d4ba81555c787942 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 22:10:59 2024 -0300 Fixing artifact name --- build.gradle | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eafea8bad..c257c7c4b 100755 --- a/build.gradle +++ b/build.gradle @@ -296,11 +296,14 @@ subprojects { mavenJava(MavenPublication) { version = parent.version groupId = "org.apache.tapestry" +if (suffixedArtifactNames.contains(project.name)) { +artifactId = project.name + artifactSuffix +} from components.java artifact sourcesJar pom { -name = project.name + artifactSuffix +name = project.name // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/";
(tapestry-5) 04/04: Fixing artifactSuffix value
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 8e10568fb566156a11a7714b8044b88211d9ce77 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 21:03:22 2024 -0300 Fixing artifactSuffix value --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 51d796506..eafea8bad 100755 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] -def artifactSuffix = "" +def artifactSuffix = "-jakarta" // Artifacts that have both an unsuffixed artifact from the javax branch // and a suffixed one from the master branch
(tapestry-5) branch tapestry-core-jakarta created (now 8e10568fb)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 8e10568fb Fixing artifactSuffix value This branch includes the following new commits: new 6bb4642ed First pass at creating suffixed artifacts for javax branch new 90afe79fc First pass at creating suffixed artifacts for javax branch new f41c7aa94 Trying to create shared logic between javax and master new 8e10568fb Fixing artifactSuffix value The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(tapestry-5) 02/04: First pass at creating suffixed artifacts for javax branch
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 90afe79fc1081369e6fb40bfc66352539e354a4d Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 15:57:13 2024 -0300 First pass at creating suffixed artifacts for javax branch --- build.gradle | 24 +++- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 11f89651a..83653bbc4 100755 --- a/build.gradle +++ b/build.gradle @@ -28,8 +28,10 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] -def artifactsToBePublished = ["tapestry-core", "tapestry-http", "tapestry-test", -"tapestry-beanvalidator", "tapestry-runner", "tapestry-spring"] +def artifactSuffix = "-jakarta" + +def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-runner", "tapestry-spring"] ext.continuousIntegrationBuild = Boolean.getBoolean("ci") @@ -296,7 +298,7 @@ subprojects { artifact sourcesJar pom { -name = project.name + "-javax" +name = project.name + artifactSuffix // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/"; @@ -311,9 +313,21 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +// Changes the generated pom.xml so its dependencies on suffixed artifacts +// get properly updated with suffixed artifact ids withXml { +def artifactIdQName = new groovy.namespace.QName( +"http://maven.apache.org/POM/4.0.0";, "artifactId") def node = asNode(); -println " NNNode: " + node.get("dependencies") +def dependencies = node.get("dependencies")[0] +if (dependencies != null) { +dependencies.'*'.forEach { +def artifactIdNode = it.getAt(artifactIdQName)[0] +if (suffixedArtifactNames.contains(artifactIdNode.text())) { +artifactIdNode.value = artifactIdNode.text() + artifactSuffix +} +} +} } } matching { @@ -356,7 +370,7 @@ subprojects { } } -def actuallyPublish = artifactsToBePublished.contains(project.name) +def actuallyPublish = suffixedArtifactNames.contains(project.name) if (!actuallyPublish) { tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false }
(tapestry-5) 03/04: Trying to create shared logic between javax and master
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit f41c7aa94bcf27d65b46d1a01aa022a3a8c57dcf Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 20:44:03 2024 -0300 Trying to create shared logic between javax and master --- build.gradle | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 83653bbc4..51d796506 100755 --- a/build.gradle +++ b/build.gradle @@ -28,8 +28,10 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] -def artifactSuffix = "-jakarta" +def artifactSuffix = "" +// Artifacts that have both an unsuffixed artifact from the javax branch +// and a suffixed one from the master branch def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", "tapestry-runner", "tapestry-spring"] @@ -370,7 +372,8 @@ subprojects { } } -def actuallyPublish = suffixedArtifactNames.contains(project.name) +def actuallyPublish = !artifactSuffix.isEmpty() || suffixedArtifactNames.contains(project.name) +// println "XX Actually publish? " + actuallyPublish + " project " + project.name + " " + "!artifactSuffix.isEmpty() " + !artifactSuffix.isEmpty() if (!actuallyPublish) { tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false }
(tapestry-5) 01/04: First pass at creating suffixed artifacts for javax branch
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-jakarta in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 6bb4642eddf87cbd4db6b2d33fc731fe025ff13b Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Aug 6 00:10:46 2024 -0300 First pass at creating suffixed artifacts for javax branch Notice that, for now, it just skips creating the non-jakarta.servlet-affected subprojects. The actual suffixing of artifact ids still needs to be done, but it's stubbed out at line 316 --- build.gradle | 17 +++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index cd51c5987..11f89651a 100755 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,9 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] +def artifactsToBePublished = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-beanvalidator", "tapestry-runner", "tapestry-spring"] + ext.continuousIntegrationBuild = Boolean.getBoolean("ci") // Provided so that the CI server can override the normal version number for nightly builds. @@ -40,7 +43,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.50.0" +def major = "5.8.8" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build. @@ -293,7 +296,7 @@ subprojects { artifact sourcesJar pom { -name = project.name +name = project.name + "-javax" // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/"; @@ -308,6 +311,10 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +withXml { +def node = asNode(); +println " NNNode: " + node.get("dependencies") +} } matching { it.name.endsWith(".jar") || it.name.endsWith(".pom") @@ -348,6 +355,12 @@ subprojects { sign publishing.publications.mavenJava } } + +def actuallyPublish = artifactsToBePublished.contains(project.name) +if (!actuallyPublish) { +tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } +tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false } +} task uploadPublished {
(tapestry-5) branch tapestry-core-javax updated: Trying to create shared logic between javax and master
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/tapestry-core-javax by this push: new d0d4689d9 Trying to create shared logic between javax and master d0d4689d9 is described below commit d0d4689d9afac30a3d44b1318962d1f3ac500bde Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 20:44:03 2024 -0300 Trying to create shared logic between javax and master --- build.gradle | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index fe9145003..e8f41b481 100755 --- a/build.gradle +++ b/build.gradle @@ -28,8 +28,10 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] -def artifactSuffix = "-jakarta" +def artifactSuffix = "" +// Artifacts that have both an unsuffixed artifact from the javax branch +// and a suffixed one from the master branch def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", "tapestry-runner", "tapestry-spring"] @@ -371,7 +373,8 @@ subprojects { } } -def actuallyPublish = suffixedArtifactNames.contains(project.name) +def actuallyPublish = !artifactSuffix.isEmpty() || suffixedArtifactNames.contains(project.name) +// println "XX Actually publish? " + actuallyPublish + " project " + project.name + " " + "!artifactSuffix.isEmpty() " + !artifactSuffix.isEmpty() if (!actuallyPublish) { tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false }
(tapestry-5) tag 5.8.8 deleted (was 5c4fb1261)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.8 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git *** WARNING: tag 5.8.8 was deleted! *** was 5c4fb1261 Changing quickstart's generated project version to 7.3 The revisions that were on this tag are still contained in other references; therefore, this change does not discard any commits from the repository.
(tapestry-5) branch tapestry-core-javax updated: First pass at creating suffixed artifacts for javax branch
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git The following commit(s) were added to refs/heads/tapestry-core-javax by this push: new 266339d2c First pass at creating suffixed artifacts for javax branch 266339d2c is described below commit 266339d2c83321ee87c53e09944f52c86a125778 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 17 15:57:13 2024 -0300 First pass at creating suffixed artifacts for javax branch --- build.gradle | 24 +++- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 2171013af..fe9145003 100755 --- a/build.gradle +++ b/build.gradle @@ -28,8 +28,10 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] -def artifactsToBePublished = ["tapestry-core", "tapestry-http", "tapestry-test", -"tapestry-beanvalidator", "tapestry-runner", "tapestry-spring"] +def artifactSuffix = "-jakarta" + +def suffixedArtifactNames = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-runner", "tapestry-spring"] ext.continuousIntegrationBuild = Boolean.getBoolean("ci") @@ -297,7 +299,7 @@ subprojects { pom { -name = project.name + "-javax" +name = project.name + artifactSuffix // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/"; @@ -312,9 +314,21 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +// Changes the generated pom.xml so its dependencies on suffixed artifacts +// get properly updated with suffixed artifact ids withXml { +def artifactIdQName = new groovy.namespace.QName( +"http://maven.apache.org/POM/4.0.0";, "artifactId") def node = asNode(); -println " NNNode: " + node.get("dependencies") +def dependencies = node.get("dependencies")[0] +if (dependencies != null) { +dependencies.'*'.forEach { +def artifactIdNode = it.getAt(artifactIdQName)[0] +if (suffixedArtifactNames.contains(artifactIdNode.text())) { +artifactIdNode.value = artifactIdNode.text() + artifactSuffix +} +} +} } } matching { @@ -357,7 +371,7 @@ subprojects { } } -def actuallyPublish = artifactsToBePublished.contains(project.name) +def actuallyPublish = suffixedArtifactNames.contains(project.name) if (!actuallyPublish) { tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false }
svn commit: r1087161 - in /websites/production/tapestry/content: ./ 5.8.7/ 5.8.7/apidocs/ 5.8.7/apidocs/index-files/ 5.8.7/apidocs/jquery/ 5.8.7/apidocs/jquery/external/ 5.8.7/apidocs/jquery/external/
Author: thiagohp Date: Sat Aug 10 14:59:17 2024 New Revision: 1087161 Log: More Apache Tapestry 5.8.7 files [This commit notification would consist of 959 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.]
svn commit: r1087160 - /websites/production/tapestry/content/current
Author: thiagohp Date: Sat Aug 10 14:16:41 2024 New Revision: 1087160 Log: Updated javadocs current symbolic link Modified: websites/production/tapestry/content/current Modified: websites/production/tapestry/content/current == --- websites/production/tapestry/content/current (original) +++ websites/production/tapestry/content/current Sat Aug 10 14:16:41 2024 @@ -1 +1 @@ -link 5.8.6 \ No newline at end of file +link 5.8.7 \ No newline at end of file
svn commit: r70781 - /release/tapestry/
Author: thiagohp Date: Sat Aug 10 13:40:53 2024 New Revision: 70781 Log: Apache Tapestry 5.8.7 Added: release/tapestry/apache-tapestry-5.8.7-apidocs.zip (with props) release/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 release/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 release/tapestry/apache-tapestry-5.8.7-bin.zip (with props) release/tapestry/apache-tapestry-5.8.7-bin.zip.md5 release/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 release/tapestry/apache-tapestry-5.8.7-sources.zip (with props) release/tapestry/apache-tapestry-5.8.7-sources.zip.md5 release/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 Added: release/tapestry/apache-tapestry-5.8.7-apidocs.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.7-apidocs.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 == --- release/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +e6516b6bb137ad89c7a96cb74120604e \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +54e7d449b72f5d8b28adb3d4fcbd7dac3141e5eab3e650f04a9de72963d85b85 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.7-bin.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.7-bin.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.7-bin.zip.md5 == --- release/tapestry/apache-tapestry-5.8.7-bin.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.7-bin.zip.md5 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +8fa2bff9786a0700e6ec71ef2197dcdb \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +8b4a3957b4c83070bd12229845d6a4e519b37400b4225c7e18e8cd3fed8124e9 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.7-sources.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.7-sources.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.7-sources.zip.md5 == --- release/tapestry/apache-tapestry-5.8.7-sources.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.7-sources.zip.md5 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +cf7b8b13a467a610bf459735afc8f143 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 Sat Aug 10 13:40:53 2024 @@ -0,0 +1 @@ +8988c8b577e67eba2ca4b2719bb6502b3c60b99f73298cc0e28140dac804b19e \ No newline at end of file
(tapestry-5) tag 5.8.7 created (now 661cfe683)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.7 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 661cfe683 (commit) No new revisions were added by this update.
(tapestry-5) tag 5.8.7 deleted (was 661cfe683)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.7 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git *** WARNING: tag 5.8.7 was deleted! *** was 661cfe683 Adding a justfile The revisions that were on this tag are still contained in other references; therefore, this change does not discard any commits from the repository.
(tapestry-5) branch master updated: Changing quickstart's generated project version to 7.3
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 8f80f80cf Changing quickstart's generated project version to 7.3 8f80f80cf is described below commit 8f80f80cf7fe8e7f98a6779175481965d9b5b1de Author: Thiago H. de Paula Figueiredo AuthorDate: Wed Aug 7 22:27:41 2024 -0300 Changing quickstart's generated project version to 7.3 since 7.2 was removed from https://services.gradle.org/distributions/ --- quickstart/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/build.gradle b/quickstart/build.gradle index a9a5357ce..7fc50bc5a 100644 --- a/quickstart/build.gradle +++ b/quickstart/build.gradle @@ -15,7 +15,7 @@ task copyGradleWrapper(type: Copy) { task addGradleWrapper(type: Exec) { workingDir "$buildDir/wrapper" -commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '7.2' +commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '7.3' standardOutput = new ByteArrayOutputStream()
(tapestry-5) branch javax updated (7f3326ccf -> 5c4fb1261)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git from 7f3326ccf 5.8.8 release add 5c4fb1261 Changing quickstart's generated project version to 7.3 No new revisions were added by this update. Summary of changes: quickstart/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(tapestry-5) tag 5.8.8 created (now 5c4fb1261)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.8 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 5c4fb1261 (commit) This tag includes the following new commits: new 5c4fb1261 Changing quickstart's generated project version to 7.3 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(tapestry-5) 01/01: Changing quickstart's generated project version to 7.3
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to tag 5.8.8 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 5c4fb12618e3888c5611eca5fd0e76a4cb4ed196 Author: Thiago H. de Paula Figueiredo AuthorDate: Wed Aug 7 22:27:41 2024 -0300 Changing quickstart's generated project version to 7.3 since 7.2 was removed from https://services.gradle.org/distributions/ --- quickstart/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/build.gradle b/quickstart/build.gradle index 0bde4d343..98225bf97 100644 --- a/quickstart/build.gradle +++ b/quickstart/build.gradle @@ -15,7 +15,7 @@ task copyGradleWrapper(type: Copy) { task addGradleWrapper(type: Exec) { workingDir "$buildDir/wrapper" -commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '7.2' +commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '7.3' standardOutput = new ByteArrayOutputStream()
(tapestry-5) branch javax updated: 5.8.8 release
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 7f3326ccf 5.8.8 release 7f3326ccf is described below commit 7f3326ccf73f963eb00b59b20b147009c6fab312 Author: Thiago H. de Paula Figueiredo AuthorDate: Wed Aug 7 22:16:34 2024 -0300 5.8.8 release --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1d9de07ae..dfcef221e 100755 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.7" +def major = "5.8.8" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
(tapestry-5) branch tapestry-core-javax created (now f253bc35f)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch tapestry-core-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at f253bc35f First pass at creating suffixed artifacts for javax branch This branch includes the following new commits: new f253bc35f First pass at creating suffixed artifacts for javax branch The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(tapestry-5) 01/01: First pass at creating suffixed artifacts for javax branch
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch tapestry-core-javax in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit f253bc35fa0b201721b13bee5898b69ca17e6edc Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Aug 6 00:10:46 2024 -0300 First pass at creating suffixed artifacts for javax branch Notice that, for now, it just skips creating the non-jakarta.servlet-affected subprojects. The actual suffixing of artifact ids still needs to be done, but it's stubbed out at line 316 --- build.gradle | 18 -- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 1d9de07ae..2171013af 100755 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,9 @@ project.ext.versions = [ webdriverManager: "5.3.1" ] +def artifactsToBePublished = ["tapestry-core", "tapestry-http", "tapestry-test", +"tapestry-beanvalidator", "tapestry-runner", "tapestry-spring"] + ext.continuousIntegrationBuild = Boolean.getBoolean("ci") // Provided so that the CI server can override the normal version number for nightly builds. @@ -40,7 +43,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.7" +def major = "5.8.8" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build. @@ -292,8 +295,9 @@ subprojects { from components.java artifact sourcesJar + pom { -name = project.name +name = project.name + "-javax" // TODO: find some way to get the subproject description here. // description = url = "https://tapestry.apache.org/"; @@ -308,6 +312,10 @@ subprojects { developerConnection = 'scm:git://gitbox.apache.org/repos/asf/tapestry-5.git' url = 'https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=summary' } +withXml { +def node = asNode(); +println " NNNode: " + node.get("dependencies") +} } matching { it.name.endsWith(".jar") || it.name.endsWith(".pom") @@ -348,6 +356,12 @@ subprojects { sign publishing.publications.mavenJava } } + +def actuallyPublish = artifactsToBePublished.contains(project.name) +if (!actuallyPublish) { +tasks.withType(PublishToMavenRepository).configureEach { it.enabled = false } +tasks.withType(PublishToMavenLocal).configureEach { it.enabled = false } +} task uploadPublished {
svn commit: r70702 - /dev/tapestry/
Author: thiagohp Date: Mon Aug 5 16:58:36 2024 New Revision: 70702 Log: Tapestry 5.8.7 Added: dev/tapestry/apache-tapestry-5.8.7-apidocs.zip (with props) dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 dev/tapestry/apache-tapestry-5.8.7-bin.zip (with props) dev/tapestry/apache-tapestry-5.8.7-bin.zip.md5 dev/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 dev/tapestry/apache-tapestry-5.8.7-sources.zip (with props) dev/tapestry/apache-tapestry-5.8.7-sources.zip.md5 dev/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 Added: dev/tapestry/apache-tapestry-5.8.7-apidocs.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.7-apidocs.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.md5 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +e6516b6bb137ad89c7a96cb74120604e \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.7-apidocs.zip.sha256 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +54e7d449b72f5d8b28adb3d4fcbd7dac3141e5eab3e650f04a9de72963d85b85 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.7-bin.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.7-bin.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.7-bin.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.7-bin.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.7-bin.zip.md5 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +8fa2bff9786a0700e6ec71ef2197dcdb \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.7-bin.zip.sha256 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +8b4a3957b4c83070bd12229845d6a4e519b37400b4225c7e18e8cd3fed8124e9 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.7-sources.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.7-sources.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.7-sources.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.7-sources.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.7-sources.zip.md5 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +cf7b8b13a467a610bf459735afc8f143 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.7-sources.zip.sha256 Mon Aug 5 16:58:36 2024 @@ -0,0 +1 @@ +8988c8b577e67eba2ca4b2719bb6502b3c60b99f73298cc0e28140dac804b19e \ No newline at end of file
(tapestry-5) tag 5.8.7 created (now 661cfe683)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.7 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 661cfe683 (commit) No new revisions were added by this update.
(tapestry-5) branch master updated: Adding a justfile
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 ae317cbad Adding a justfile ae317cbad is described below commit ae317cbadec8d67e01e3771265f6637dcbaab921 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 4 20:30:27 2024 -0300 Adding a justfile --- justfile | 45 + 1 file changed, 45 insertions(+) diff --git a/justfile b/justfile new file mode 100644 index 0..b49bc4813 --- /dev/null +++ b/justfile @@ -0,0 +1,45 @@ +gradle-options := "--watch-fs" + +# Print all recipes +default: + just --list + +# Deploys a snapshot of one subproject to the local Maven repository +local-snapshot artifact: + ./gradlew {{artifact}}:publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a snapshot of every subproject to the local Maven repository +local-snapshot-full: + ./gradlew publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a tapestry-core snapshot to the local Maven repository +tapestry-core-maven-local-snapshot: + ./gradlew tapestry-core:publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a snapshot to the ASF snapshots repository +snapshot: + git stash + ./gradlew clean generateRelease {{gradle-options}} -Dci=true + git stash pop + +# Deploys a release to the ASF staging repository +release: + git stash + ./gradlew clean generateRelease {{gradle-options}} + git stash pop + +# Builds Tapestry without running tests +build: + ./gradlew build -x test + +# Cleans all Tapestry artifacts +clean: + ./gradlew clean + +# Cleans all Tapestry artifacts and rebuilds them +clean-build: + ./gradlew clean build -x test + +# Compiles and generates all JavaScript files from CoffeeScript +generate-javascript: + ./gradlew tapestry-core:compileCoffeeScript tapestry-core:compileProcessedCoffeeScript tapestry-core:compileTestCoffeeScript
(tapestry-5) branch javax updated: Adding a justfile
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 661cfe683 Adding a justfile 661cfe683 is described below commit 661cfe683c174fcdf4b3eecda30cbb1cff69b551 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Aug 4 20:30:27 2024 -0300 Adding a justfile --- justfile | 45 + 1 file changed, 45 insertions(+) diff --git a/justfile b/justfile new file mode 100644 index 0..b49bc4813 --- /dev/null +++ b/justfile @@ -0,0 +1,45 @@ +gradle-options := "--watch-fs" + +# Print all recipes +default: + just --list + +# Deploys a snapshot of one subproject to the local Maven repository +local-snapshot artifact: + ./gradlew {{artifact}}:publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a snapshot of every subproject to the local Maven repository +local-snapshot-full: + ./gradlew publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a tapestry-core snapshot to the local Maven repository +tapestry-core-maven-local-snapshot: + ./gradlew tapestry-core:publishToMavenLocal {{gradle-options}} -Dci=true + +# Deploys a snapshot to the ASF snapshots repository +snapshot: + git stash + ./gradlew clean generateRelease {{gradle-options}} -Dci=true + git stash pop + +# Deploys a release to the ASF staging repository +release: + git stash + ./gradlew clean generateRelease {{gradle-options}} + git stash pop + +# Builds Tapestry without running tests +build: + ./gradlew build -x test + +# Cleans all Tapestry artifacts +clean: + ./gradlew clean + +# Cleans all Tapestry artifacts and rebuilds them +clean-build: + ./gradlew clean build -x test + +# Compiles and generates all JavaScript files from CoffeeScript +generate-javascript: + ./gradlew tapestry-core:compileCoffeeScript tapestry-core:compileProcessedCoffeeScript tapestry-core:compileTestCoffeeScript
(tapestry-5) branch master updated: Fixing CoreBehaviorTests.public_field_in_page_class()
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 86d81adc2 Fixing CoreBehaviorTests.public_field_in_page_class() 86d81adc2 is described below commit 86d81adc285a8ef4733a9ae86239305cb8b1afa3 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 3 22:54:36 2024 -0300 Fixing CoreBehaviorTests.public_field_in_page_class() --- .../java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java index 7bbb063e1..ac9dcc39a 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java @@ -978,7 +978,7 @@ public class CoreBehaviorsTests extends App1TestCase @Test public void public_field_in_page_class() { -openLinks("Protected Fields Demo", "Trigger the Exception"); +openLinks("Protected Fields Demo"/* "Trigger the Exception"*/); assertTextPresent( EXCEPTION_PROCESSING_REQUEST,
(tapestry-5) branch javax updated: Fixing CoreBehaviorTests.public_field_in_page_class()
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 ca79fff21 Fixing CoreBehaviorTests.public_field_in_page_class() ca79fff21 is described below commit ca79fff211258e2fb7a2649078718f917c1c2898 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 3 22:54:36 2024 -0300 Fixing CoreBehaviorTests.public_field_in_page_class() --- .../java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java index 7bbb063e1..ac9dcc39a 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java @@ -978,7 +978,7 @@ public class CoreBehaviorsTests extends App1TestCase @Test public void public_field_in_page_class() { -openLinks("Protected Fields Demo", "Trigger the Exception"); +openLinks("Protected Fields Demo"/* "Trigger the Exception"*/); assertTextPresent( EXCEPTION_PROCESSING_REQUEST,
(tapestry-5) branch master updated: TAP5-2779: fixing broken ComponentDependencyRegistry tests
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 39635a65a TAP5-2779: fixing broken ComponentDependencyRegistry tests 39635a65a is described below commit 39635a65acd8a68b5fa0f9049e6649150d5aa93c Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 3 22:36:59 2024 -0300 TAP5-2779: fixing broken ComponentDependencyRegistry tests --- .../services/ComponentDependencyRegistryImpl.java | 11 +-- .../services/ComponentDependencyRegistryImplTest.java | 17 - 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index fcaec091b..6c62350e0 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -1,4 +1,4 @@ -// Copyright 2022, 2023 The Apache Software Foundation +// Copyright 2022, 2023, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -109,6 +109,8 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis final private boolean storedDependencyInformationPresent; +private boolean enableEnsureClassIsAlreadyProcessed = true; + public ComponentDependencyRegistryImpl( final PageClassLoaderContextManager pageClassLoaderContextManager, final PlasticManager plasticManager, @@ -819,9 +821,14 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis INVALIDATIONS_DISABLED.set(0); } } + +// Only for unit tests +void setEnableEnsureClassIsAlreadyProcessed(boolean enableEnsureClassIsAlreadyProcessed) { +this.enableEnsureClassIsAlreadyProcessed = enableEnsureClassIsAlreadyProcessed; +} private void ensureClassIsAlreadyProcessed(String className) { -if (!contains(className)) +if (enableEnsureClassIsAlreadyProcessed && !contains(className)) { ThrowawayClassLoader classLoader = new ThrowawayClassLoader(getClass().getClassLoader()); try diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java index 9c535be69..8115652dc 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java @@ -30,7 +30,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.function.BiConsumer; -import java.util.function.Consumer; import java.util.stream.Collectors; import org.apache.tapestry5.commons.MappedConfiguration; @@ -116,7 +115,6 @@ public class ComponentDependencyRegistryImplTest private TemplateParser templateParser; -@SuppressWarnings("deprecation") private ComponentTemplateLocator componentTemplateLocator; @BeforeMethod @@ -238,6 +236,9 @@ public class ComponentDependencyRegistryImplTest @Test(timeOut = 5000) public void listen() { + + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + add("foo", "bar"); add("d", "a"); add("dd", "aa"); @@ -286,6 +287,8 @@ public class ComponentDependencyRegistryImplTest final String beltrano = "beltrano"; final String sicrano = "sicrano"; + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + assertEquals( "getDependents() should never return null", Collections.emptySet(), @@ -395,6 +398,8 @@ public class ComponentDependencyRegistryImplTest add(c, d, DependencyType.USAGE); }; + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + add(className, page, DependencyType.INJECT_PAGE); add(className, superclass, DependencyType.SUPERCLASS); @@ -420,6 +425,8 @@ public class ComponentDependencyRegistryImplTest public void register() { + componen
(tapestry-5) branch javax updated: TAP5-2779: fixing broken ComponentDependencyRegistry tests
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 4f84b1e30 TAP5-2779: fixing broken ComponentDependencyRegistry tests 4f84b1e30 is described below commit 4f84b1e30bd0cf2d3d5c86b9c95d6dc8deab0fb3 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Aug 3 22:36:59 2024 -0300 TAP5-2779: fixing broken ComponentDependencyRegistry tests --- .../services/ComponentDependencyRegistryImpl.java | 11 +-- .../services/ComponentDependencyRegistryImplTest.java | 17 - 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index fcaec091b..6c62350e0 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -1,4 +1,4 @@ -// Copyright 2022, 2023 The Apache Software Foundation +// Copyright 2022, 2023, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -109,6 +109,8 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis final private boolean storedDependencyInformationPresent; +private boolean enableEnsureClassIsAlreadyProcessed = true; + public ComponentDependencyRegistryImpl( final PageClassLoaderContextManager pageClassLoaderContextManager, final PlasticManager plasticManager, @@ -819,9 +821,14 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis INVALIDATIONS_DISABLED.set(0); } } + +// Only for unit tests +void setEnableEnsureClassIsAlreadyProcessed(boolean enableEnsureClassIsAlreadyProcessed) { +this.enableEnsureClassIsAlreadyProcessed = enableEnsureClassIsAlreadyProcessed; +} private void ensureClassIsAlreadyProcessed(String className) { -if (!contains(className)) +if (enableEnsureClassIsAlreadyProcessed && !contains(className)) { ThrowawayClassLoader classLoader = new ThrowawayClassLoader(getClass().getClassLoader()); try diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java index 9c535be69..8115652dc 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImplTest.java @@ -30,7 +30,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.function.BiConsumer; -import java.util.function.Consumer; import java.util.stream.Collectors; import org.apache.tapestry5.commons.MappedConfiguration; @@ -116,7 +115,6 @@ public class ComponentDependencyRegistryImplTest private TemplateParser templateParser; -@SuppressWarnings("deprecation") private ComponentTemplateLocator componentTemplateLocator; @BeforeMethod @@ -238,6 +236,9 @@ public class ComponentDependencyRegistryImplTest @Test(timeOut = 5000) public void listen() { + + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + add("foo", "bar"); add("d", "a"); add("dd", "aa"); @@ -286,6 +287,8 @@ public class ComponentDependencyRegistryImplTest final String beltrano = "beltrano"; final String sicrano = "sicrano"; + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + assertEquals( "getDependents() should never return null", Collections.emptySet(), @@ -395,6 +398,8 @@ public class ComponentDependencyRegistryImplTest add(c, d, DependencyType.USAGE); }; + componentDependencyRegistry.setEnableEnsureClassIsAlreadyProcessed(false); + add(className, page, DependencyType.INJECT_PAGE); add(className, superclass, DependencyType.SUPERCLASS); @@ -420,6 +425,8 @@ public class ComponentDependencyRegistryImplTest public void register() { + componen
(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 6f24de65e TAP5-2779: multiple classloader fixes 6f24de65e is described below commit 6f24de65ee70790b30431cd2a8115070ad65703b Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 17 09:42:21 2024 -0300 TAP5-2779: multiple classloader fixes --- .../internal/plastic/PlasticClassLoader.java | 70 +++- .../internal/plastic/PlasticClassPool.java | 20 +- .../corelib/pages/ComponentLibraries.java | 163 +- .../tapestry5/corelib/pages/ExceptionReport.java | 6 + .../tapestry5/corelib/pages/PageCatalog.java | 1 + .../corelib/pages/PageClassLoaderContexts.java | 104 ++ .../tapestry5/internal/ThrowawayClassLoader.java | 105 ++ .../ComponentDependencyGraphvizGeneratorImpl.java | 28 +- .../services/ComponentDependencyRegistry.java | 13 + .../services/ComponentDependencyRegistryImpl.java | 124 ++- .../services/ComponentInstantiatorSourceImpl.java | 64 +++- .../services/ComponentModelSourceImpl.java | 52 ++- .../internal/services/PageSourceImpl.java | 89 ++--- .../apache/tapestry5/modules/DashboardModule.java | 10 +- .../apache/tapestry5/modules/PageLoadModule.java | 34 +- .../services/pageload/PageClassLoaderContext.java | 52 ++- .../pageload/PageClassLoaderContextManager.java| 6 + .../PageClassLoaderContextManagerImpl.java | 358 ++--- .../tapestry5/corelib/pages/ComponentLibraries.tml | 289 ++--- .../apache/tapestry5/corelib/pages/PageCatalog.tml | 2 +- .../corelib/pages/PageClassLoaderContexts.tml | 17 + tapestry-core/src/test/app1/AtComponentType.tml| 6 + tapestry-core/src/test/app1/GridDemo.tml | 2 +- .../integration/app1/pages/AtComponentType.java| 24 ++ .../tapestry5/integration/app1/pages/GridDemo.java | 6 + .../ComponentDependencyRegistryImplTest.java | 149 +++-- tapestry-core/src/test/resources/log4j.properties | 1 + 27 files changed, 1413 insertions(+), 382 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java index 85a263b75..591ba3729 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java @@ -1,4 +1,4 @@ -// Copyright 2011 The Apache Software Foundation +// Copyright 2011, 2023, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,6 +14,14 @@ package org.apache.tapestry5.internal.plastic; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -35,6 +43,10 @@ public class PlasticClassLoader extends ClassLoader private String tag; +private Map> cache; + +private static List log = new ArrayList<>(); + public PlasticClassLoader(ClassLoader parent, ClassLoaderDelegate delegate) { super(parent); @@ -50,24 +62,36 @@ public class PlasticClassLoader extends ClassLoader if (loadedClass != null) return loadedClass; - + if (shouldInterceptClassLoading(name)) { -Class c = null; -if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) -{ -c = delegate.loadAndTransformClass(name); -} -else if (alternativeClassloading != null) + +Class c = getFromCache(name); + +if (c == null) { -c = alternativeClassloading.apply(name); + +if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) +{ +c = delegate.loadAndTransformClass(name); +} +else if (alternativeClassloading != null) +{ +c = alternativeClassloading.apply(name); +} + +if (cache != null && c != null) +
(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 fb40bbe65 TAP5-2779: multiple classloader fixes fb40bbe65 is described below commit fb40bbe6585b36b643b92ecff57b3cabbd67b66d Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 17 09:42:21 2024 -0300 TAP5-2779: multiple classloader fixes --- .../internal/plastic/PlasticClassLoader.java | 70 +++- .../internal/plastic/PlasticClassPool.java | 20 +- .../corelib/pages/ComponentLibraries.java | 163 +- .../tapestry5/corelib/pages/ExceptionReport.java | 6 + .../tapestry5/corelib/pages/PageCatalog.java | 1 + .../corelib/pages/PageClassLoaderContexts.java | 104 ++ .../tapestry5/internal/ThrowawayClassLoader.java | 105 ++ .../ComponentDependencyGraphvizGeneratorImpl.java | 28 +- .../services/ComponentDependencyRegistry.java | 13 + .../services/ComponentDependencyRegistryImpl.java | 124 ++- .../services/ComponentInstantiatorSourceImpl.java | 64 +++- .../services/ComponentModelSourceImpl.java | 52 ++- .../internal/services/PageSourceImpl.java | 89 ++--- .../apache/tapestry5/modules/DashboardModule.java | 10 +- .../apache/tapestry5/modules/PageLoadModule.java | 34 +- .../services/pageload/PageClassLoaderContext.java | 52 ++- .../pageload/PageClassLoaderContextManager.java| 6 + .../PageClassLoaderContextManagerImpl.java | 358 ++--- .../tapestry5/corelib/pages/ComponentLibraries.tml | 289 ++--- .../apache/tapestry5/corelib/pages/PageCatalog.tml | 2 +- .../corelib/pages/PageClassLoaderContexts.tml | 17 + tapestry-core/src/test/app1/AtComponentType.tml| 6 + tapestry-core/src/test/app1/GridDemo.tml | 2 +- .../integration/app1/pages/AtComponentType.java| 24 ++ .../tapestry5/integration/app1/pages/GridDemo.java | 6 + .../ComponentDependencyRegistryImplTest.java | 149 +++-- tapestry-core/src/test/resources/log4j.properties | 1 + 27 files changed, 1413 insertions(+), 382 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java index 85a263b75..591ba3729 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java @@ -1,4 +1,4 @@ -// Copyright 2011 The Apache Software Foundation +// Copyright 2011, 2023, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,6 +14,14 @@ package org.apache.tapestry5.internal.plastic; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -35,6 +43,10 @@ public class PlasticClassLoader extends ClassLoader private String tag; +private Map> cache; + +private static List log = new ArrayList<>(); + public PlasticClassLoader(ClassLoader parent, ClassLoaderDelegate delegate) { super(parent); @@ -50,24 +62,36 @@ public class PlasticClassLoader extends ClassLoader if (loadedClass != null) return loadedClass; - + if (shouldInterceptClassLoading(name)) { -Class c = null; -if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) -{ -c = delegate.loadAndTransformClass(name); -} -else if (alternativeClassloading != null) + +Class c = getFromCache(name); + +if (c == null) { -c = alternativeClassloading.apply(name); + +if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) +{ +c = delegate.loadAndTransformClass(name); +} +else if (alternativeClassloading != null) +{ +c = alternativeClassloading.apply(name); +} + +if (cache != null && c != null) +
(tapestry-5) 06/07: TAP5-2742: not processing dependencies when not in multiple classloader
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 4f6f99334fcc54d8318cba42b140c51428239136 Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Jul 9 23:07:10 2024 -0300 TAP5-2742: not processing dependencies when not in multiple classloader mode --- .../corelib/pages/PageClassLoaderContexts.java | 12 +- .../tapestry5/internal/ThrowawayClassLoader.java | 13 ++ .../services/ComponentInstantiatorSourceImpl.java | 36 +-- .../internal/services/PageSourceImpl.java | 65 +++--- .../apache/tapestry5/modules/PageLoadModule.java | 12 - .../PageClassLoaderContextManagerImpl.java | 243 ++--- .../tapestry5/integration/app1/pages/GridDemo.java | 8 +- 7 files changed, 195 insertions(+), 194 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageClassLoaderContexts.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageClassLoaderContexts.java index d8bd3a024..54a12b256 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageClassLoaderContexts.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageClassLoaderContexts.java @@ -47,6 +47,7 @@ public class PageClassLoaderContexts private void render(PageClassLoaderContext context, MarkupWriter writer) { +final int classes = context.getClassNames().size(); writer.element("li"); writer.element("details"); writer.element("summary"); @@ -55,7 +56,16 @@ public class PageClassLoaderContexts writer.write(context.getName()); writer.write(" ("); writer.write(((PlasticClassLoader) context.getClassLoader()).getClassLoaderId()); -writer.write(")"); +writer.write(", "); +writer.write(String.valueOf(classes)); +if (classes > 1) +{ +writer.write(" classes)"); +} +else +{ +writer.write(" class)"); +} writer.end(); // summary if (!context.isRoot() && !context.getClassNames().isEmpty()) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/ThrowawayClassLoader.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/ThrowawayClassLoader.java index 79851bfb0..62c133210 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/ThrowawayClassLoader.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/ThrowawayClassLoader.java @@ -83,6 +83,19 @@ public class ThrowawayClassLoader extends ClassLoader assertNotEquals(class2, class3); } + +public static Class load(final String className) +{ +ThrowawayClassLoader loader = new ThrowawayClassLoader( +ThrowawayClassLoader.class.getClassLoader()); +try +{ +return loader.loadClass(className); +} catch (ClassNotFoundException e) +{ +throw new RuntimeException(e); +} +} private static ClassLoader create(final ClassLoader parentClassLoader) { //return TapestryInternalUtils.createThrowawayClassloader(parentClassLoader); diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java index 5b7f1ff99..4d6b421d6 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java @@ -395,27 +395,31 @@ public final class ComponentInstantiatorSourceImpl implements ComponentInstantia // Make sure the dependencies have been processed in case // there was some invalidation going on and they're not there. - -final Set dependencies = new HashSet<>(); -dependencies.addAll( - componentDependencyRegistry.getDependencies(className, DependencyType.USAGE)); -dependencies.addAll( - componentDependencyRegistry.getDependencies(className, DependencyType.SUPERCLASS)); -for (String dependency : dependencies) + +if (multipleClassLoaders) { -if (!OPEN_INSTANTIATORS.get().contains(dependency)) + +final Set dependencies = new HashSet<>(); +depe
(tapestry-5) 01/07: TAP5-2779: fixing attempted duplicate class definition exception
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit a573e5d016624901495af25fddd8c3516ce30d38 Author: Thiago H. de Paula Figueiredo AuthorDate: Mon Jun 24 22:29:11 2024 -0300 TAP5-2779: fixing attempted duplicate class definition exception (pass 1, still with a lot of debugging and testing code and needing a big cleanup) --- .../internal/plastic/PlasticClassLoader.java | 107 +++- .../internal/plastic/PlasticClassPool.java | 20 +- .../corelib/pages/ComponentLibraries.java | 163 +++- .../tapestry5/corelib/pages/ExceptionReport.java | 6 + .../tapestry5/corelib/pages/PageCatalog.java | 1 + .../corelib/pages/PageClassLoaderContexts.java | 94 +++ .../tapestry5/internal/ThrowawayClassLoader.java | 92 +++ .../ComponentDependencyGraphvizGeneratorImpl.java | 28 +- .../services/ComponentDependencyRegistry.java | 7 + .../services/ComponentDependencyRegistryImpl.java | 17 +- .../services/ComponentInstantiatorSourceImpl.java | 63 - .../services/ComponentModelSourceImpl.java | 55 +++- .../apache/tapestry5/modules/DashboardModule.java | 10 +- .../apache/tapestry5/modules/PageLoadModule.java | 9 +- .../pageload/PageClassLoaderContextManager.java| 6 + .../PageClassLoaderContextManagerImpl.java | 117 +++-- .../tapestry5/corelib/pages/ComponentLibraries.tml | 289 + .../apache/tapestry5/corelib/pages/PageCatalog.tml | 2 +- .../corelib/pages/PageClassLoaderContexts.tml | 17 ++ tapestry-core/src/test/app1/AtComponentType.tml| 6 + tapestry-core/src/test/app1/GridDemo.tml | 2 +- .../integration/app1/pages/AtComponentType.java| 24 ++ .../tapestry5/integration/app1/pages/GridDemo.java | 6 + .../ComponentDependencyRegistryImplTest.java | 101 ++- tapestry-core/src/test/resources/log4j.properties | 1 + 25 files changed, 1040 insertions(+), 203 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java index 85a263b75..c0774c13a 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java @@ -1,4 +1,4 @@ -// Copyright 2011 The Apache Software Foundation +// Copyright 2011, 2023, 2024 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,6 +14,14 @@ package org.apache.tapestry5.internal.plastic; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -33,12 +41,21 @@ public class PlasticClassLoader extends ClassLoader private Function> alternativeClassloading; +private Consumer beforeLoadClass; + +private Set loadedClasses; + private String tag; +private Map> cache; + +private static List log = new ArrayList<>(); + public PlasticClassLoader(ClassLoader parent, ClassLoaderDelegate delegate) { super(parent); this.delegate = delegate; +loadedClasses = new HashSet<>(); } @Override @@ -50,24 +67,55 @@ public class PlasticClassLoader extends ClassLoader if (loadedClass != null) return loadedClass; - + if (shouldInterceptClassLoading(name)) { -Class c = null; -if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) -{ -c = delegate.loadAndTransformClass(name); + +if (name.equals("org.apache.tapestry5.integration.app1.pages.GridDemo")) { +System.out.println(); } -else if (alternativeClassloading != null) + +Class c = getFromCache(name); + +if (c == null) { -c = alternativeClassloading.apply(name); + +if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) +{ + +try { +log.add(String.format("Loading %s in %s", nam
(tapestry-5) 02/07: Adding ComponentDependencyRegistro.getAllNonPageDependencies(String)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit a23962a53feab6cee3e1bdaf1c08ed0ac423512a Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Jul 7 17:36:02 2024 -0300 Adding ComponentDependencyRegistro.getAllNonPageDependencies(String) --- .../services/ComponentDependencyRegistry.java | 6 +++ .../services/ComponentDependencyRegistryImpl.java | 52 -- .../ComponentDependencyRegistryImplTest.java | 48 +--- 3 files changed, 96 insertions(+), 10 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistry.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistry.java index 6c02ae75f..314c8e513 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistry.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistry.java @@ -112,6 +112,12 @@ public interface ComponentDependencyRegistry { */ Set getDependencies(String className, DependencyType type); +/** + * Returns all dependencies of a given class, direct and indirect. + * @param className a class name. + */ +Set getAllNonPageDependencies(String className); + /** * Signs up this registry to invalidation events from a given hub. */ diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index e8099b309..908b20a2a 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -83,6 +83,8 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis private static final String META_ATTRIBUTE_SEPARATOR = ","; +private static final String NO_DEPENDENCY = "NONE"; + // Key is a component, values are the components that depend on it. final private Map> map; @@ -150,10 +152,14 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis { final JSONObject jsonObject = jsonArray.getJSONObject(i); final String className = jsonObject.getString("class"); -final DependencyType dependencyType = DependencyType.valueOf(jsonObject.getString("type")); -final String dependency = jsonObject.getString("dependency"); -add(className, dependency, dependencyType); -alreadyProcessed.add(dependency); +final String type = jsonObject.getString("type"); +if (!type.equals(NO_DEPENDENCY)) +{ +final DependencyType dependencyType = DependencyType.valueOf(type); +final String dependency = jsonObject.getString("dependency"); +add(className, dependency, dependencyType); +alreadyProcessed.add(dependency); +} alreadyProcessed.add(className); } } catch (IOException e) @@ -555,7 +561,30 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis return dependencies; } +@Override +public Set getAllNonPageDependencies(String className) +{ +final Set dependencies = new HashSet<>(); +getAllNonPageDependencies(className, dependencies); +// Just in case, since it's possible to have circular dependencies. +dependencies.remove(className); +return Collections.unmodifiableSet(dependencies); +} + +private void getAllNonPageDependencies(String className, Set dependencies) +{ +Set theseDependencies = new HashSet<>(); +theseDependencies.addAll(getDependencies(className, DependencyType.USAGE)); +theseDependencies.addAll(getDependencies(className, DependencyType.SUPERCLASS)); +theseDependencies.removeAll(dependencies); +dependencies.addAll(theseDependencies); +for (String dependency : theseDependencies) +{ +getAllNonPageDependencies(dependency, dependencies); +} +} + private boolean contains(Set dependencies, String className, DependencyType type) { boolean contains = false; @@ -674,6 +
(tapestry-5) 07/07: TAP5-2779: avoiding an infinite method call recursion bug
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 3e675d6bbf967b4b8ce50e773fc54163b5b40360 Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Jul 9 23:34:11 2024 -0300 TAP5-2779: avoiding an infinite method call recursion bug --- .../internal/services/ComponentModelSourceImpl.java | 9 ++--- .../tapestry5/internal/services/PageSourceImpl.java | 17 +++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentModelSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentModelSourceImpl.java index 918d05e87..dcbfbc47e 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentModelSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentModelSourceImpl.java @@ -65,10 +65,13 @@ public class ComponentModelSourceImpl implements ComponentModelSource { pageSource.getPage(resolver.getLogicalName(componentClassName)); } -catch (Exception e) +catch (IllegalStateException e) { -e.printStackTrace(); -//ignore +// This can be thrown in PageSourceImpl in case an +// infinite method call recursion is detected. In +// that case, the page instance is already created, +// so the objective of the line above is already +// fulfilled and we can safely ignore the exception } } } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java index bc29a45af..38ab835fd 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java @@ -110,6 +110,9 @@ public class PageSourceImpl implements PageSource private final Map pageCache = CollectionFactory.newConcurrentMap(); private final Map abstractClassInfoCache = CollectionFactory.newConcurrentMap(); + +private final static ThreadLocal CURRENT_PAGE = +ThreadLocal.withInitial(() -> null); public PageSourceImpl(PageLoader pageLoader, ComponentRequestSelectorAnalyzer selectorAnalyzer, ComponentDependencyRegistry componentDependencyRegistry, @@ -178,6 +181,15 @@ public class PageSourceImpl implements PageSource final String className = componentClassResolver.resolvePageNameToClassName(canonicalPageName); if (multipleClassLoaders) { + +if (canonicalPageName.equals(CURRENT_PAGE.get())) +{ +throw new IllegalStateException("Infinite method loop detected. Bailing out."); +} +else +{ +CURRENT_PAGE.set(canonicalPageName); +} // Avoiding problems in PlasticClassPool.createTransformation() // when the class being loaded has a page superclass @@ -197,7 +209,7 @@ public class PageSourceImpl implements PageSource final String resolvedDependencyPageClass = componentClassResolver.resolvePageNameToClassName(dependencyPageName); if (!canonicalPageName.equals(dependencyPageName) && !className.equals(resolvedDependencyPageClass) -&& !isAbstract(className)) +&& !isAbstract(dependencyClassName)) { page = getPage(dependencyPageName, invalidateUnknownContext, alreadyProcessed); @@ -358,8 +370,9 @@ public class PageSourceImpl implements PageSource private boolean isAbstract(final String className) { -return abstractClassInfoCache.computeIfAbsent(className, +final Boolean computeIfAbsent = abstractClassInfoCache.computeIfAbsent(className, (s) -> Modifier.isAbstract(ThrowawayClassLoader.load(className).getModifiers())); +return computeIfAbsent; } }
(tapestry-5) 04/07: TAP5-2742: don't invalidate classes when preloading contexts
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit b46516bedf82d87129981caf2f73a7c9dc09f0be Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Jul 7 17:46:53 2024 -0300 TAP5-2742: don't invalidate classes when preloading contexts --- .../PageClassLoaderContextManagerImpl.java | 29 ++ 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index 123e356b2..83b19cfb9 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -73,6 +73,8 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext private Function plasticProxyFactoryProvider; private PageClassLoaderContext root; + +private boolean preloadingContexts; public PageClassLoaderContextManagerImpl( final ComponentDependencyRegistry componentDependencyRegistry, @@ -637,7 +639,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext } private void invalidate(Set classesToInvalidate) { -if (!classesToInvalidate.isEmpty()) +if (!classesToInvalidate.isEmpty() && !preloadingContexts) { LOGGER.debug("Invalidating classes {}", classesToInvalidate); markAsInvalidatingContext(); @@ -757,19 +759,26 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext classNames.sort(ClassNameComparator.INSTANCE); int runs = 0; +preloadingContexts = true; -// The run counter check is to just avoid possible infinite loops, -// although that's very unlikely. -int contexts = -1; -while (runs < 5000 && contexts < CONTEXTS_CREATED.get().get()) +try { -runs++; -contexts = CONTEXTS_CREATED.get().get(); -for (String className : classNames) +// The run counter check is to just avoid possible infinite loops, +// although that's very unlikely. +int contexts = -1; +while (runs < 5000 && contexts < CONTEXTS_CREATED.get().get()) { -get(className); +runs++; +contexts = CONTEXTS_CREATED.get().get(); +for (String className : classNames) +{ +get(className); +} } -//Collections.reverse(classNames); +} +finally +{ +preloadingContexts = false; } finish = System.currentTimeMillis();
(tapestry-5) 05/07: TAP5-2742: handling non-existing references to mixins and components
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 9d0c033ba57be4ff571688a4e6c7bd7c601ab578 Author: Thiago H. de Paula Figueiredo AuthorDate: Tue Jul 9 23:04:46 2024 -0300 TAP5-2742: handling non-existing references to mixins and components plus on-demand processing of dependencies --- .../services/ComponentDependencyRegistryImpl.java | 55 +++--- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 908b20a2a..fcaec091b 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -46,7 +46,9 @@ import org.apache.tapestry5.annotations.Mixins; import org.apache.tapestry5.commons.Resource; import org.apache.tapestry5.commons.internal.util.TapestryException; import org.apache.tapestry5.commons.services.InvalidationEventHub; +import org.apache.tapestry5.commons.util.UnknownValueException; import org.apache.tapestry5.internal.TapestryInternalUtils; +import org.apache.tapestry5.internal.ThrowawayClassLoader; import org.apache.tapestry5.internal.parser.ComponentTemplate; import org.apache.tapestry5.internal.parser.StartComponentToken; import org.apache.tapestry5.internal.parser.TemplateToken; @@ -300,15 +302,34 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis String logicalName = componentToken.getComponentType(); if (logicalName != null) { -dependency = resolver.resolveComponentTypeToClassName(logicalName); -add(className, dependency, DependencyType.USAGE); -processClassName.accept(dependency); +try +{ +dependency = resolver.resolveComponentTypeToClassName(logicalName); +add(className, dependency, DependencyType.USAGE); +processClassName.accept(dependency); +} +catch (UnknownValueException e) +{ +// Logical name doesn't match an existing component. Ignore +} } for (String mixin : TapestryInternalUtils.splitAtCommas(componentToken.getMixins())) { -dependency = resolver.resolveMixinTypeToClassName(mixin); -add(className, dependency, DependencyType.USAGE); -processClassName.accept(dependency); +try +{ +if (mixin.contains("::")) +{ +mixin = mixin.substring(0, mixin.indexOf("::")); +} +dependency = resolver.resolveMixinTypeToClassName(mixin); +add(className, dependency, DependencyType.USAGE); +processClassName.accept(dependency); +} +catch (UnknownValueException e) +{ +// Mixin name doesn't match an existing mixin. Ignore +} + } } } @@ -540,15 +561,21 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis @Override public Set getDependents(String className) { + +ensureClassIsAlreadyProcessed(className); + final Set dependents = map.get(className); return dependents != null ? dependents.stream().map(d -> d.className).collect(Collectors.toSet()) : Collections.emptySet(); } - + @Override public Set getDependencies(String className, DependencyType type) { + +ensureClassIsAlreadyProcessed(className); + Set dependencies = Collections.emptySet(); if (alreadyProcessed.contains(className)) { @@ -793,6 +820,20 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis } } +private void ensureClassIsAlreadyProcessed(String className) { +if (!contains(className)) +{ +ThrowawayClassLoader classLoader = new ThrowawayClassLoader(getClass().getClassLoader()); +try +
(tapestry-5) branch TAP5-2779 created (now 3e675d6bb)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 3e675d6bb TAP5-2779: avoiding an infinite method call recursion bug This branch includes the following new commits: new a573e5d01 TAP5-2779: fixing attempted duplicate class definition exception new a23962a53 Adding ComponentDependencyRegistro.getAllNonPageDependencies(String) new 7493ad7fc Another pass at getting closer to the end of TAP5-2742 new b46516bed TAP5-2742: don't invalidate classes when preloading contexts new 9d0c033ba TAP5-2742: handling non-existing references to mixins and components new 4f6f99334 TAP5-2742: not processing dependencies when not in multiple classloader new 3e675d6bb TAP5-2779: avoiding an infinite method call recursion bug The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(tapestry-5) 03/07: Another pass at getting closer to the end of TAP5-2742
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch TAP5-2779 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git commit 7493ad7fc5b6f88238b59b9a8c1abb4b87ff74d4 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Jul 7 17:42:29 2024 -0300 Another pass at getting closer to the end of TAP5-2742 --- .../internal/plastic/PlasticClassLoader.java | 41 + .../services/ComponentInstantiatorSourceImpl.java | 7 +- .../services/ComponentModelSourceImpl.java | 6 - .../internal/services/PageSourceImpl.java | 11 -- .../apache/tapestry5/modules/PageLoadModule.java | 19 ++- .../services/pageload/PageClassLoaderContext.java | 52 +-- .../PageClassLoaderContextManagerImpl.java | 171 + 7 files changed, 174 insertions(+), 133 deletions(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java index c0774c13a..591ba3729 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java @@ -41,10 +41,6 @@ public class PlasticClassLoader extends ClassLoader private Function> alternativeClassloading; -private Consumer beforeLoadClass; - -private Set loadedClasses; - private String tag; private Map> cache; @@ -55,7 +51,6 @@ public class PlasticClassLoader extends ClassLoader { super(parent); this.delegate = delegate; -loadedClasses = new HashSet<>(); } @Override @@ -71,10 +66,6 @@ public class PlasticClassLoader extends ClassLoader if (shouldInterceptClassLoading(name)) { -if (name.equals("org.apache.tapestry5.integration.app1.pages.GridDemo")) { -System.out.println(); -} - Class c = getFromCache(name); if (c == null) @@ -82,19 +73,7 @@ public class PlasticClassLoader extends ClassLoader if ((filter != null && filter.test(name)) || (filter == null && delegate.shouldInterceptClassLoading(name))) { - -try { -log.add(String.format("Loading %s in %s", name, this)); -c = delegate.loadAndTransformClass(name); -} -catch (LinkageError e) { -e.printStackTrace(); -for (String entry : log) { -System.out.println(entry); -} -System.out.println(); -throw e; -} +c = delegate.loadAndTransformClass(name); } else if (alternativeClassloading != null) { @@ -113,9 +92,6 @@ public class PlasticClassLoader extends ClassLoader return super.loadClass(name, resolve); } - -//loadedClasses.add(name + " : " + System.currentTimeMillis()); - if (resolve) resolveClass(c); @@ -136,10 +112,6 @@ public class PlasticClassLoader extends ClassLoader { synchronized(getClassLoadingLock(className)) { -if (className.equals("org.apache.tapestry5.integration.app1.pages.GridDemo")) -{ -System.out.println(); -} return defineClass(className, bytecode, 0, bytecode.length); } } @@ -205,15 +177,4 @@ public class PlasticClassLoader extends ClassLoader return c; } -///** -// * Sets a {@linkplain Consumer} that will be called before a transformed -// * class is loaded. -// * @param beforeLoadClass the Consumer<String>. -// * @since 5.8.7 -// */ -//public void setBeforeLoadClass(Consumer beforeLoadClass) -//{ -//this.beforeLoadClass = beforeLoadClass; -//} - } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java index 4a2b296b5..5b7f1ff99 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java @@ -399,8 +399,8 @@ public
(tapestry-5) branch javax updated: TAP5-2780: Fixing JSONObject to honour equals/hashCode contract (#48)
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 9a68b57c4 TAP5-2780: Fixing JSONObject to honour equals/hashCode contract (#48) 9a68b57c4 is described below commit 9a68b57c4034062168bc371e5aebfba420ef2179 Author: Manuel Koller AuthorDate: Sun Jun 23 08:31:06 2024 +0200 TAP5-2780: Fixing JSONObject to honour equals/hashCode contract (#48) Added tests for both JSONObject and JSONArray. The latter required no change to get the test to pass. Co-authored-by: Manuel Koller --- .../java/org/apache/tapestry5/json/JSONObject.java | 5 + .../src/test/groovy/json/specs/JSONArraySpec.groovy | 19 +++ .../test/groovy/json/specs/JSONObjectSpec.groovy| 21 + 3 files changed, 45 insertions(+) diff --git a/tapestry-json/src/main/java/org/apache/tapestry5/json/JSONObject.java b/tapestry-json/src/main/java/org/apache/tapestry5/json/JSONObject.java index b9ac448bd..321085ed5 100644 --- a/tapestry-json/src/main/java/org/apache/tapestry5/json/JSONObject.java +++ b/tapestry-json/src/main/java/org/apache/tapestry5/json/JSONObject.java @@ -893,6 +893,11 @@ public final class JSONObject extends JSONCollection implements Map
(tapestry-5) 02/02: TAP5-2605: google closure compiler use generic filename
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 commit 5bd182b9ca157c192e6b599b264dd6fb872ac0ea Author: Ben Weidig AuthorDate: Sat May 11 12:50:33 2024 +0200 TAP5-2605: google closure compiler use generic filename --- .../tapestry5/internal/webresources/GoogleClosureMinimizer.java | 6 -- .../webresources/GoogleClosureMinimizerOptionsProvider.java | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java index 1fee97dd0..b134b2bad 100644 --- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java +++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java @@ -94,7 +94,8 @@ public class GoogleClosureMinimizer extends AbstractMinimizer compiler.disableThreads(); String source = IOUtils.toString(resource.openStream(), StandardCharsets.UTF_8); -SourceFile input = SourceFile.fromCode(resource.toString(), source); + +SourceFile input = SourceFile.fromCode("streamable-resource", source); List inputs = Collections.singletonList(input); @@ -105,7 +106,8 @@ public class GoogleClosureMinimizer extends AbstractMinimizer return IOUtils.toInputStream(compiler.toSource(), StandardCharsets.UTF_8); } -throw new RuntimeException(String.format("Compilation failed: %s.", +throw new RuntimeException(String.format("Compilation failed for %s. Errors: %s.", + resource, InternalUtils.join(CollectionFactory.newList(result.errors), ";"))); } } diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/GoogleClosureMinimizerOptionsProvider.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/GoogleClosureMinimizerOptionsProvider.java index 906c797df..34cfc8d41 100644 --- a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/GoogleClosureMinimizerOptionsProvider.java +++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/GoogleClosureMinimizerOptionsProvider.java @@ -4,7 +4,6 @@ import java.util.Optional; import org.apache.tapestry5.services.assets.StreamableResource; -import com.google.javascript.jscomp.Compiler; import com.google.javascript.jscomp.CompilerOptions; /**
(tapestry-5) branch master updated (e0345b6d5 -> 5bd182b9c)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/tapestry-5.git from e0345b6d5 TAP5-2780: Fixing JSONObject to honour equals/hashCode contract (#48) new a3edcff35 TAP5-2777: upgrade google closure compiler to v20220502 new 5bd182b9c TAP5-2605: google closure compiler use generic filename The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: tapestry-webresources/build.gradle | 2 +- .../tapestry5/internal/webresources/GoogleClosureMinimizer.java| 7 +-- .../webresources/GoogleClosureMinimizerOptionsProvider.java| 1 - 3 files changed, 6 insertions(+), 4 deletions(-)
(tapestry-5) 01/02: TAP5-2777: upgrade google closure compiler to v20220502
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 commit a3edcff35df929bcd21aea9f2fa4969fc3147757 Author: Ben Weidig AuthorDate: Sat May 11 12:48:56 2024 +0200 TAP5-2777: upgrade google closure compiler to v20220502 --- tapestry-webresources/build.gradle | 2 +- .../apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tapestry-webresources/build.gradle b/tapestry-webresources/build.gradle index f573f2dc2..3e3226995 100644 --- a/tapestry-webresources/build.gradle +++ b/tapestry-webresources/build.gradle @@ -9,7 +9,7 @@ description = "Integration with WRO4J to perform runtime CoffeeScript compilatio dependencies { apiproject(":tapestry-core") testImplementation project(":tapestry-test") -api"com.google.javascript:closure-compiler-unshaded:v20200504" +api"com.google.javascript:closure-compiler-unshaded:v20220502" implementation "com.github.sommeri:less4j:1.12.0" compileOnly"com.google.auto.value:auto-value-annotations:1.9" diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java index c3b268bcd..1fee97dd0 100644 --- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java +++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java @@ -93,7 +93,8 @@ public class GoogleClosureMinimizer extends AbstractMinimizer compiler.disableThreads(); -SourceFile input = SourceFile.fromInputStream(resource.toString(), resource.openStream(), StandardCharsets.UTF_8); +String source = IOUtils.toString(resource.openStream(), StandardCharsets.UTF_8); +SourceFile input = SourceFile.fromCode(resource.toString(), source); List inputs = Collections.singletonList(input);
(tapestry-5) branch master updated: Fixing JavaDoc
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 5655dd7fc Fixing JavaDoc 5655dd7fc is described below commit 5655dd7fcb0441971147670254dd54800b93f4c0 Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 24 09:24:34 2024 -0300 Fixing JavaDoc --- .../main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java b/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java index a10ecfeb7..6c05850fa 100644 --- a/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java @@ -75,7 +75,7 @@ public interface PropertyValueProvider * * * This is an utility method to avoid having to make casts very time you need to call - * {@linkplain #__propertyValueProvider__set(String)}. + * {@linkplain #__propertyValueProvider__set(String, Object)}. * * @param object an object. * @param fieldName the field name.
(tapestry-5) branch javax updated: Fixing JavaDoc
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 787386d19 Fixing JavaDoc 787386d19 is described below commit 787386d19bcdde24a8fe273b30530cffce161e01 Author: Thiago H. de Paula Figueiredo AuthorDate: Fri May 24 09:24:34 2024 -0300 Fixing JavaDoc --- .../main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java b/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java index a10ecfeb7..6c05850fa 100644 --- a/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java +++ b/plastic/src/main/java/org/apache/tapestry5/plastic/PropertyValueProvider.java @@ -75,7 +75,7 @@ public interface PropertyValueProvider * * * This is an utility method to avoid having to make casts very time you need to call - * {@linkplain #__propertyValueProvider__set(String)}. + * {@linkplain #__propertyValueProvider__set(String, Object)}. * * @param object an object. * @param fieldName the field name.
(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); +b
(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); +b
(tapestry-5) branch master updated: TAP5-2775: exception in production mode and array parameter
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 bbfd4336f TAP5-2775: exception in production mode and array parameter bbfd4336f is described below commit bbfd4336f300772b07ccde98a98998cb5f9cca90 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 20 10:02:17 2024 -0300 TAP5-2775: exception in production mode and array parameter --- .../services/pageload/PageClassLoaderContextManagerImpl.java | 8 +++- .../tapestry5/integration/app1/components/SubclassWithImport.java | 6 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index f2a20ead5..afe8a6746 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -126,7 +126,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext { PageClassLoaderContext context; -final String enclosingClassName = PlasticUtils.getEnclosingClassName(className); +final String enclosingClassName = getAdjustedClassName(className); context = root.findByClassName(enclosingClassName); if (context == null) @@ -156,6 +156,12 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext } +private String getAdjustedClassName(final String className) +{ +return PlasticUtils.getEnclosingClassName(className) +.replaceAll("\\[\\]", ""); +} + private PageClassLoaderContext getUnknownContext(final PageClassLoaderContext root, final Function plasticProxyFactoryProvider) { diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java index 9f3a743c4..9b865bef8 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java @@ -3,10 +3,16 @@ package org.apache.tapestry5.integration.app1.components; import org.apache.tapestry5.MarkupWriter; import org.apache.tapestry5.annotations.Cached; import org.apache.tapestry5.annotations.Import; +import org.apache.tapestry5.annotations.Parameter; +import org.apache.tapestry5.corelib.components.Zone; @Import(stylesheet = "context:css/ie-only.css") public class SubclassWithImport extends SuperclassWithImport { +// Just to test a bug happening when a parameter is an array type +@Parameter +private Zone[][][][][] zones; + @Cached public int getInt() {
(tapestry-5) branch javax updated: TAP5-2775: exception in production mode and array parameter
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 3ac943a1b TAP5-2775: exception in production mode and array parameter 3ac943a1b is described below commit 3ac943a1b374cef0fa15bb9bd638da68a340c3e8 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 20 10:02:17 2024 -0300 TAP5-2775: exception in production mode and array parameter --- .../services/pageload/PageClassLoaderContextManagerImpl.java | 8 +++- .../tapestry5/integration/app1/components/SubclassWithImport.java | 6 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index f2a20ead5..afe8a6746 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -126,7 +126,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext { PageClassLoaderContext context; -final String enclosingClassName = PlasticUtils.getEnclosingClassName(className); +final String enclosingClassName = getAdjustedClassName(className); context = root.findByClassName(enclosingClassName); if (context == null) @@ -156,6 +156,12 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext } +private String getAdjustedClassName(final String className) +{ +return PlasticUtils.getEnclosingClassName(className) +.replaceAll("\\[\\]", ""); +} + private PageClassLoaderContext getUnknownContext(final PageClassLoaderContext root, final Function plasticProxyFactoryProvider) { diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java index 9f3a743c4..9b865bef8 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java @@ -3,10 +3,16 @@ package org.apache.tapestry5.integration.app1.components; import org.apache.tapestry5.MarkupWriter; import org.apache.tapestry5.annotations.Cached; import org.apache.tapestry5.annotations.Import; +import org.apache.tapestry5.annotations.Parameter; +import org.apache.tapestry5.corelib.components.Zone; @Import(stylesheet = "context:css/ie-only.css") public class SubclassWithImport extends SuperclassWithImport { +// Just to test a bug happening when a parameter is an array type +@Parameter +private Zone[][][][][] zones; + @Cached public int getInt() {
(tapestry-5) branch javax updated: Bumping version to 5.8.7 after release
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 4d02b8fb6 Bumping version to 5.8.7 after release 4d02b8fb6 is described below commit 4d02b8fb66140b2ec12ec7afd489091f8e9843f0 Author: Thiago H. de Paula Figueiredo AuthorDate: Wed Apr 17 09:46:58 2024 -0300 Bumping version to 5.8.7 after release --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e36ed4d2e..4f410c991 100755 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.6" +def major = "5.8.7" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
svn commit: r1086231 - in /websites/production/tapestry/content: ./ 5.8.5/ 5.8.6/ 5.8.6/apidocs/ 5.8.6/apidocs/index-files/ 5.8.6/apidocs/jquery/ 5.8.6/apidocs/jquery/external/ 5.8.6/apidocs/jquery/ex
Author: thiagohp Date: Tue Apr 16 23:50:25 2024 New Revision: 1086231 Log: Tapestry 5.8.6 [This commit notification would consist of 958 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.]
svn commit: r68592 - /release/tapestry/
Author: thiagohp Date: Tue Apr 16 23:28:40 2024 New Revision: 68592 Log: Tapestry 5.8.6 Added: release/tapestry/apache-tapestry-5.8.6-apidocs.zip (with props) release/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 release/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 release/tapestry/apache-tapestry-5.8.6-bin.zip (with props) release/tapestry/apache-tapestry-5.8.6-bin.zip.md5 release/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 release/tapestry/apache-tapestry-5.8.6-sources.zip (with props) release/tapestry/apache-tapestry-5.8.6-sources.zip.md5 release/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 Added: release/tapestry/apache-tapestry-5.8.6-apidocs.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.6-apidocs.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 == --- release/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +fd256ca094190f9f7630f58a57fda651 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +d1d09ce956cef5954df1c83610cf408f40bbdb23ae4f6dd99eacefbcf33df9a2 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.6-bin.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.6-bin.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.6-bin.zip.md5 == --- release/tapestry/apache-tapestry-5.8.6-bin.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.6-bin.zip.md5 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +375af21a01312eb6a81604538e7a8a6d \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +b85c9931373fccd2b58268b9ddda7590a4269db175ea67af86714e68f395ba0c \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.6-sources.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.6-sources.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.6-sources.zip.md5 == --- release/tapestry/apache-tapestry-5.8.6-sources.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.6-sources.zip.md5 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +61b1abbd541af8ce8e6cf7aa4772a6f6 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 Tue Apr 16 23:28:40 2024 @@ -0,0 +1 @@ +c8a8de2379eca7395fb98efa9f0240cef8a834b4afa094496355d1254bb8bafb \ No newline at end of file
svn commit: r68411 - /dev/tapestry/
Author: thiagohp Date: Wed Apr 10 00:42:57 2024 New Revision: 68411 Log: Tapestry 5.8.6 Added: dev/tapestry/apache-tapestry-5.8.6-apidocs.zip (with props) dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 dev/tapestry/apache-tapestry-5.8.6-bin.zip (with props) dev/tapestry/apache-tapestry-5.8.6-bin.zip.md5 dev/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 dev/tapestry/apache-tapestry-5.8.6-sources.zip (with props) dev/tapestry/apache-tapestry-5.8.6-sources.zip.md5 dev/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 Added: dev/tapestry/apache-tapestry-5.8.6-apidocs.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.6-apidocs.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.md5 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +fd256ca094190f9f7630f58a57fda651 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.6-apidocs.zip.sha256 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +d1d09ce956cef5954df1c83610cf408f40bbdb23ae4f6dd99eacefbcf33df9a2 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.6-bin.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.6-bin.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.6-bin.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.6-bin.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.6-bin.zip.md5 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +375af21a01312eb6a81604538e7a8a6d \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.6-bin.zip.sha256 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +b85c9931373fccd2b58268b9ddda7590a4269db175ea67af86714e68f395ba0c \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.6-sources.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.6-sources.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.6-sources.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.6-sources.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.6-sources.zip.md5 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +61b1abbd541af8ce8e6cf7aa4772a6f6 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.6-sources.zip.sha256 Wed Apr 10 00:42:57 2024 @@ -0,0 +1 @@ +c8a8de2379eca7395fb98efa9f0240cef8a834b4afa094496355d1254bb8bafb \ No newline at end of file
(tapestry-5) tag 5.8.6 created (now 7871208a5)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.6 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 7871208a5 (commit) No new revisions were added by this update.
(tapestry-5) branch javax updated: TAP5-2773: avoiding an infinite recursion loop
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 7871208a5 TAP5-2773: avoiding an infinite recursion loop 7871208a5 is described below commit 7871208a5720b2a80990eb56024d96573df9f349 Author: Thiago H. de Paula Figueiredo AuthorDate: Mon Apr 8 23:24:13 2024 -0300 TAP5-2773: avoiding an infinite recursion loop --- .../PageClassLoaderContextManagerImpl.java | 23 -- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index 1fbf97867..f2a20ead5 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -248,8 +248,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext for (String dependency : dependencies) { // Avoid infinite recursion loops -if (!alreadyProcessed.contains(dependency)/* && -!circularDependencies.contains(dependency)*/) +if (!alreadyProcessed.contains(dependency)) { processUsingDependencies(dependency, root, unknownContextProvider, plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed, false); @@ -261,15 +260,19 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext for (String dependency : dependencies) { PageClassLoaderContext dependencyContext = root.findByClassName(dependency); -if (dependencyContext == null) -{ -dependencyContext = processUsingDependencies(dependency, root, unknownContextProvider, -plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed); - -} -if (!dependencyContext.isRoot()) +// Avoid infinite recursion loops +if (!alreadyProcessed.contains(dependency)) { -contextDependencies.add(dependencyContext); +if (dependencyContext == null) +{ +dependencyContext = processUsingDependencies(dependency, root, unknownContextProvider, +plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed); + +} +if (!dependencyContext.isRoot()) +{ +contextDependencies.add(dependencyContext); +} } }
(tapestry-5) branch master updated: TAP5-2773: avoiding an infinite recursion loop
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 9af6eb9eb TAP5-2773: avoiding an infinite recursion loop 9af6eb9eb is described below commit 9af6eb9eb5c889768162112ddae7d86fa7b51963 Author: Thiago H. de Paula Figueiredo AuthorDate: Mon Apr 8 23:24:13 2024 -0300 TAP5-2773: avoiding an infinite recursion loop --- .../PageClassLoaderContextManagerImpl.java | 23 -- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index 1fbf97867..f2a20ead5 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -248,8 +248,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext for (String dependency : dependencies) { // Avoid infinite recursion loops -if (!alreadyProcessed.contains(dependency)/* && -!circularDependencies.contains(dependency)*/) +if (!alreadyProcessed.contains(dependency)) { processUsingDependencies(dependency, root, unknownContextProvider, plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed, false); @@ -261,15 +260,19 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext for (String dependency : dependencies) { PageClassLoaderContext dependencyContext = root.findByClassName(dependency); -if (dependencyContext == null) -{ -dependencyContext = processUsingDependencies(dependency, root, unknownContextProvider, -plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed); - -} -if (!dependencyContext.isRoot()) +// Avoid infinite recursion loops +if (!alreadyProcessed.contains(dependency)) { -contextDependencies.add(dependencyContext); +if (dependencyContext == null) +{ +dependencyContext = processUsingDependencies(dependency, root, unknownContextProvider, +plasticProxyFactoryProvider, classesToInvalidate, alreadyProcessed); + +} +if (!dependencyContext.isRoot()) +{ +contextDependencies.add(dependencyContext); +} } }
(tapestry-5) branch master updated: Adding a bit of debugging logging to PageClassLoaderContextManagerImpl
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 b1afeeb9d Adding a bit of debugging logging to PageClassLoaderContextManagerImpl b1afeeb9d is described below commit b1afeeb9d40d4c3ec9bb69552a0123aade8c0bec Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 6 15:35:50 2024 -0300 Adding a bit of debugging logging to PageClassLoaderContextManagerImpl --- .../tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index dd437a3cf..1fbf97867 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -221,6 +221,8 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext if (context == null) { +LOGGER.debug("Processing class {}", className); + // Class isn't in a controlled package, so it doesn't get transformed // and should go for the root context, which is never thrown out. if (!root.getPlasticManager().shouldInterceptClassLoading(className))
(tapestry-5) branch javax updated: Adding a bit of debugging logging to PageClassLoaderContextManagerImpl
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 1ea8ff090 Adding a bit of debugging logging to PageClassLoaderContextManagerImpl 1ea8ff090 is described below commit 1ea8ff090fdcc29117704dc485456b462abaa59e Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 6 15:35:50 2024 -0300 Adding a bit of debugging logging to PageClassLoaderContextManagerImpl --- .../tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java index dd437a3cf..1fbf97867 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassLoaderContextManagerImpl.java @@ -221,6 +221,8 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext if (context == null) { +LOGGER.debug("Processing class {}", className); + // Class isn't in a controlled package, so it doesn't get transformed // and should go for the root context, which is never thrown out. if (!root.getPlasticManager().shouldInterceptClassLoading(className))
(tapestry-5) branch master updated: TAP5-2773: NPE when production mode on and template overrides
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 834c1ab0b TAP5-2773: NPE when production mode on and template overrides 834c1ab0b is described below commit 834c1ab0ba8a3309b5753ee2529774a04e6397d2 Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 6 15:23:53 2024 -0300 TAP5-2773: NPE when production mode on and template overrides --- .../internal/parser/ComponentTemplate.java | 9 .../internal/parser/ComponentTemplateImpl.java | 7 ++ .../services/ComponentDependencyRegistryImpl.java | 11 - .../services/ComponentTemplateSourceImpl.java | 8 ++- .../ComponentDependencyRegistryImplTest.java | 27 +++--- .../integration/app1/base/BaseLayoutPage.tml | 2 ++ .../app1/components/SubclassWithImport.tml | 9 .../app1/components/SuperclassWithImport.tml | 11 + 8 files changed, 79 insertions(+), 5 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java index 02c58181d..9e3bf18ed 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java @@ -14,6 +14,7 @@ package org.apache.tapestry5.internal.parser; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.tapestry5.commons.Location; import org.apache.tapestry5.commons.Resource; @@ -55,6 +56,14 @@ public interface ComponentTemplate * @since 5.1.0.1 */ List getExtensionPointTokens(String extensionPointId); + +/** + * Returns the extension point ids, including both <t:extension-point> + * and <t:replace>. + * @return set of extension point ids. + * @since 5.8.5 + */ +Set getExtensionPointIds(); /** * Returns the resource that was parsed to form the template. diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java index e1616546f..42d8c18de 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java @@ -19,8 +19,10 @@ import org.apache.tapestry5.ioc.internal.util.InternalUtils; import static org.apache.tapestry5.commons.util.CollectionFactory.newList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; public class ComponentTemplateImpl implements ComponentTemplate { @@ -93,6 +95,11 @@ public class ComponentTemplateImpl implements ComponentTemplate { return InternalUtils.get(overrides, extensionPointId); } + +public Set getExtensionPointIds() +{ +return overrides != null ? overrides.keySet() : Collections.emptySet(); +} public boolean isExtension() { diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 594cb72ef..090d71268 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -270,7 +271,15 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis if (templateResource != null) { final ComponentTemplate template = templateParser.parseTemplate(templateResource); -for (TemplateToken token: template.getTokens()) +final List tokens = new LinkedList<>(); + +tokens.addAll(template.getTokens()); +for (String id : template.getExtensionPointIds()) +{ +tokens.addAll(template.getExtensionPointTokens(id)); +} + +for (TemplateToken token : tokens) { if (token instanceof StartComponentToken) { diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5
(tapestry-5) branch javax updated: TAP5-2773: NPE when production mode on and template overrides
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 19bbf35c3 TAP5-2773: NPE when production mode on and template overrides 19bbf35c3 is described below commit 19bbf35c3fac3358ba1703227fa6023766904eec Author: Thiago H. de Paula Figueiredo AuthorDate: Sat Apr 6 15:23:53 2024 -0300 TAP5-2773: NPE when production mode on and template overrides --- .../internal/parser/ComponentTemplate.java | 9 .../internal/parser/ComponentTemplateImpl.java | 7 ++ .../services/ComponentDependencyRegistryImpl.java | 11 - .../services/ComponentTemplateSourceImpl.java | 8 ++- .../ComponentDependencyRegistryImplTest.java | 27 +++--- .../integration/app1/base/BaseLayoutPage.tml | 2 ++ .../app1/components/SubclassWithImport.tml | 9 .../app1/components/SuperclassWithImport.tml | 11 + 8 files changed, 79 insertions(+), 5 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java index 02c58181d..9e3bf18ed 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplate.java @@ -14,6 +14,7 @@ package org.apache.tapestry5.internal.parser; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.tapestry5.commons.Location; import org.apache.tapestry5.commons.Resource; @@ -55,6 +56,14 @@ public interface ComponentTemplate * @since 5.1.0.1 */ List getExtensionPointTokens(String extensionPointId); + +/** + * Returns the extension point ids, including both <t:extension-point> + * and <t:replace>. + * @return set of extension point ids. + * @since 5.8.5 + */ +Set getExtensionPointIds(); /** * Returns the resource that was parsed to form the template. diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java index e1616546f..42d8c18de 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/parser/ComponentTemplateImpl.java @@ -19,8 +19,10 @@ import org.apache.tapestry5.ioc.internal.util.InternalUtils; import static org.apache.tapestry5.commons.util.CollectionFactory.newList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; public class ComponentTemplateImpl implements ComponentTemplate { @@ -93,6 +95,11 @@ public class ComponentTemplateImpl implements ComponentTemplate { return InternalUtils.get(overrides, extensionPointId); } + +public Set getExtensionPointIds() +{ +return overrides != null ? overrides.keySet() : Collections.emptySet(); +} public boolean isExtension() { diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 594cb72ef..090d71268 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -270,7 +271,15 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis if (templateResource != null) { final ComponentTemplate template = templateParser.parseTemplate(templateResource); -for (TemplateToken token: template.getTokens()) +final List tokens = new LinkedList<>(); + +tokens.addAll(template.getTokens()); +for (String id : template.getExtensionPointIds()) +{ +tokens.addAll(template.getExtensionPointTokens(id)); +} + +for (TemplateToken token : tokens) { if (token instanceof StartComponentToken) { diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5
(tapestry-5) branch javax updated: Changing version to 5.8.6.
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 8688cd818 Changing version to 5.8.6. 8688cd818 is described below commit 8688cd818f3cafbd770a66e08117dcf7a7a7639d Author: Volker Lamp AuthorDate: Sat Apr 6 12:16:33 2024 -0300 Changing version to 5.8.6. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c4c209c13..e36ed4d2e 100755 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ project.version = tapestryVersion() def tapestryVersion() { -def major = "5.8.5" +def major = "5.8.6" def minor = "" // When building on the CI server, make sure -SNAPSHOT is appended, as it is a nightly build.
svn commit: r1086080 - in /websites/production/tapestry/content: ./ 5.8.5/ 5.8.5/apidocs/ 5.8.5/apidocs/index-files/ 5.8.5/apidocs/jquery/ 5.8.5/apidocs/jquery/external/ 5.8.5/apidocs/jquery/external/
Author: thiagohp Date: Sun Mar 31 22:13:01 2024 New Revision: 1086080 Log: Tapestry 5.8.5 [This commit notification would consist of 958 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.]
svn commit: r68214 - /release/tapestry/
Author: thiagohp Date: Sun Mar 31 21:49:47 2024 New Revision: 68214 Log: Tapestry 5.8.5 Added: release/tapestry/apache-tapestry-5.8.5-apidocs.zip (with props) release/tapestry/apache-tapestry-5.8.5-apidocs.zip.md5 release/tapestry/apache-tapestry-5.8.5-apidocs.zip.sha256 release/tapestry/apache-tapestry-5.8.5-bin.zip (with props) release/tapestry/apache-tapestry-5.8.5-bin.zip.md5 release/tapestry/apache-tapestry-5.8.5-bin.zip.sha256 release/tapestry/apache-tapestry-5.8.5-sources.zip (with props) release/tapestry/apache-tapestry-5.8.5-sources.zip.md5 release/tapestry/apache-tapestry-5.8.5-sources.zip.sha256 Removed: release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-apidocs.zip release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-apidocs.zip.md5 release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-apidocs.zip.sha256 release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-bin.zip release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-bin.zip.md5 release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-bin.zip.sha256 release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-sources.zip release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-sources.zip.md5 release/tapestry/apache-tapestry-5.8.4-SNAPSHOT-sources.zip.sha256 Added: release/tapestry/apache-tapestry-5.8.5-apidocs.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.5-apidocs.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.5-apidocs.zip.md5 == --- release/tapestry/apache-tapestry-5.8.5-apidocs.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.5-apidocs.zip.md5 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +61ddc65689fbc426b0e82d4ad0e607a5 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.5-apidocs.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.5-apidocs.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.5-apidocs.zip.sha256 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +749b4f1fbd6cab1bd7aea6a13ce16d8e6b5070b99bf375862e1c48372c9061e3 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.5-bin.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.5-bin.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.5-bin.zip.md5 == --- release/tapestry/apache-tapestry-5.8.5-bin.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.5-bin.zip.md5 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +2e73d252929abd2080cf721f8ab11656 \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.5-bin.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.5-bin.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.5-bin.zip.sha256 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +c393afbce97252ebf9194b850a853fa63655bd80bf334871ec283faf68442e4b \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.5-sources.zip == Binary file - no diff available. Propchange: release/tapestry/apache-tapestry-5.8.5-sources.zip -- svn:mime-type = application/octet-stream Added: release/tapestry/apache-tapestry-5.8.5-sources.zip.md5 == --- release/tapestry/apache-tapestry-5.8.5-sources.zip.md5 (added) +++ release/tapestry/apache-tapestry-5.8.5-sources.zip.md5 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +80642cd03b763bd0cb196f325270298d \ No newline at end of file Added: release/tapestry/apache-tapestry-5.8.5-sources.zip.sha256 == --- release/tapestry/apache-tapestry-5.8.5-sources.zip.sha256 (added) +++ release/tapestry/apache-tapestry-5.8.5-sources.zip.sha256 Sun Mar 31 21:49:47 2024 @@ -0,0 +1 @@ +844f09d9f1e05e088fe852cdd5407f226438fccb75961dfb1c5472cd2a116cc4 \ No newline at end of file
svn commit: r68180 - /dev/tapestry/
Author: thiagohp Date: Thu Mar 28 12:14:09 2024 New Revision: 68180 Log: Tapestry 5.8.5 Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip (with props) dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.md5 dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.sha256 dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip (with props) dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.md5 dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.sha256 dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip (with props) dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.md5 dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.sha256 dev/tapestry/apache-tapestry-5.8.5-apidocs.zip (with props) dev/tapestry/apache-tapestry-5.8.5-apidocs.zip.md5 dev/tapestry/apache-tapestry-5.8.5-apidocs.zip.sha256 dev/tapestry/apache-tapestry-5.8.5-bin.zip (with props) dev/tapestry/apache-tapestry-5.8.5-bin.zip.md5 dev/tapestry/apache-tapestry-5.8.5-bin.zip.sha256 dev/tapestry/apache-tapestry-5.8.5-sources.zip (with props) dev/tapestry/apache-tapestry-5.8.5-sources.zip.md5 dev/tapestry/apache-tapestry-5.8.5-sources.zip.sha256 Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.md5 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +0965ae2ac128a69dd075f89d77efba3d \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-apidocs.zip.sha256 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +c54b1f209581b98633c7a17561c086d2eee4d826b9e4cd36c27d6e3e67f49c20 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.md5 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +ed6b1c9b285312978f89cb1aaef81103 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-bin.zip.sha256 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +f9dabbd7b2117535e815a9b8141cb002987fdc8929e85e9158fb67a29d39053c \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip -- svn:mime-type = application/octet-stream Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.md5 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.md5 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.md5 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +774e0368f9a3dcd9616ace8d6f56811a \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.sha256 == --- dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.sha256 (added) +++ dev/tapestry/apache-tapestry-5.8.5-SNAPSHOT-sources.zip.sha256 Thu Mar 28 12:14:09 2024 @@ -0,0 +1 @@ +ced14514a1be301058f6484c4ea97b490ce31d7724d2c9a002b6792e123dcba0 \ No newline at end of file Added: dev/tapestry/apache-tapestry-5.8.5-apidocs.zip == Binary file - no diff available. Propchange: dev/tapestry/apache-tapestry-5.8.5-apidocs.zip
(tapestry-5) tag 5.8.5 created (now 3e751953f)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag 5.8.5 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 3e751953f (commit) No new revisions were added by this update.
(tapestry-5) tag v5.8.5 deleted (was 5c719e3f0)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag v5.8.5 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git *** WARNING: tag v5.8.5 was deleted! *** was 5c719e3f0 TAP5-2772: ClassCastException sometimes when in production mode The revisions that were on this tag are still contained in other references; therefore, this change does not discard any commits from the repository.
(tapestry-5) tag v5.8.5 created (now 5c719e3f0)
This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a change to tag v5.8.5 in repository https://gitbox.apache.org/repos/asf/tapestry-5.git at 5c719e3f0 (commit) No new revisions were added by this update.
(tapestry-5) branch javax updated: TAP5-2771: Upgrade to Spock 2.3 (#47)
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 3e751953f TAP5-2771: Upgrade to Spock 2.3 (#47) 3e751953f is described below commit 3e751953f26552497017f8113076e6039116b6cd Author: Volker Lamp AuthorDate: Fri Mar 15 06:33:26 2024 +0100 TAP5-2771: Upgrade to Spock 2.3 (#47) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7397347b7..c4c209c13 100755 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ project.ext.versions = [ testng: "6.14.3", easymock: "3.3.1", servletapi: "3.0.1", -spock: "2.1-M2-groovy-3.0", +spock: "2.3-groovy-3.0", hibernate: "5.4.32.Final", slf4j: "1.7.25", geb: "2.0",
(tapestry-5) branch javax updated: TAP5-2772: ClassCastException sometimes when in production mode
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 2081603eb TAP5-2772: ClassCastException sometimes when in production mode 2081603eb is described below commit 2081603eb695b35eec1a55fffa48d3ae9a881657 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Mar 24 23:22:18 2024 -0300 TAP5-2772: ClassCastException sometimes when in production mode --- .../services/ComponentDependencyRegistryImpl.java | 13 --- .../services/ComponentInstantiatorSourceImpl.java | 3 +- .../apache/tapestry5/modules/PageLoadModule.java | 14 .../PageClassLoaderContextManagerImpl.java | 40 ++ 4 files changed, 50 insertions(+), 20 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 7f794f6ea..594cb72ef 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -587,13 +587,16 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis Objects.requireNonNull(dependency, "Parameter type cannot be null"); synchronized (map) { -Set dependents = map.get(dependency); -if (dependents == null) +if (!component.equals(dependency)) { -dependents = new HashSet<>(); -map.put(dependency, dependents); +Set dependents = map.get(dependency); +if (dependents == null) +{ +dependents = new HashSet<>(); +map.put(dependency, dependents); +} +dependents.add(new Dependency(component, type)); } -dependents.add(new Dependency(component, type)); } } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java index 1faeecf23..3573b474b 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java @@ -321,7 +321,8 @@ public final class ComponentInstantiatorSourceImpl implements ComponentInstantia if (rootPageClassloaderContext == null) { -logger.info("Initializing page pool. Multiple classloaders " + (!productionMode && multipleClassLoaders ? "enabled" : "disabled") + "."); +logger.info("Initializing page pool. Production mode " + (productionMode ? "enabled" : "disabled") + +". Multiple classloaders " + (!productionMode && multipleClassLoaders ? "enabled" : "disabled") + "."); pageClassLoaderContextManager.clear(); diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java index 5ca2f3715..ae6e76a77 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java @@ -31,6 +31,7 @@ import org.apache.tapestry5.internal.services.TemplateParser; import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker; import org.apache.tapestry5.ioc.ServiceBinder; import org.apache.tapestry5.ioc.annotations.Marker; +import org.apache.tapestry5.ioc.annotations.Order; import org.apache.tapestry5.ioc.annotations.Startup; import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.ioc.services.ChainBuilder; @@ -87,6 +88,7 @@ public class PageLoadModule } @Startup +@Order("before:*") public void preloadPageClassLoaderContexts( PageClassLoaderContextManager pageClassLoaderContextManager, ComponentDependencyRegistry componentDependencyRegistry, @@ -104,6 +106,18 @@ public class PageLoadModule } } } +// Preload the dependency information for all pages +// when in production mode. Without that, exceptions during +// page assembly will occurr. This should add just a few +// seconds to page initializa
(tapestry-5) branch master updated: TAP5-2772: ClassCastException sometimes when in production mode
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 5c719e3f0 TAP5-2772: ClassCastException sometimes when in production mode 5c719e3f0 is described below commit 5c719e3f05dc3a206516658d4ad6781902b3aa98 Author: Thiago H. de Paula Figueiredo AuthorDate: Sun Mar 24 23:22:18 2024 -0300 TAP5-2772: ClassCastException sometimes when in production mode --- .../services/ComponentDependencyRegistryImpl.java | 13 --- .../services/ComponentInstantiatorSourceImpl.java | 3 +- .../apache/tapestry5/modules/PageLoadModule.java | 14 .../PageClassLoaderContextManagerImpl.java | 40 ++ 4 files changed, 50 insertions(+), 20 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 7f794f6ea..594cb72ef 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -587,13 +587,16 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis Objects.requireNonNull(dependency, "Parameter type cannot be null"); synchronized (map) { -Set dependents = map.get(dependency); -if (dependents == null) +if (!component.equals(dependency)) { -dependents = new HashSet<>(); -map.put(dependency, dependents); +Set dependents = map.get(dependency); +if (dependents == null) +{ +dependents = new HashSet<>(); +map.put(dependency, dependents); +} +dependents.add(new Dependency(component, type)); } -dependents.add(new Dependency(component, type)); } } diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java index 1faeecf23..3573b474b 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java @@ -321,7 +321,8 @@ public final class ComponentInstantiatorSourceImpl implements ComponentInstantia if (rootPageClassloaderContext == null) { -logger.info("Initializing page pool. Multiple classloaders " + (!productionMode && multipleClassLoaders ? "enabled" : "disabled") + "."); +logger.info("Initializing page pool. Production mode " + (productionMode ? "enabled" : "disabled") + +". Multiple classloaders " + (!productionMode && multipleClassLoaders ? "enabled" : "disabled") + "."); pageClassLoaderContextManager.clear(); diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java index 5ca2f3715..ae6e76a77 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/PageLoadModule.java @@ -31,6 +31,7 @@ import org.apache.tapestry5.internal.services.TemplateParser; import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker; import org.apache.tapestry5.ioc.ServiceBinder; import org.apache.tapestry5.ioc.annotations.Marker; +import org.apache.tapestry5.ioc.annotations.Order; import org.apache.tapestry5.ioc.annotations.Startup; import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.ioc.services.ChainBuilder; @@ -87,6 +88,7 @@ public class PageLoadModule } @Startup +@Order("before:*") public void preloadPageClassLoaderContexts( PageClassLoaderContextManager pageClassLoaderContextManager, ComponentDependencyRegistry componentDependencyRegistry, @@ -104,6 +106,18 @@ public class PageLoadModule } } } +// Preload the dependency information for all pages +// when in production mode. Without that, exceptions during +// page assembly will occurr. This should add just a few +// seconds to page initial