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


The following commit(s) were added to refs/heads/feature/requirejs-less by this 
push:
     new b1953856d Even more test fixes
b1953856d is described below

commit b1953856d9061ed4ac1264f6b6c2d518d26e3df7
Author: Thiago H. de Paula Figueiredo <thi...@arsmachina.com.br>
AuthorDate: Tue Aug 5 23:13:12 2025 -0300

    Even more test fixes
---
 .../tapestry5/corelib/components/LinkSubmit.java   | 24 ++++++++++++---
 .../tapestry5/corelib/components/TimeInterval.java | 13 +++++---
 .../internal/services/DocumentLinkerImpl.java      |  4 +--
 .../internal/services/EsModuleInitsManager.java    | 35 ++++++++++++++++++----
 .../services/PartialMarkupDocumentLinker.java      |  2 +-
 .../apache/tapestry5/modules/JavaScriptModule.java | 29 ++++--------------
 .../META-INF/assets/tapestry5/moment-2.15.1.js     |  2 +-
 .../t5/beanvalidator/beanvalidator-validation.ts   |  5 ++--
 .../src/main/typescript/src/t5/core/fields.ts      |  2 +-
 .../src/main/typescript/src/t5/core/validation.ts  |  6 +---
 .../integration/app1/pages/PaletteDemo.java        |  9 +++++-
 .../app1/pages/ValidateInErrorEvent.java           | 12 ++++++--
 .../assets/es-modules/validate-in-error.js         |  8 +++++
 13 files changed, 98 insertions(+), 53 deletions(-)

diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/LinkSubmit.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/LinkSubmit.java
index 4ab44ed18..66141a074 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/LinkSubmit.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/LinkSubmit.java
@@ -14,10 +14,20 @@
 
 package org.apache.tapestry5.corelib.components;
 
-import org.apache.tapestry5.*;
-import org.apache.tapestry5.annotations.*;
+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.ioc.annotations.Inject;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.json.JSONArray;
@@ -34,7 +44,6 @@ import 
org.apache.tapestry5.services.javascript.JavaScriptSupport;
  */
 @SupportsInformalParameters
 @Events(EventConstants.SELECTED + " by default, may be overridden")
