You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2025/04/01 21:37:37 UTC
(tapestry-5) branch feature/es-module-support updated (1f00549c3 -> 37dcd9950)
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a change to branch feature/es-module-support
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
from 1f00549c3 TAP5-2803: fixing JavaDoc errors
new c2835733f TAP5-2803: adding @Import(esModule)
new 50560e642 TAP5-2803: fixing DocumentLinkerImplTest failures
new 37dcd9950 TAP5-2803: fixing live reloading of files in /META-INF/es-assets
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
5_10_RELEASE_NOTES.md | 1 +
.../org/apache/tapestry5/annotations/Import.java | 10 +++++
.../services/assets/ResourceChangeTrackerImpl.java | 3 +-
.../services/javascript/EsModuleManagerImpl.java | 16 +++++---
.../tapestry5/internal/transform/ImportWorker.java | 48 +++++++++++++++++++---
.../services/DocumentLinkerImplTest.groovy | 30 +++++++-------
.../tapestry5/integration/app1/EsModuleTests.java | 15 ++++++-
.../integration/app1/pages/EsModuleDemo.java | 3 +-
.../ioc/internal/util/URLChangeTracker.java | 21 ++++++++++
9 files changed, 116 insertions(+), 31 deletions(-)
(tapestry-5) 01/03: TAP5-2803: adding @Import(esModule)
Posted by th...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch feature/es-module-support
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit c2835733f42a0017f3e4c3f17770192340d0a745
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Tue Apr 1 17:02:27 2025 -0300
TAP5-2803: adding @Import(esModule)
---
5_10_RELEASE_NOTES.md | 1 +
.../org/apache/tapestry5/annotations/Import.java | 10 +++++
.../tapestry5/internal/transform/ImportWorker.java | 48 +++++++++++++++++++---
.../tapestry5/integration/app1/EsModuleTests.java | 15 ++++++-
.../integration/app1/pages/EsModuleDemo.java | 3 +-
5 files changed, 69 insertions(+), 8 deletions(-)
diff --git a/5_10_RELEASE_NOTES.md b/5_10_RELEASE_NOTES.md
index b99e05690..e7d1c36da 100644
--- a/5_10_RELEASE_NOTES.md
+++ b/5_10_RELEASE_NOTES.md
@@ -9,6 +9,7 @@ Scratch pad for changes destined for the 5.10.0 release notes page.
* `JavaScriptSupport.importEsModule(String moduleName)`
* `JavaScriptSupport.addEsModuleConfigurationCallback(EsModuleConfigurationCallback callback)`
+* `org.apache.tapestry5.annotations.Import.esModule()`
# Added types
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Import.java b/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Import.java
index 2e50e3f7c..9eec6ac5d 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Import.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Import.java
@@ -82,4 +82,14 @@ public @interface Import
* @since 5.4
*/
String[] module() default {};
+
+ /**
+ * Ids of ES modules to import.
+ *
+ * @see org.apache.tapestry5.services.javascript.EsModuleManager
+ * @see JavaScriptSupport#importEsModule(String)
+ * @since 5.10.0
+ */
+ String[] esModule() default {};
+
}
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
index 36130ddaf..cc93a7b95 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
@@ -12,6 +12,11 @@
package org.apache.tapestry5.internal.transform;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.apache.tapestry5.Asset;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.SymbolConstants;
@@ -23,8 +28,18 @@ import org.apache.tapestry5.func.Worker;
import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker;
import org.apache.tapestry5.ioc.services.SymbolSource;
import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.plastic.*;
+import org.apache.tapestry5.plastic.ComputedValue;
+import org.apache.tapestry5.plastic.FieldHandle;
+import org.apache.tapestry5.plastic.InstanceContext;
+import org.apache.tapestry5.plastic.MethodAdvice;
+import org.apache.tapestry5.plastic.MethodInvocation;
+import org.apache.tapestry5.plastic.PlasticClass;
+import org.apache.tapestry5.plastic.PlasticField;
+import org.apache.tapestry5.plastic.PlasticMethod;
+import org.apache.tapestry5.plastic.PlasticUtils;
import org.apache.tapestry5.plastic.PlasticUtils.FieldInfo;
+import org.apache.tapestry5.plastic.PropertyAccessType;
+import org.apache.tapestry5.plastic.PropertyValueProvider;
import org.apache.tapestry5.services.AssetSource;
import org.apache.tapestry5.services.TransformConstants;
import org.apache.tapestry5.services.javascript.Initialization;
@@ -32,11 +47,6 @@ import org.apache.tapestry5.services.javascript.JavaScriptSupport;
import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
import org.apache.tapestry5.services.transform.TransformationSupport;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
/**
* Implements the {@link Import} annotation, both at the class and at the method level.
*
@@ -154,6 +164,8 @@ public class ImportWorker implements ComponentClassTransformWorker2
importStylesheets(componentClass, model, method, annotation.stylesheet(), fieldInfos);
importModules(method, annotation.module());
+
+ importEsModules(method, annotation.esModule());
}
private void importStacks(PlasticMethod method, String[] stacks)
@@ -179,6 +191,14 @@ public class ImportWorker implements ComponentClassTransformWorker2
}
};
}
+
+ private void importEsModules(PlasticMethod method, String[] moduleIds)
+ {
+ if (moduleIds.length != 0)
+ {
+ method.addAdvice(createImportEsModulesAdvice(moduleIds));
+ }
+ }
private void importModules(PlasticMethod method, String[] moduleNames)
{
@@ -208,6 +228,22 @@ public class ImportWorker implements ComponentClassTransformWorker2
}
}
}
+
+ private MethodAdvice createImportEsModulesAdvice(final String[] moduleIds)
+ {
+ return new MethodAdvice()
+ {
+ public void advise(MethodInvocation invocation)
+ {
+ for (String moduleId : moduleIds)
+ {
+ javascriptSupport.importEsModule(moduleId);
+ }
+
+ invocation.proceed();
+ }
+ };
+ }
private MethodAdvice createImportModulesAdvice(final String[] moduleNames)
{
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/EsModuleTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/EsModuleTests.java
index 54be632ac..17d5c54f5 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/EsModuleTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/EsModuleTests.java
@@ -17,7 +17,9 @@ import static org.apache.tapestry5.integration.app1.services.AppModule.NON_OVERR
import static org.apache.tapestry5.integration.app1.services.AppModule.OVERRIDDEN_ES_MODULE_ID;
import static org.apache.tapestry5.integration.app1.services.AppModule.OVERRIDDEN_ES_MODULE_NEW_URL;
+import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.integration.app1.pages.EsModuleDemo;
+import org.apache.tapestry5.internal.transform.ImportWorker;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.services.AssetSource;
@@ -117,10 +119,21 @@ public class EsModuleTests extends App1TestCase
assertEquals(getText("head-message"), "ES module imported correctly (<head>)!");
assertEquals(getText("body-top-message"), "ES module imported correctly (<body> top)!");
assertEquals(getText("body-bottom-message"), "ES module imported correctly (<body> bottom)!");
- assertEquals(getText("root-folder-message"), "ES module imported correctly from the root folder!");
assertEquals(getText("outside-metainf-message"), "ES module correctly imported from outside /META-INF/assets/es-modules!");
}
+
+ /**
+ * Tests importing ES modules through <code>@Import(esModule = ...)</code>.
+ * @see ImportWorker
+ * @see Import#esModule()
+ */
+ @Test
+ public void at_import_esModule() throws InterruptedException
+ {
+ openLinks(PAGE_NAME);
+ assertEquals(getText("root-folder-message"), "ES module imported correctly from the root folder!");
+ }
private void assertModulesDefinedByGlobalCallbacks(JSONObject importMap) {
assertModuleUrl(NON_OVERRIDDEN_ES_MODULE_ID, NON_OVERRIDDEN_ES_MODULE_URL, importMap);
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/EsModuleDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/EsModuleDemo.java
index e53bd964b..101cd71aa 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/EsModuleDemo.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/EsModuleDemo.java
@@ -12,6 +12,7 @@
package org.apache.tapestry5.integration.app1.pages;
+import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.integration.app1.services.AppModule;
@@ -20,6 +21,7 @@ import org.apache.tapestry5.services.javascript.EsModuleConfigurationCallback;
import org.apache.tapestry5.services.javascript.ImportPlacement;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
+@Import(esModule = {"root-folder"})
public class EsModuleDemo
{
public static final String REQUEST_OVERRIDEN_MODULE_URL = "/overridenAgainURL";
@@ -47,7 +49,6 @@ public class EsModuleDemo
.placement(ImportPlacement.BODY_TOP);
javaScriptSupport.importEsModule("placement/head")
.placement(ImportPlacement.HEAD);
- javaScriptSupport.importEsModule("root-folder");
javaScriptSupport.importEsModule("outside-metainf");
javaScriptSupport.importEsModule("show-import-map");
(tapestry-5) 03/03: TAP5-2803: fixing live reloading of files in /META-INF/es-assets
Posted by th...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch feature/es-module-support
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 37dcd99502d11cc41189bc5ddd7caa6fc6ffc6e9
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Tue Apr 1 18:37:29 2025 -0300
TAP5-2803: fixing live reloading of files in /META-INF/es-assets
---
.../services/assets/ResourceChangeTrackerImpl.java | 3 +--
.../services/javascript/EsModuleManagerImpl.java | 16 ++++++++++------
.../ioc/internal/util/URLChangeTracker.java | 21 +++++++++++++++++++++
3 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
index 73d4d2644..54e3bc485 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
@@ -92,12 +92,11 @@ public class ResourceChangeTrackerImpl extends InvalidationEventHubImpl implemen
public void forceInvalidationEvent()
{
- fireInvalidationEvent();
-
if (tracker != null)
{
tracker.clear();
}
+ fireInvalidationEvent();
}
public void checkForUpdates()
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsModuleManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsModuleManagerImpl.java
index dff737ee6..236f72382 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsModuleManagerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/EsModuleManagerImpl.java
@@ -17,6 +17,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.tapestry5.Asset;
import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.commons.util.AvailableValues;
import org.apache.tapestry5.commons.util.CollectionFactory;
@@ -62,6 +63,8 @@ public class EsModuleManagerImpl implements EsModuleManager
private JSONObject importMap;
+ private final ResourceChangeTracker resourceChangeTracker;
+
private final List<EsModuleConfigurationCallback> globalCallbacks;
public EsModuleManagerImpl(
@@ -72,13 +75,15 @@ public class EsModuleManagerImpl implements EsModuleManager
boolean compactJSON,
@Symbol(TapestryHttpSymbolConstants.PRODUCTION_MODE)
boolean productionMode,
- ClasspathScanner classpathScanner)
+ ClasspathScanner classpathScanner,
+ ResourceChangeTracker resourceChangeTracker)
{
this.compactJSON = compactJSON;
this.assetSource = assetSource;
this.classpathScanner = classpathScanner;
this.globalCallbacks = globalCallbacks;
this.productionMode = productionMode;
+ this.resourceChangeTracker = resourceChangeTracker;
importMap = new JSONObject();
extensions = CollectionFactory.newSet("js");
@@ -94,6 +99,7 @@ public class EsModuleManagerImpl implements EsModuleManager
JSONObject importMap = new JSONObject();
JSONObject imports = importMap.in(IMPORTS_ATTRIBUTE);
+ resourceChangeTracker.addInvalidationCallback(this::createImportMap);
cache.clear();
loadBaseModuleList(imports);
@@ -124,7 +130,9 @@ public class EsModuleManagerImpl implements EsModuleManager
String id = file.replace(CLASSPATH_ROOT, "");
id = id.substring(0, id.lastIndexOf('.'));
- imports.put(id, assetSource.getClasspathAsset(file).toClientURL());
+ final Asset asset = assetSource.getClasspathAsset(file);
+ resourceChangeTracker.trackResource(asset.getResource());
+ imports.put(id, asset.toClientURL());
}
} catch (IOException e)
{
@@ -136,10 +144,6 @@ public class EsModuleManagerImpl implements EsModuleManager
public void setupInvalidation(ResourceChangeTracker tracker)
{
-// Live class reloading of ES modules (failing at the moment)
-
- // TODO make invalidations smarter (and work)
- tracker.addInvalidationCallback(this::createImportMap);
}
@Override
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/URLChangeTracker.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/URLChangeTracker.java
index 4baafe32c..af365db75 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/URLChangeTracker.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/URLChangeTracker.java
@@ -18,7 +18,10 @@ import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -314,6 +317,24 @@ public class URLChangeTracker<T>
return fileToTimestamp.size();
}
+ public String toString()
+ {
+ StringBuilder builder = new StringBuilder();
+
+ final List<File> files = new ArrayList<>(fileToTimestamp.keySet());
+ Collections.sort(files, (f1, f2) -> f1.getName().compareTo(f2.getName()));
+
+ for (File file : files)
+ {
+ builder.append(file.getName());
+ builder.append(": ");
+ builder.append(fileToTimestamp.get(file));
+ builder.append("\n");
+ }
+
+ return builder.toString();
+ }
+
private final class TrackingInfo
{
(tapestry-5) 02/03: TAP5-2803: fixing DocumentLinkerImplTest failures
Posted by th...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch feature/es-module-support
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 50560e64214f212dbfaffee25344ef21d0c6bf77
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Tue Apr 1 17:12:31 2025 -0300
TAP5-2803: fixing DocumentLinkerImplTest failures
---
.../services/DocumentLinkerImplTest.groovy | 30 +++++++++++-----------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.groovy
index 11c1b4e55..a9eafe7a7 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.groovy
@@ -32,7 +32,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("not-html").text("not an HTML document")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
// Only checked if there's something to link.
@@ -55,7 +55,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("not-html").text("not an HTML document")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
// Only checked if there's something to link.
@@ -76,7 +76,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
void missing_root_element_is_a_noop() {
Document document = new Document()
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
linker.addLibrary("foo.js")
linker.addScript(InitializationPriority.NORMAL, "doSomething();")
@@ -94,7 +94,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
def manager = mockModuleManager(["core.js", "foo.js", "bar/baz.js"], [new JSONArray("t5/core/pageinit:evalJavaScript", "pageINIT();")])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, false, "1.2.3")
replay()
@@ -122,7 +122,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("html").element("body").element("p").text("Ready to be marked with generator meta.")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, false, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, false, false, "1.2.3")
linker.updateDocument(document)
@@ -141,7 +141,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("no_html").text("Generator meta only added if root is html tag.")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, false, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, false, false, "1.2.3")
linker.updateDocument(document)
@@ -158,7 +158,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("html").element("body").element("p").text("Ready to be updated with styles.")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
linker.addStylesheetLink(new StylesheetLink("foo.css"))
linker.addStylesheetLink(new StylesheetLink("bar/baz.css", new StylesheetOptions("print")))
@@ -178,7 +178,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("html").element("head").comment(" existing head ").container.element("body").text(
"body content")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
linker.addStylesheetLink(new StylesheetLink("foo.css"))
@@ -198,7 +198,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
def manager = mockModuleManager([], [new JSONArray("t5/core/pageinit:evalJavaScript", "doSomething();")])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, true, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, true, "1.2.3")
replay()
@@ -224,7 +224,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
def manager = mockModuleManager(["foo.js"], [])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, false, "1.2.3")
replay()
@@ -251,7 +251,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
def manager = mockModuleManager([], [new JSONArray("['immediate/module:myfunc', {'fred':'barney'}]")])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, false, "1.2.3")
replay()
@@ -273,7 +273,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("html")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
linker.addStylesheetLink(new StylesheetLink("everybody.css"))
linker.addStylesheetLink(new StylesheetLink("just_ie.css", new StylesheetOptions().withCondition("IE")))
@@ -295,7 +295,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
document.newRootElement("html")
- DocumentLinkerImpl linker = new DocumentLinkerImpl(null, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(null, null, true, false, "1.2.3")
linker.addStylesheetLink(new StylesheetLink("whatever.css"))
linker.addStylesheetLink(new StylesheetLink("insertion-point.css", new StylesheetOptions().asAjaxInsertionPoint()))
@@ -319,7 +319,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
new JSONArray("my/other/module:normal", 111, 222),
new JSONArray("my/other/module:late", 333, 444)])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, false, "1.2.3")
replay()
@@ -347,7 +347,7 @@ class DocumentLinkerImplTest extends InternalBaseTestCase {
def manager = mockModuleManager([], ["my/module",
new JSONArray("my/other/module:normal", 111, 222)])
- DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, true, false, "1.2.3")
+ DocumentLinkerImpl linker = new DocumentLinkerImpl(manager, null, true, false, "1.2.3")
replay()