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 705bd0161 TAP5-2803: trying to improve the ES module callback 
contribution API
705bd0161 is described below

commit 705bd01611bca1daa27227ab25629a4d3a3e9781
Author: Thiago H. de Paula Figueiredo <[email protected]>
AuthorDate: Sat Nov 15 10:53:59 2025 -0300

    TAP5-2803: trying to improve the ES module callback contribution API
---
 .../apache/tapestry5/modules/JavaScriptModule.java |  2 +-
 .../javascript/EsModuleConfigurationCallback.java  | 27 --------
 .../services/javascript/EsModuleManager.java       | 81 ++++++++--------------
 .../integration/app1/services/AppModule.java       | 14 ++--
 4 files changed, 37 insertions(+), 87 deletions(-)

diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
index f069ff639..c39c9ef55 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
@@ -651,7 +651,7 @@ public class JavaScriptModule
     {
         for (String moduleName : esShimManager.getShims().keySet())
         {
-            configuration.add(moduleName, EsModuleManagerContribution.base(
+            configuration.add(moduleName, EsModuleManager.toBaseContribution(
                     c -> EsModuleConfigurationCallback.setImport(c, 
moduleName, esShimManager.getUrl(moduleName))));
         }
     }
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleConfigurationCallback.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleConfigurationCallback.java
index 2916b6374..229169060 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleConfigurationCallback.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleConfigurationCallback.java
@@ -13,7 +13,6 @@
 package org.apache.tapestry5.services.javascript;
 
 import org.apache.tapestry5.json.JSONObject;
-import 
org.apache.tapestry5.services.javascript.EsModuleManager.EsModuleManagerContribution;
 
 /**
  * Interface used to  to change the JSON configuration object which will be 
used in the
@@ -61,30 +60,4 @@ public interface EsModuleConfigurationCallback
         object.in(IMPORTS_ATTRIBUTE).put(id, url);
     }
     
-    /**
-     * Creates a base contribution (one that contributes a callback used 
-     * when creating the base import map to be used for all requests).
-     * Utility method to call {@linkplain 
EsModuleManagerContribution#base(EsModuleConfigurationCallback)}
-     * @param callback an {@linkplain EsModuleConfigurationCallback} instance.
-     * @return a corresponding {@linkplain EsModuleManagerContribution}.
-     */
-    public static EsModuleManagerContribution 
toBaseContribution(EsModuleConfigurationCallback callback)
-    {
-        return EsModuleManagerContribution.base(callback);
-    }
-    
-    /**
-     * Creates a global per-request contribution (one that contributes a 
callback used 
-     * in all requests after the callbacks added through 
-     * {@linkplain 
JavaScriptSupport#addEsModuleConfigurationCallback(EsModuleConfigurationCallback)}
 
-     * were called).
-     * Utility method to call {@linkplain 
EsModuleManagerContribution#globalPerRequest(EsModuleConfigurationCallback)}
-     * @param callback an {@linkplain EsModuleConfigurationCallback} instance.
-     * @return a corresponding {@linkplain EsModuleManagerContribution}.
-     */
-    public static EsModuleManagerContribution 
toGlobalPerRequestContribution(EsModuleConfigurationCallback callback)
-    {
-        return EsModuleManagerContribution.globalPerRequest(callback);
-    }
-    
 }
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleManager.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleManager.java
index 0d97c0024..3a47474cd 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleManager.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/EsModuleManager.java
@@ -70,6 +70,32 @@ public interface EsModuleManager
      */
     void writeInitialization(Element body, List<String> libraryURLs, 
List<JSONArray> inits);
     
+    /**
+     * Creates a global per-request contribution (one that contributes a 
callback used 
+     * in all requests after the callbacks added through 
+     * {@linkplain 
JavaScriptSupport#addEsModuleConfigurationCallback(EsModuleConfigurationCallback)}
 
+     * were called).
+     * Utility method to call {@linkplain 
EsModuleManagerContribution#globalPerRequest(EsModuleConfigurationCallback)}
+     * @param callback an {@linkplain EsModuleConfigurationCallback} instance.
+     * @return a corresponding {@linkplain EsModuleManagerContribution}.
+     */
+    static EsModuleManagerContribution 
toGlobalPerRequestContribution(EsModuleConfigurationCallback callback)
+    {
+        return new EsModuleManagerContribution(callback, false);
+    }
+
+    /**
+     * Creates a base contribution (one that contributes a callback used 
+     * when creating the base import map to be used for all requests).
+     * Utility method to call {@linkplain 
EsModuleManagerContribution#base(EsModuleConfigurationCallback)}
+     * @param callback an {@linkplain EsModuleConfigurationCallback} instance.
+     * @return a corresponding {@linkplain EsModuleManagerContribution}.
+     */
+    static EsModuleManagerContribution 
toBaseContribution(EsModuleConfigurationCallback callback)
+    {
+        return new EsModuleManagerContribution(callback, true);
+    }
+
     /**
      * Encapsulates a contribution to {@linkplain EsModuleManager}.
      *
@@ -83,70 +109,23 @@ public interface EsModuleManager
         
         private final boolean isBase;
         
-        // In case this is an ES shim contribution.
-        private final EsShim esWrapper;
-
-        private EsModuleManagerContribution(EsModuleConfigurationCallback 
callback, boolean isBase, EsShim esWrapper) 
+        private EsModuleManagerContribution(EsModuleConfigurationCallback 
callback, boolean isBase) 
         {
             super();
             this.callback = callback;
             this.isBase = isBase;
-            this.esWrapper = esWrapper;
         }
         
-        /**
-         * Creates a base contribution (one that contributes a callback used 
-         * when creating the base import map to be used for all requests).
-         * @param callback an {@linkplain EsModuleConfigurationCallback} 
instance.
-         * @return a corresponding {@linkplain EsModuleManagerContribution}.
-         */
-        public static EsModuleManagerContribution 
base(EsModuleConfigurationCallback callback) 
+        public EsModuleConfigurationCallback getCallback() 
         {
-            return new EsModuleManagerContribution(callback, true, null);
-        }
-
-        /**
-         * Creates a base contribution (one that contributes a callback used 
-         * when creating the base import map to be used for all requests)
-         * which is also an ES module shim. 
-         * @param esWrapper an {@linkplain EsShim} instance. It cannot be null.
-         * @param callback an {@linkplain EsModuleConfigurationCallback} 
instance.
-         * @return a corresponding {@linkplain EsModuleManagerContribution}.
-         */
-        public static EsModuleManagerContribution base(EsShim esWrapper, 
EsModuleConfigurationCallback callback) 
-        {
-            if (esWrapper == null)
-            {
-                throw new IllegalArgumentException("Parameter esWrapper cannot 
be null");
-            }
-            return new EsModuleManagerContribution(callback, true, esWrapper);
-        }        
-        
-        /**
-         * Creates a global per-request contribution (one that contributes a 
callback used 
-         * in all requests after the callbacks added through 
-         * {@linkplain 
JavaScriptSupport#addEsModuleConfigurationCallback(EsModuleConfigurationCallback)}
 
-         * were called).
-         * @param callback an {@linkplain EsModuleConfigurationCallback} 
instance.
-         * @return a corresponding {@linkplain EsModuleManagerContribution}.
-         */
-        public static EsModuleManagerContribution 
globalPerRequest(EsModuleConfigurationCallback callback) 
-        {
-            return new EsModuleManagerContribution(callback, false, null);
-        }
-        
-        public EsModuleConfigurationCallback getCallback() {
             return callback;
         }
         
-        public boolean isBase() {
+        public boolean isBase() 
+        {
             return isBase;
         }
         
-        public EsShim getEsWrapper() {
-            return esWrapper;
-        }
-
     }
 
 }
diff --git 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
index 173707245..bbdbccdc5 100644
--- 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
+++ 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
@@ -15,8 +15,6 @@ import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import static 
org.apache.tapestry5.services.javascript.EsModuleConfigurationCallback.setImport;
-import static 
org.apache.tapestry5.services.javascript.EsModuleConfigurationCallback.toBaseContribution;
-import static 
org.apache.tapestry5.services.javascript.EsModuleConfigurationCallback.toGlobalPerRequestContribution;
 
 import java.io.IOException;
 import java.lang.annotation.Documented;
@@ -62,7 +60,7 @@ import org.apache.tapestry5.services.LibraryMapping;
 import org.apache.tapestry5.services.ResourceDigestGenerator;
 import org.apache.tapestry5.services.ValueEncoderFactory;
 import org.apache.tapestry5.services.ValueLabelProvider;
-import org.apache.tapestry5.services.javascript.EsModuleConfigurationCallback;
+import org.apache.tapestry5.services.javascript.EsModuleManager;
 import 
org.apache.tapestry5.services.javascript.EsModuleManager.EsModuleManagerContribution;
 import org.apache.tapestry5.services.pageload.PageCachingReferenceTypeService;
 import org.apache.tapestry5.services.pageload.PagePreloader;
@@ -513,11 +511,11 @@ public class AppModule
         final String overrideId = "OverrideCallback";
         
         configuration.add(overrideId, 
-                toBaseContribution(o -> setImport(o, OVERRIDDEN_ES_MODULE_ID, 
OVERRIDDEN_ES_MODULE_NEW_URL)),
+                EsModuleManager.toBaseContribution(o -> setImport(o, 
OVERRIDDEN_ES_MODULE_ID, OVERRIDDEN_ES_MODULE_NEW_URL)),
                 "after:" + originalId);
         
         configuration.add(originalId, 
-                toBaseContribution(
+                EsModuleManager.toBaseContribution(
                     o -> { 
                         setImport(o, NON_OVERRIDDEN_ES_MODULE_ID, 
NON_OVERRIDDEN_ES_MODULE_URL);
                         setImport(o, OVERRIDDEN_ES_MODULE_ID, 
OVERRIDDEN_ES_MODULE_ORIGINAL_URL);
@@ -528,13 +526,13 @@ public class AppModule
                 .toClientURL();
         
         configuration.add("Outside META-INF", 
-                toBaseContribution(o -> setImport(o, "outside-metainf", 
outsideMetaInfAssetUrl)));
+                EsModuleManager.toBaseContribution(o -> setImport(o, 
"outside-metainf", outsideMetaInfAssetUrl)));
 
-        configuration.add("External URL", toBaseContribution(
+        configuration.add("External URL", EsModuleManager.toBaseContribution(
                 o -> setImport(o, "external/url", 
"https://example.com/module.js";)));
         
         configuration.add("Globally per-request overriden", 
-                toGlobalPerRequestContribution(
+                EsModuleManager.toGlobalPerRequestContribution(
                     o -> setImport(o, 
                             OVERRIDDEN_GLOBALLY_ES_MODULE_ID,
                             OVERRIDDEN_GLOBALLY_ES_MODULE_NEW_URL)));

Reply via email to