-@Import(module = "t5/core/forms")
 public class LinkSubmit implements ClientElement
 {
     /**
@@ -94,13 +103,17 @@ public class LinkSubmit implements ClientElement
 
     @Inject
     private Request request;
+    
+    @Inject
+    private RequireJsModeHelper requireJsModeHelper;
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     @Environmental
     private TrackableComponentEventCallback eventCallback;
 
     private String clientId;
 
+    @SuppressWarnings("serial")
     private static class ProcessSubmission implements 
ComponentAction<LinkSubmit>
     {
         private final String clientId;
@@ -143,6 +156,9 @@ public class LinkSubmit implements ClientElement
     {
         if (!disabled)
         {
+            
+            requireJsModeHelper.importModule("t5/core/forms");
+            
             clientId = javascriptSupport.allocateClientId(resources);
 
             formSupport.store(this, new ProcessSubmission(clientId));
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/TimeInterval.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/TimeInterval.java
index 01d3482da..45fec9e13 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/TimeInterval.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/TimeInterval.java
@@ -12,16 +12,16 @@
 
 package org.apache.tapestry5.corelib.components;
 
+import java.util.Date;
+
 import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.MarkupWriter;
-import org.apache.tapestry5.annotations.Import;
 import org.apache.tapestry5.annotations.Parameter;
 import org.apache.tapestry5.annotations.SupportsInformalParameters;
+import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.services.DateUtilities;
 
-import java.util.Date;
-
 /**
  * Used to present an interval value using Moment.js's from() or fromNow() 
functions. The interval
  * is determined in terms of a start and end date; either (but not both) may 
be omitted, in which
@@ -40,7 +40,6 @@ import java.util.Date;
  * @since 5.4
  */
 @SupportsInformalParameters
-@Import(module = "t5/core/time-interval")
 public class TimeInterval
 {
     /**
@@ -65,6 +64,9 @@ public class TimeInterval
 
     @Inject
     ComponentResources resources;
+    
+    @Inject
+    private RequireJsModeHelper requireJsModeHelper;
 
     @Inject
     DateUtilities dateUtilities;
@@ -76,6 +78,9 @@ public class TimeInterval
 
     boolean beginRender(MarkupWriter writer)
     {
+        
+        requireJsModeHelper.importModule("t5/core/time-interval");
+        
         writer.element(resources.getElementName("span"),
                 // Trigger the client-side logic:
                 "data-timeinterval", "true",
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
index 41f8ef1a8..8c17f5ca2 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
@@ -278,11 +278,11 @@ public class DocumentLinkerImpl implements DocumentLinker
             moduleManager.writeInitialization(body, libraryURLs, 
initsManager.getSortedInits());
             
             // Libraries were already added in the line above.
-            esModuleManager.writeInitialization(body, Collections.emptyList(), 
esModulesInitsManager.getInitsAsJsonArrays());
+            esModuleManager.writeInitialization(body, Collections.emptyList(), 
esModulesInitsManager.getInitsAsJsonArrayList());
         }
         else
         {
-            esModuleManager.writeInitialization(body, libraryURLs, 
esModulesInitsManager.getInitsAsJsonArrays());
+            esModuleManager.writeInitialization(body, libraryURLs, 
esModulesInitsManager.getInitsAsJsonArrayList());
         }
     }
 
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/EsModuleInitsManager.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/EsModuleInitsManager.java
index c79201b5c..c03bd6be2 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/EsModuleInitsManager.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/EsModuleInitsManager.java
@@ -75,16 +75,38 @@ public class EsModuleInitsManager
     }
     
     /**
-     * Returns all previously added inits as JSONArray instances.
+     * Returns all inits (pure imports and initializations) as a JSONArray 
list.
      */
-    public List<JSONArray> getInitsAsJsonArrays()
+    public List<JSONArray> getAllInitsAsJsonArrayList()
     {
-        
         List<JSONArray> list;
-        if (!initializations.isEmpty()) 
+        if (!imports.isEmpty() || !initializations.isEmpty())
         {
-            list = new ArrayList<>(initializations.size());
-            for (EsModuleInitialization init : initializations) 
+            list = new ArrayList<>(imports.size() + initializations.size());
+            list.addAll(toJSONArray(imports));
+            list.addAll(toJSONArray(initializations));
+        }
+        else
+        {
+            list = Collections.emptyList();
+        }
+        return list;
+    }
+    
+    /**
+     * Returns all previously added inits as a JSONArray list.
+     */
+    public List<JSONArray> getInitsAsJsonArrayList()
+    {
+        return toJSONArray(initializations);
+    }
+
+    private List<JSONArray> toJSONArray(final List<EsModuleInitialization> 
inits) {
+        List<JSONArray> list;
+        if (!inits.isEmpty()) 
+        {
+            list = new ArrayList<>(inits.size());
+            for (EsModuleInitialization init : inits) 
             {
                 final EsModuleInitializationImpl initImpl = 
(EsModuleInitializationImpl) init;
                 final JSONArray arguments = initImpl.getArguments();
@@ -115,3 +137,4 @@ public class EsModuleInitsManager
     }
 
 }
+
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
index 7cd6a770a..c8fda5397 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
@@ -109,7 +109,7 @@ public class PartialMarkupDocumentLinker implements 
DocumentLinker
         }
 
         List<?> inits = initsManager.getSortedInits();
-        final List<?> esModuleInits = 
esModulesinitsManager.getInitsAsJsonArrays();
+        final List<?> esModuleInits = 
esModulesinitsManager.getAllInitsAsJsonArrayList();
 
         if (inits.size() > 0 || esModuleInits.size() > 0)
         {
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 cbf0120a9..f069ff639 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
@@ -556,29 +556,6 @@ public class JavaScriptModule
         }
     }
     
-//    @Contribute(EsModuleManager.class)
-//    public static void 
setupApplicationCatalogEsModules(OrderedConfiguration<EsModuleManagerContribution>
 configuration,
-//                                                        LocalizationSetter 
localizationSetter,
-//                                                        
ComponentMessagesSource messagesSource,
-//                                                        
ResourceChangeTracker resourceChangeTracker,
-//                                                        
@Symbol(SymbolConstants.COMPACT_JSON) boolean compactJSON)
-//    {
-//        
-//        EsModuleConfigurationCallback callback = jsonObject -> {
-//        
-//            for (Locale locale : localizationSetter.getSupportedLocales())
-//            {
-//                MessageCatalogResource resource = new 
MessageCatalogResource(false, locale, messagesSource, resourceChangeTracker, 
compactJSON);
-//    
-//                jsonObject.put("t5/core/messages/" + locale.toString(), 
resource.toURL());
-//            }
-//            
-//        };
-//        
-//        configuration.add("ApplicationCatalog", 
EsModuleManagerContribution.base(callback));
-//        
-//    }
-
     @Contribute(EsShimManager.class)
     public static void setupBaseEsShims(
             MappedConfiguration<String, Resource> configuration,
@@ -600,6 +577,12 @@ public class JavaScriptModule
                 .defaultExport("jQuery.noConflict()")
                 .getResource());
         
