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 2026/04/18 15:47:27 UTC

(tapestry-5) branch javax updated: TAP5-2810: little tweaks around ES shims

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 aabbc49ac TAP5-2810: little tweaks around ES shims
aabbc49ac is described below

commit aabbc49ac4b852753fdf51b9dda0f8776c71ea46
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Sat Apr 18 12:40:41 2026 -0300

    TAP5-2810: little tweaks around ES shims
---
 .../internal/services/ajax/EsShimManagerImpl.java         | 15 +++++++++++++--
 .../internal/services/javascript/EsShimDispatcher.java    |  9 +++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/EsShimManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/EsShimManagerImpl.java
index f8a8c0dd8..1c6e87017 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/EsShimManagerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/EsShimManagerImpl.java
@@ -31,6 +31,10 @@ public class EsShimManagerImpl implements EsShimManager
     
     private final String assetPrefix;
     
+    private final String compressedRequestPrefix;
+    
+    private final String uncompressedRequestPrefix;
+    
     public EsShimManagerImpl(Map<String, Resource> shims,
             PathConstructor pathConstructor,
             @Symbol(SymbolConstants.ASSET_PATH_PREFIX)
@@ -40,6 +44,8 @@ public class EsShimManagerImpl implements EsShimManager
         this.shims = shims;
         this.assetPrefix = assetPrefix;
         this.pathConstructor = pathConstructor;
+        this.compressedRequestPrefix = getRequestPrefixUncached(true);
+        this.uncompressedRequestPrefix = getRequestPrefixUncached(false);
     }
 
     /**
@@ -53,9 +59,14 @@ public class EsShimManagerImpl implements EsShimManager
     }
     
     @Override
-    public String getRequestPrefix(boolean compress)
+    public String getRequestPrefix(boolean compress) 
+    {
+        return compress ? compressedRequestPrefix : uncompressedRequestPrefix;
+    }
+    
+    public String getRequestPrefixUncached(boolean compress)
     {
-        return pathConstructor.constructDispatchPath(assetPrefix + "/" + (compress ? ES_SUBPATH + ".gz" : ES_SUBPATH) + "/");
+        return pathConstructor.constructDispatchPath(assetPrefix, (compress ? ES_SUBPATH + ".gz" : ES_SUBPATH)) + "/";
     }
 
     @Override
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsShimDispatcher.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsShimDispatcher.java
index ad8859a8f..d281f7694 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsShimDispatcher.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsShimDispatcher.java
@@ -51,6 +51,8 @@ public class EsShimDispatcher implements Dispatcher
 
     private final boolean compress;
     
+    private final int requestPrefixLength;
+    
     private Map<String, StreamableResource> shimMap;
 
     public EsShimDispatcher(EsShimManager esShimManager,
@@ -81,15 +83,18 @@ public class EsShimDispatcher implements Dispatcher
         }
 
         requestPrefix = esShimManager.getRequestPrefix(compress);
+        requestPrefixLength = requestPrefix.length();
     }
 
     public boolean dispatch(Request request, Response response) throws IOException
     {
         String path = request.getPath();
+        
+        int index = path.indexOf(requestPrefix);
 
-        if (path.startsWith(requestPrefix))
+        if (index >= 0)
         {
-            String extraPath = path.substring(requestPrefix.length());
+            String extraPath = path.substring(index + requestPrefixLength);
 
             if (!handleModuleRequest(extraPath, response))
             {