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)));