Skip to content

Commit 4b5986d

Browse files
committed
[feature] Enable lazy loading for unit tests, fix bugs.
1 parent b2e9a9b commit 4b5986d

File tree

11 files changed

+26
-10
lines changed

11 files changed

+26
-10
lines changed

exist-core/src/main/java/org/exist/xquery/ModuleContext.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,11 @@ public Module[] getModules(final String namespaceURI) {
210210
return modules;
211211
}
212212

213+
@Override
214+
public void addModule(String namespaceURI, Module module) {
215+
parentContext.addModule(namespaceURI, module);
216+
}
217+
213218
@Override
214219
protected void setRootModules(final String namespaceURI, final Module[] modules) {
215220
parentContext.setRootModules(namespaceURI, modules);

exist-core/src/main/java/org/exist/xquery/XQueryContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1679,8 +1679,8 @@ Module initBuiltInModule(final String namespaceURI, final String moduleClass) {
16791679
declareNamespace(module.getDefaultPrefix(), module.getNamespaceURI());
16801680
}
16811681

1682-
modules.compute(module.getNamespaceURI(), addToMapValueArray(module));
1683-
allModules.compute(module.getNamespaceURI(), addToMapValueArray(module));
1682+
this.addModule(module.getNamespaceURI(), module);
1683+
this.addRootModule(module.getNamespaceURI(), module);
16841684

16851685
if (module instanceof InternalModule) {
16861686
((InternalModule) module).prepare(this);

exist-core/src/main/resources/org/exist/test/runner/xquery-test-runner.xq

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ xquery version "3.1";
2424
import module namespace test = "http://exist-db.org/xquery/xqsuite"
2525
at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql";
2626

27+
import module namespace inspect = "http://exist-db.org/xquery/inspection";
28+
2729
declare variable $test-module-uri as xs:anyURI external;
2830

2931
(: hooks for sending external notifications about test events :)

exist-core/src/test/resources-filtered/conf.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -888,18 +888,18 @@
888888
<module uri="http://www.w3.org/2005/xpath-functions/math" class="org.exist.xquery.functions.math.MathModule" />
889889
<module uri="http://www.w3.org/2005/xpath-functions/array" class="org.exist.xquery.functions.array.ArrayModule" />
890890

891-
<module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule"/>
891+
<module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule" load="lazily"/>
892892
<module uri="http://exist-db.org/xquery/request" class="org.exist.xquery.functions.request.RequestModule" />
893893
<module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule" />
894-
<module uri="http://exist-db.org/xquery/securitymanager" class="org.exist.xquery.functions.securitymanager.SecurityManagerModule"/>
894+
<module uri="http://exist-db.org/xquery/securitymanager" class="org.exist.xquery.functions.securitymanager.SecurityManagerModule" load="lazily"/>
895895
<module uri="http://exist-db.org/xquery/session" class="org.exist.xquery.functions.session.SessionModule" />
896-
<module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule" />
897-
<module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule" />
896+
<module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule" load="lazily"/>
897+
<module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule" load="lazily" />
898898
<module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule">
899899
<!-- set to true to disable the util:eval functions -->
900900
<parameter name="evalDisabled" value="false"/>
901901
</module>
902-
<module uri="http://exist-db.org/xquery/validation" class="org.exist.xquery.functions.validation.ValidationModule" />
902+
<module uri="http://exist-db.org/xquery/validation" class="org.exist.xquery.functions.validation.ValidationModule" load="lazily" />
903903
<module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule" />
904904

905905
</builtin-modules>

exist-core/src/test/xquery/securitymanager/account.xqm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ xquery version "3.1";
2424
module namespace account = "http://exist-db.org/test/securitymanager/account";
2525

2626
declare namespace test = "http://exist-db.org/xquery/xqsuite";
27-
declare namespace sm = "http://exist-db.org/xquery/securitymanager";
27+
import module namespace sm = "http://exist-db.org/xquery/securitymanager";
2828

2929
declare
3030
%test:assertFalse

exist-core/src/test/xquery/securitymanager/id.xqm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ module namespace id = "http://exist-db.org/test/securitymanager/id";
2525

2626
declare namespace test = "http://exist-db.org/xquery/xqsuite";
2727
declare namespace mod1 = "http://module1";
28-
declare namespace sm = "http://exist-db.org/xquery/securitymanager";
28+
import module namespace inspect = "http://exist-db.org/xquery/inspection";
29+
import module namespace sm = "http://exist-db.org/xquery/securitymanager";
2930

3031
declare variable $id:TEST_COLLECTION_NAME := "test-id";
3132
declare variable $id:TEST_COLLECTION_PATH := "/db/test-id";
@@ -38,6 +39,7 @@ function id:setup() {
3839
xmldb:store($id:TEST_COLLECTION_PATH, $id:TEST_MODULE_NAME, 'xquery version "3.0";
3940
4041
module namespace mod1 = "http://module1";
42+
import module namespace sm = "http://exist-db.org/xquery/securitymanager";
4143
4244
declare function mod1:function1() {
4345
<mod1>{sm:id()}</mod1>

exist-core/src/test/xquery/serialization.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ some value
4545
<task>comments and xsl</task>
4646
<code><![CDATA[
4747
xquery version "1.0" encoding "UTF-8";
48-
48+
import module namespace transform = "http://exist-db.org/xquery/transform";
4949
let $doc as document-node() := document {
5050
<Root>
5151
<!-- Comment 1 -->

exist-core/src/test/xquery/validation/jaxv.xql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ module namespace val ="http://exist-db.org/xquery/test/validation";
2525

2626
declare namespace test="http://exist-db.org/xquery/xqsuite";
2727

28+
import module namespace validation = "http://exist-db.org/xquery/validation";
29+
2830
declare variable $val:XML := <root>
2931
<value1>20</value1>
3032
<value2>30</value2>

exist-core/src/test/xquery/xinclude/xinclude.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@
175175
<test output="text">
176176
<task>XInclude applied before XSLT step</task>
177177
<code><![CDATA[
178+
import module namespace transform = "http://exist-db.org/xquery/transform";
178179
let $stylesheet := doc("/db/test/test.xsl")
179180
return
180181
transform:transform(doc('/db/test/test1.xml'), $stylesheet, (), (),
@@ -185,6 +186,7 @@
185186
<test output="text">
186187
<task>XInclude applied before XSLT step 2</task>
187188
<code><![CDATA[
189+
import module namespace transform = "http://exist-db.org/xquery/transform";
188190
let $stylesheet := doc("/db/test/test.xsl")
189191
return
190192
transform:transform(doc('/db/test/test1.xml'), $stylesheet, ())

exist-core/src/test/xquery/xmldb/copy-tests.xql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ module namespace t="http://exist-db.org/testsuite/copy";
2525

2626
import module namespace test="http://exist-db.org/xquery/xqsuite" at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql";
2727

28+
import module namespace sm = "http://exist-db.org/xquery/securitymanager";
29+
2830
declare variable $t:collection-name := "copy-test";
2931
declare variable $t:collection := "/db/" || $t:collection-name;
3032
declare variable $t:target-collection-name := "copy-target";

0 commit comments

Comments
 (0)