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