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

Reply via email to