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 2020/12/27 20:04:52 UTC

[netbeans-html4j] 01/04: Use -Dorg.netbeans.html.Generic.wait4js=true to always wait for JavaScript execution to finish

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 ece738df357347cf9087d4538861ba6a47f837e9
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Sun Dec 27 07:40:57 2020 +0100

    Use -Dorg.netbeans.html.Generic.wait4js=true to always wait for JavaScript execution to finish
---
 .travis.yml                                                   |  2 +-
 generic/pom.xml                                               | 11 +++++++++++
 .../main/java/org/netbeans/html/presenters/spi/Generic.java   |  7 ++++++-
 .../netbeans/html/presenters/spi/ProtoPresenterBuilder.java   |  3 +++
 4 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 99f3300..cfa050e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -32,7 +32,7 @@ before_script:
 script:
   - $JAVA_HOME/bin/java -version
   - mvn install -DskipTests $ARGS
-  - mvn -q verify $ARGS
+  - mvn -q verify $ARGS -Dorg.netbeans.html.Generic.wait4js=true
   - if [ -n "$JAVADOC" ]; then mvn javadoc:aggregate; fi
 
 matrix:
diff --git a/generic/pom.xml b/generic/pom.xml
index 09b34a5..6500712 100644
--- a/generic/pom.xml
+++ b/generic/pom.xml
@@ -36,6 +36,7 @@
         <publicPackages>org.netbeans.html.presenters.spi</publicPackages>
         <publicMetaInf/>
         <sigtestPackages/>
+        <wait4js>false</wait4js>
     </properties>
 
     <dependencies>
@@ -95,6 +96,16 @@
                 </configuration>
             </plugin>
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <systemPropertyVariables>
+                        <org.netbeans.html.Generic.wait4js>${wait4js}</org.netbeans.html.Generic.wait4js>
+                    </systemPropertyVariables>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
                 <groupId>org.netbeans.html</groupId>
                 <artifactId>html4j-maven-plugin</artifactId>
                 <executions>
diff --git a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
index 3a6a331..473749c 100644
--- a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
+++ b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
@@ -67,6 +67,7 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
         this.evalJS = evalJS;
         this.type = type;
         this.app = app;
+        this.resetDeferredDisabled();
     }
     
     final Object lock() {
@@ -764,11 +765,15 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
                 exec(id, Strings.flushExec(key, id).toString());
             }
             if (topMostCall() == null) {
-                deferredDisabled = false;
+                resetDeferredDisabled();
             }
         }
     }
 
+    private void resetDeferredDisabled() {
+        deferredDisabled = Boolean.getBoolean("org.netbeans.html.Generic.wait4js");
+    }
+
     final Object exec(int id, String fn) {
         assert Thread.holdsLock(lock());
         boolean first;
diff --git a/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java b/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
index f56b56b..cc79a20 100644
--- a/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
+++ b/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
@@ -26,6 +26,9 @@ import org.netbeans.html.boot.spi.Fn.Presenter;
 
 /** The <em>prototypical</em> presenter builder. Builds a {@link Presenter} based on
  * top of textual protocol transferred between JVM and JavaScript engines.
+ * Supports one additional configuration property; by setting
+ * {@code org.netbeans.html.Generic.wait4js}
+ * to {@code true} one enables, more reliable, yet possibly slower, mode.
  */
 public final class ProtoPresenterBuilder {
     private Evaluator loadScript;


---------------------------------------------------------------------
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