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 4d8748a016156c5fe47e69fec1310293ca11bfd2 Author: Thiago H. de Paula Figueiredo <[email protected]> AuthorDate: Sun Aug 3 12:40:17 2025 -0300 Individual test fixes --- .../services/ajax/JavaScriptSupportImpl.java | 2 -- .../integration/app1/pages/PaletteGroupedDemo.java | 11 ++++++-- .../integration/app1/pages/PublishEventDemo.java | 33 ++++++++++++++++++++-- .../META-INF/assets/es-modules/palette-demo.js | 14 +++++++++ .../assets/es-modules/publish-event-demo.js | 23 +++++++++++++++ .../resources/META-INF/modules/palette-demo.js | 5 ---- 6 files changed, 77 insertions(+), 11 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java index db44db661..f9f5e2b23 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java @@ -480,8 +480,6 @@ public class JavaScriptSupportImpl implements JavaScriptSupport assert InternalUtils.isNonBlank(moduleName); - // TODO import core libraries (jQuery, Prototype/Scriptaculous/Underscore) - EsModuleInitialization init = new EsModuleInitializationImpl(moduleName); if (!esModulesImported.contains(moduleName)) { diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteGroupedDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteGroupedDemo.java index 0fe130ba7..efd65a18c 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteGroupedDemo.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PaletteGroupedDemo.java @@ -30,20 +30,22 @@ 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.EnumValueEncoder; -@Import(module="palette-demo") public class PaletteGroupedDemo { @Inject private ComponentResources resources; + + @Inject private RequireJsModeHelper requireJsModeHelper; @Persist @Property private List<ProgrammingLanguage> languages; - + @Persist @Property private boolean reorder; @@ -55,6 +57,11 @@ public class PaletteGroupedDemo ProgrammingLanguage.ERLANG, ProgrammingLanguage.HASKELL, ProgrammingLanguage.LISP); private static final Iterable<ProgrammingLanguage> OO = Arrays.asList(ProgrammingLanguage.JAVA, ProgrammingLanguage.RUBY); + + void beginRender() + { + requireJsModeHelper.importModule("palette-demo"); + } void onPrepareFromDemo() { diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PublishEventDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PublishEventDemo.java index 9400d49aa..aa8e8dac8 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PublishEventDemo.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PublishEventDemo.java @@ -1,4 +1,4 @@ -// Copyright 2016 The Apache Software Foundation +// Copyright 2017, 2025 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,15 +25,44 @@ // limitations under the License. package org.apache.tapestry5.integration.app1.pages; +import org.apache.tapestry5.Asset; +import org.apache.tapestry5.SymbolConstants; import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.OnEvent; +import org.apache.tapestry5.annotations.Path; import org.apache.tapestry5.annotations.PublishEvent; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.json.JSONObject; +import org.apache.tapestry5.services.javascript.JavaScriptSupport; -@Import(stack = "core", library = "PublishEventDemo.js") public class PublishEventDemo { + @Inject + private JavaScriptSupport javaScriptSupport; + + @Inject + @Symbol(SymbolConstants.REQUIRE_JS_ENABLED) + private boolean requireJsEnabled; + + @Inject + @Path("PublishEventDemo.js") + private Asset publishEventDemoAmdAsset; + + void beginRender() + { + if (requireJsEnabled) + { + javaScriptSupport.importStack("core"); + javaScriptSupport.importJavaScriptLibrary(publishEventDemoAmdAsset); + } + else + { + javaScriptSupport.importEsModule("publish-event-demo"); + } + } + @PublishEvent JSONObject onAction() { diff --git a/tapestry-core/src/test/resources/META-INF/assets/es-modules/palette-demo.js b/tapestry-core/src/test/resources/META-INF/assets/es-modules/palette-demo.js new file mode 100644 index 000000000..5943f74b6 --- /dev/null +++ b/tapestry-core/src/test/resources/META-INF/assets/es-modules/palette-demo.js @@ -0,0 +1,14 @@ +import dom from "t5/core/dom" +import events from "t5/core/events"; +import _ from "underscore" +import console from "t5/core/console"; + +dom.onDocument(events.palette.willChange, function(event, memo) { + + console.info("palette-demo, palette willChange"); + + const values = _.map(memo.selectedOptions, o => o.value); + + (dom("event-selection")).update(JSON.stringify(values)); + return (dom("event-reorder")).update(memo.reorder.toString()); +}); diff --git a/tapestry-core/src/test/resources/META-INF/assets/es-modules/publish-event-demo.js b/tapestry-core/src/test/resources/META-INF/assets/es-modules/publish-event-demo.js new file mode 100644 index 000000000..7be8d6c5c --- /dev/null +++ b/tapestry-core/src/test/resources/META-INF/assets/es-modules/publish-event-demo.js @@ -0,0 +1,23 @@ +import dom from "t5/core/dom"; +import ajax from "t5/core/ajax"; +import jQuery from "jquery"; + +function makeAjaxCall(eventName, eventElement, outputElement) { + ajax(eventName, { + element: eventElement, + success: function(response) { + outputElement.innerHTML = response.json.origin; + } + }); +} + +jQuery('tbody tr').each(function() { + var td = jQuery(this).find('td'); + var eventName = td[1].innerHTML; + var elementId = td[0].innerHTML; + var eventElement = null; + if (elementId != '(no element)') { + eventElement = jQuery('#' + elementId); + } + makeAjaxCall(eventName, eventElement, td[3]); +}); diff --git a/tapestry-core/src/test/resources/META-INF/modules/palette-demo.js b/tapestry-core/src/test/resources/META-INF/modules/palette-demo.js index 5e0f73f6e..ceb4b39e7 100644 --- a/tapestry-core/src/test/resources/META-INF/modules/palette-demo.js +++ b/tapestry-core/src/test/resources/META-INF/modules/palette-demo.js @@ -1,8 +1,3 @@ -/* - * 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/events", "underscore", "t5/core/console"], (dom, events, _, console) => { dom = dom.default;
