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

commit e74e8e7bf11d6a30d31054b24dad8dd5cfcf9235
Author: Thiago H. de Paula Figueiredo <[email protected]>
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 03ec9874a..8d9b5ebab 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))
             {

Reply via email to