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 <[email protected]>
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'));
+});