+        final Resource moment = 
assetSource.getClasspathAsset("/META-INF/assets/tapestry5//moment-2.15.1.js")
+                .getResource();
+        configuration.add("t5/core/moment", new EsShim(moment)
+                .defaultExport("moment")
+                .getResource());
+        
         if (compatibility.enabled(Trait.BOOTSTRAP_3))
         {
             final String[] modules = new String[]{"affix", "alert", "button", 
"carousel", "collapse", "dropdown", "modal",
diff --git 
a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/moment-2.15.1.js 
b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/moment-2.15.1.js
index 1388ae65e..e7c5ff5d7 100644
--- 
a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/moment-2.15.1.js
+++ 
b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/moment-2.15.1.js
@@ -8,7 +8,7 @@
     typeof exports === 'object' && typeof module !== 'undefined' ? 
module.exports = factory() :
     typeof define === 'function' && define.amd ? define(factory) :
     global.moment = factory()
-}(this, function () { 'use strict';
+}(this || window, function () { 'use strict';
 
     var hookCallback;
 
diff --git 
a/tapestry-core/src/main/typescript/src/t5/beanvalidator/beanvalidator-validation.ts
 
b/tapestry-core/src/main/typescript/src/t5/beanvalidator/beanvalidator-validation.ts
index eb407fca4..6ba83312d 100644
--- 
a/tapestry-core/src/main/typescript/src/t5/beanvalidator/beanvalidator-validation.ts
+++ 
b/tapestry-core/src/main/typescript/src/t5/beanvalidator/beanvalidator-validation.ts
@@ -24,14 +24,13 @@
 import _ from "underscore";
 import dom from "t5/core/dom"
 import events from "t5/core/events"
-import fields from "t5/core/fields"
+import "t5/core/fields"
 import utils from "t5/core/utils"
 import validation from "t5/core/validation"
 
-// Both lines below are used to force the TypeScript compiler to actually 
import t5/core/fields
+// Lines below ise used to force the TypeScript compiler to actually import 
t5/core/fields
 // and t5/core/validation even though they're not used directly here. This 
file uses events 
 // set up by the imported files.
-let workaround1 = fields;
 let workaround2 = validation;
 
 // @ts-ignore
diff --git a/tapestry-core/src/main/typescript/src/t5/core/fields.ts 
b/tapestry-core/src/main/typescript/src/t5/core/fields.ts
index ba4c24005..f548d3695 100644
--- a/tapestry-core/src/main/typescript/src/t5/core/fields.ts
+++ b/tapestry-core/src/main/typescript/src/t5/core/fields.ts
@@ -237,4 +237,4 @@ dom.onDocument(events.field.showValidationError, null, 
function(event: EventWrap
 
 });
 
-export default {findHelpBlocks, createHelpBlock, showValidationError};
\ No newline at end of file
+export {findHelpBlocks, createHelpBlock, showValidationError};
\ No newline at end of file
diff --git a/tapestry-core/src/main/typescript/src/t5/core/validation.ts 
b/tapestry-core/src/main/typescript/src/t5/core/validation.ts
index 39d47c5ab..cb5a4d69b 100644
--- a/tapestry-core/src/main/typescript/src/t5/core/validation.ts
+++ b/tapestry-core/src/main/typescript/src/t5/core/validation.ts
@@ -22,13 +22,9 @@ import dom from "t5/core/dom";
 import events from "t5/core/events";
 import utils from "t5/core/utils";
 import messages from "t5/core/messages";
-import fields from "t5/core/fields";
+import "t5/core/fields";
 import { ElementWrapper } from "t5/core/types";
 
-// Line below is used to force the TypeScript compiler to actually import 
t5/core/fields
-// as it's not used directly here. This file uses events set up by the 
imported files.
-let workaround = fields;
-
 const REGEXP_META = "t5:regular-expression";
 
 const minus = messages("decimal-symbols.minus");
diff --git 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteDemo.java
 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteDemo.java
index 3694f8ccc..cfe7c92d8 100644
--- 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteDemo.java
+++ 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteDemo.java
@@ -30,12 +30,12 @@ import org.apache.tapestry5.commons.services.TypeCoercer;
 import org.apache.tapestry5.integration.app1.data.ProgrammingLanguage;
 import org.apache.tapestry5.internal.OptionGroupModelImpl;
 import org.apache.tapestry5.internal.OptionModelImpl;
+import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.util.AbstractSelectModel;
 import org.apache.tapestry5.util.EnumSelectModel;
 import org.apache.tapestry5.util.EnumValueEncoder;
 
-@Import(module="palette-demo")
 public class PaletteDemo
 {
     @Inject
@@ -52,6 +52,13 @@ public class PaletteDemo
     @Inject
     private TypeCoercer typeCoercer;
 
+    @Inject
+    private RequireJsModeHelper requireJsModeHelper;
+    
+    void beginRender()
+    {
+        requireJsModeHelper.importModule("palette-demo");
+    }
 
     void onPrepareFromDemo()
     {
diff --git 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ValidateInErrorEvent.java
 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ValidateInErrorEvent.java
index 645703abb..e70308884 100644
--- 
a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ValidateInErrorEvent.java
+++ 
b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ValidateInErrorEvent.java
@@ -1,10 +1,18 @@
 package org.apache.tapestry5.integration.app1.pages;
 
-import org.apache.tapestry5.annotations.Import;
 import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.internal.services.ajax.RequireJsModeHelper;
+import org.apache.tapestry5.ioc.annotations.Inject;
 
-@Import(module = {"validate-in-error"})
 public class ValidateInErrorEvent {
     @Property
     private String value;
+    
+    @Inject
+    private RequireJsModeHelper requireJsModeHelper;
+    
+    void beginRender() {
+        requireJsModeHelper.importModule("validate-in-error");
+    }
+    
 }
diff --git 
a/tapestry-core/src/test/resources/META-INF/assets/es-modules/validate-in-error.js
 
b/tapestry-core/src/test/resources/META-INF/assets/es-modules/validate-in-error.js
new file mode 100644
index 000000000..55f4777fe
--- /dev/null
+++ 
b/tapestry-core/src/test/resources/META-INF/assets/es-modules/validate-in-error.js
@@ -0,0 +1,8 @@
+import dom from 't5/core/dom';
+import events from 't5/core/events';
+
+dom.onDocument(events.form.validateInError, 'form', function() {
+  const attributes =
+    {id: 'validate-in-error'};
+  this.prepend(dom.create('div', attributes, 'Validate in error'));
+});

Reply via email to