You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2023/06/09 23:56:22 UTC
[tapestry-5] 05/05: TAP5-2742: preprocessing page classloader context when possible
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch better-page-invalidation
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 5f2c5f813ee96c88bccb2c7224c9e87704845661
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Fri Jun 9 20:55:39 2023 -0300
TAP5-2742: preprocessing page classloader context when possible
---
.../internal/services/PageSourceImpl.java | 2 +-
.../apache/tapestry5/modules/PageLoadModule.java | 22 ++++++++++++++++++++++
2 files changed, 23 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 ebf86306e..f0c5936dd 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
@@ -232,7 +232,7 @@ public class PageSourceImpl implements PageSource
}
private void preprocessPageClassLoaderContexts(String className, final List<String> pageDependencies) {
- for (int i = 0; i < 2; i++)
+ for (int i = 0; i < 5; i++)
{
pageClassloaderContextManager.get(className);
for (String pageClassName : pageDependencies)
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 a55a05833..a431900f5 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
@@ -17,6 +17,7 @@ import org.apache.tapestry5.http.TapestryHttpSymbolConstants;
import org.apache.tapestry5.internal.pageload.DefaultComponentRequestSelectorAnalyzer;
import org.apache.tapestry5.internal.pageload.DefaultComponentResourceLocator;
import org.apache.tapestry5.internal.pageload.PagePreloaderImpl;
+import org.apache.tapestry5.internal.services.ComponentDependencyRegistry;
import org.apache.tapestry5.internal.services.ComponentTemplateSource;
import org.apache.tapestry5.internal.services.ComponentTemplateSourceImpl;
import org.apache.tapestry5.ioc.ServiceBinder;
@@ -58,4 +59,25 @@ public class PageLoadModule
preloader.preloadPages();
}
}
+
+ @Startup
+ public void preloadPageClassLoaderContexts(
+ PageClassloaderContextManager pageClassloaderContextManager,
+ ComponentDependencyRegistry componentDependencyRegistry,
+ @Symbol(SymbolConstants.PRODUCTION_MODE) boolean productionMode)
+ {
+ if (!productionMode)
+ {
+ // Preload the page activation context tree for the already known classes
+ for (int i = 0; i < 5; i++)
+ {
+ System.out.println();
+ for (String className : componentDependencyRegistry.getClassNames())
+ {
+ pageClassloaderContextManager.get(className);
+ }
+ }
+ }
+ }
+
}