This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch feature/requirejs-less in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 71740ab929b2d7ae5f6721856930b07e7e5b412d Author: Thiago H. de Paula Figueiredo <[email protected]> AuthorDate: Thu Aug 7 20:13:37 2025 -0300 Removing last @Import(module) from Tapestry components but adding one in a test to make sure it still works. --- .../corelib/components/ExceptionDisplay.java | 8 +++++++- .../tapestry5/corelib/components/FormFragment.java | 12 ++++++++---- .../tapestry5/corelib/components/Submit.java | 22 +++++++++++++++++++--- .../app1/ModuleConfigurationCallbackTests.groovy | 5 +++++ .../integration/app1/pages/ClientConsoleDemo.java | 12 ++++++++++-- .../pages/ModuleConfigurationCallbackDemo.java | 2 ++ .../assets/es-modules/client-console-demo.js | 6 ++++++ .../META-INF/modules/client-console-demo.js | 8 +++----- 8 files changed, 60 insertions(+), 15 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java index c1afa247a..b510d4375 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java @@ -17,6 +17,7 @@ package org.apache.tapestry5.corelib.components; import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Property; +import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.annotations.Primary; import org.apache.tapestry5.ioc.services.ExceptionAnalysis; @@ -34,7 +35,7 @@ import java.util.List; * @tapestrydoc * @see org.apache.tapestry5.ioc.services.ExceptionAnalyzer */ -@Import(stylesheet = "ExceptionDisplay.css", module = "t5/core/exception-display") +@Import(stylesheet = "ExceptionDisplay.css") public class ExceptionDisplay { /** @@ -63,12 +64,17 @@ public class ExceptionDisplay @Inject @Primary private StackTraceElementAnalyzer frameAnalyzer; + + @Inject + private RequireJsModeHelper requireJsModeHelper; void setupRender() { ExceptionAnalysis analysis = analyzer.analyze(exception); stack = analysis.getExceptionInfos(); + + requireJsModeHelper.importModule("t5/core/exception-display"); } public Object getPropertyValue() diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java index cdd4de276..c4046648b 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java @@ -12,10 +12,13 @@ package org.apache.tapestry5.corelib.components; -import org.apache.tapestry5.*; +import org.apache.tapestry5.BindingConstants; +import org.apache.tapestry5.ClientElement; +import org.apache.tapestry5.ComponentAction; +import org.apache.tapestry5.ComponentResources; +import org.apache.tapestry5.MarkupWriter; import org.apache.tapestry5.annotations.Environmental; import org.apache.tapestry5.annotations.HeartbeatDeferred; -import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.SupportsInformalParameters; import org.apache.tapestry5.corelib.internal.ComponentActionSink; @@ -55,7 +58,6 @@ import org.slf4j.Logger; * @see Form */ @SupportsInformalParameters -@Import(module = "t5/core/form-fragment") public class FormFragment implements ClientElement { /** @@ -147,7 +149,7 @@ public class FormFragment implements ClientElement @Inject private ClientDataEncoder clientDataEncoder; - + String defaultElement() { return resources.getElementName("div"); @@ -174,6 +176,8 @@ public class FormFragment implements ClientElement } resources.renderInformalParameters(writer); + + requireJsModeHelper.importModule("t5/core/form-fragment"); if (!visible) { diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Submit.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Submit.java index b96db2ca4..9df3c97d8 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Submit.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Submit.java @@ -14,10 +14,21 @@ package org.apache.tapestry5.corelib.components; -import org.apache.tapestry5.*; -import org.apache.tapestry5.annotations.*; +import org.apache.tapestry5.Asset; +import org.apache.tapestry5.BindingConstants; +import org.apache.tapestry5.ClientElement; +import org.apache.tapestry5.ComponentAction; +import org.apache.tapestry5.ComponentResources; +import org.apache.tapestry5.EventConstants; +import org.apache.tapestry5.MarkupWriter; +import org.apache.tapestry5.TrackableComponentEventCallback; +import org.apache.tapestry5.annotations.Environmental; +import org.apache.tapestry5.annotations.Events; +import org.apache.tapestry5.annotations.Parameter; +import org.apache.tapestry5.annotations.SupportsInformalParameters; import org.apache.tapestry5.corelib.SubmitMode; import org.apache.tapestry5.http.services.Request; +import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper; import org.apache.tapestry5.internal.util.Holder; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.internal.util.InternalUtils; @@ -36,7 +47,6 @@ import org.apache.tapestry5.services.javascript.JavaScriptSupport; */ @SupportsInformalParameters @Events(EventConstants.SELECTED + " by default, may be overridden") -@Import(module="t5/core/forms") public class Submit implements ClientElement { /** @@ -120,6 +130,9 @@ public class Submit implements ClientElement @SuppressWarnings("unchecked") @Environmental private TrackableComponentEventCallback eventCallback; + + @Inject + private RequireJsModeHelper requireJsModeHelper; private String clientId; @@ -150,6 +163,9 @@ public class Submit implements ClientElement void beginRender(MarkupWriter writer) { + + requireJsModeHelper.importModule("t5/core/forms"); + clientId = javascriptSupport.allocateClientId(resources); String name = formSupport.allocateControlName(resources.getId()); diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/ModuleConfigurationCallbackTests.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/ModuleConfigurationCallbackTests.groovy index 879a24c7c..74ebce902 100644 --- a/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/ModuleConfigurationCallbackTests.groovy +++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/ModuleConfigurationCallbackTests.groovy @@ -29,6 +29,11 @@ class ModuleConfigurationCallbackTests extends App1TestCase { assert getHtmlSource().contains("\"waitSeconds\" : \"13\""); + // Just to test @Import(module), since it's not used + // by Tapestry itself, being replaced by + // RequireJsModeHelper.importModule() + assert isElementPresent("css=script[data-requiremodule=validate-in-error]"); + } } diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ClientConsoleDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ClientConsoleDemo.java index a319dd580..9b19a5b4f 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ClientConsoleDemo.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ClientConsoleDemo.java @@ -14,11 +14,19 @@ package org.apache.tapestry5.integration.app1.pages; -import org.apache.tapestry5.annotations.Import; +import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper; +import org.apache.tapestry5.ioc.annotations.Inject; /** * @since 5.3 */ -@Import(module = "client-console-demo") public class ClientConsoleDemo { + + @Inject + private RequireJsModeHelper requireJsModeHelper; + + void beginRender() + { + requireJsModeHelper.importModule("client-console-demo"); + } } diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ModuleConfigurationCallbackDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ModuleConfigurationCallbackDemo.java index 09deb7cfe..2342053d7 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ModuleConfigurationCallbackDemo.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ModuleConfigurationCallbackDemo.java @@ -13,6 +13,7 @@ // limitations under the License. package org.apache.tapestry5.integration.app1.pages; +import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.services.javascript.JavaScriptSupport; @@ -23,6 +24,7 @@ import org.apache.tapestry5.services.javascript.ModuleConfigurationCallback; * {@link JavaScriptSupport#addModuleConfigurationCallback(ModuleConfigurationCallback)}. * Based on http://www.requirejs.org/jqueryui-amd/example/webapp/app.html. */ +@Import(module = "validate-in-error") public class ModuleConfigurationCallbackDemo { diff --git a/tapestry-core/src/test/resources/META-INF/assets/es-modules/client-console-demo.js b/tapestry-core/src/test/resources/META-INF/assets/es-modules/client-console-demo.js new file mode 100644 index 000000000..33df7e83a --- /dev/null +++ b/tapestry-core/src/test/resources/META-INF/assets/es-modules/client-console-demo.js @@ -0,0 +1,6 @@ +import dom from "t5/core/dom"; +import console from "t5/core/console"; + +for (var name of ["debug", "info", "warn", "error"]) { + ((name => (dom(name)).on("change", function() { return console[name](this.value()); })))(name); +} diff --git a/tapestry-core/src/test/resources/META-INF/modules/client-console-demo.js b/tapestry-core/src/test/resources/META-INF/modules/client-console-demo.js index ebca6c142..56f5c9478 100644 --- a/tapestry-core/src/test/resources/META-INF/modules/client-console-demo.js +++ b/tapestry-core/src/test/resources/META-INF/modules/client-console-demo.js @@ -1,11 +1,9 @@ -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md - */ define(["t5/core/dom", "t5/core/console"], function(dom, console) { + dom = dom.default; + console = console.default; + for (var name of ["debug", "info", "warn", "error"]) { ((name => (dom(name)).on("change", function() { return console[name](this.value()); })))(name); }
