You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2022/05/13 18:28:11 UTC
[netbeans-html4j] 02/02: Search JavaScriptTCK via ServiceProvider
This is an automated email from the ASF dual-hosted git repository.
jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git
commit 013a118589c4cc708de48a4873e53953d0a32764
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Fri May 13 20:27:26 2022 +0200
Search JavaScriptTCK via ServiceProvider
---
.../main/java/net/java/html/js/tests/JsUtils.java | 27 ++++++++++++++++++----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/json-tck/src/main/java/net/java/html/js/tests/JsUtils.java b/json-tck/src/main/java/net/java/html/js/tests/JsUtils.java
index 2a262480..a370f1bf 100644
--- a/json-tck/src/main/java/net/java/html/js/tests/JsUtils.java
+++ b/json-tck/src/main/java/net/java/html/js/tests/JsUtils.java
@@ -19,6 +19,8 @@
package net.java.html.js.tests;
import java.io.StringReader;
+import java.util.ServiceLoader;
+import net.java.html.json.Models;
import org.netbeans.html.boot.spi.Fn;
import org.netbeans.html.json.tck.JavaScriptTCK;
@@ -32,6 +34,20 @@ public class JsUtils {
instantiatedJsTCK = tck;
}
+ private static Iterable<JavaScriptTCK> tcks(Class<?> clazz) {
+ if (instantiatedJsTCK != null) {
+ return Models.asList(instantiatedJsTCK);
+ }
+ return ServiceLoader.load(JavaScriptTCK.class, cl(clazz));
+ }
+ private static ClassLoader cl(Class<?> c) {
+ try {
+ return c.getClassLoader();
+ } catch (SecurityException ex) {
+ return null;
+ }
+ }
+
static void execute(Class<?> clazz, String script) throws Exception {
Fn.Presenter p = Fn.activePresenter();
p.loadScript(new StringReader(script));
@@ -39,12 +55,13 @@ public class JsUtils {
static boolean executeNow(Class<?> clazz, String script) {
try {
- if (instantiatedJsTCK != null) {
- return instantiatedJsTCK.executeNow(script);
- } else {
- execute(clazz, script);
- return true;
+ for (JavaScriptTCK j : tcks(clazz)) {
+ if (j.executeNow(script)) {
+ return true;
+ }
}
+ execute(clazz, script);
+ return true;
} catch (Exception ex) {
throw raise(RuntimeException.class, ex);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists