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:53 UTC
[netbeans-html4j] 02/04: Influence default render selection in the
browser tests by a property
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 8dd6df5d880336cdae7580524e603cc89b296efe
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Sun Dec 27 09:20:53 2020 +0100
Influence default render selection in the browser tests by a property
---
browser/pom.xml | 7 +++-
.../netbeans/html/presenters/browser/Browser.java | 27 +-----------
.../html/presenters/browser/ServerTest.java | 22 +---------
.../org/netbeans/html/presenters/render/Show.java | 48 ++++++++++++++++++----
4 files changed, 49 insertions(+), 55 deletions(-)
diff --git a/browser/pom.xml b/browser/pom.xml
index 4647ebd..0cf99e7 100644
--- a/browser/pom.xml
+++ b/browser/pom.xml
@@ -33,6 +33,7 @@
<main.dir>${project.parent.basedir}</main.dir>
<publicPackages>org.netbeans.html.presenters.browser</publicPackages>
<sigtestPackages/>
+ <com.dukescript.presenters.browser>default</com.dukescript.presenters.browser>
</properties>
<build>
<plugins>
@@ -58,7 +59,11 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.18.1</version>
+ <configuration>
+ <systemPropertyVariables>
+ <com.dukescript.presenters.browser>${com.dukescript.presenters.browser}</com.dukescript.presenters.browser>
+ </systemPropertyVariables>
+ </configuration>
</plugin>
<plugin>
<groupId>org.netbeans.html</groupId>
diff --git a/browser/src/main/java/org/netbeans/html/presenters/browser/Browser.java b/browser/src/main/java/org/netbeans/html/presenters/browser/Browser.java
index 3f509d1..1892f9b 100644
--- a/browser/src/main/java/org/netbeans/html/presenters/browser/Browser.java
+++ b/browser/src/main/java/org/netbeans/html/presenters/browser/Browser.java
@@ -153,32 +153,7 @@ Executor, Closeable {
if ("none".equalsIgnoreCase(impl)) { // NOI18N
return;
}
- if (impl != null) {
- Show.show(impl, page);
- } else {
- IOException one, two;
- try {
- String ui = System.getProperty("os.name").contains("Mac") ?
- "Cocoa" : "GTK";
- Show.show(ui, page);
- return;
- } catch (IOException ex) {
- one = ex;
- }
- try {
- Show.show("AWT", page);
- return;
- } catch (IOException ex) {
- two = ex;
- }
- try {
- Show.show(impl, page);
- } catch (IOException ex) {
- two.initCause(one);
- ex.initCause(two);
- throw ex;
- }
- }
+ Show.show(impl, page);
}
@Override
diff --git a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
index 331c17c..6d61be3 100644
--- a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
+++ b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
@@ -114,27 +114,7 @@ public class ServerTest {
ExecutorService background = Executors.newSingleThreadExecutor();
Future<Void> future = background.submit((Callable<Void>) () -> {
IOException one, two;
- try {
- String ui = System.getProperty("os.name").contains("Mac")
- ? "Cocoa" : "GTK";
- Show.show(ui, page);
- return null;
- } catch (IOException ex) {
- one = ex;
- }
- try {
- Show.show("AWT", page);
- return null;
- } catch (IOException ex) {
- two = ex;
- }
- try {
- Show.show(null, page);
- } catch (IOException ex) {
- two.initCause(one);
- ex.initCause(two);
- throw ex;
- }
+ Show.show(System.getProperty("com.dukescript.presenters.browser"), page);
return null;
});
diff --git a/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java b/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
index 1a77f9e..d5c5041 100644
--- a/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
+++ b/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
@@ -35,23 +35,53 @@ public abstract class Show {
Show() {
}
- /** Shows a page in a browser.
+ /** Shows a page in a browser. Select default implementation
+ * suitable for current system if {@code "default"} or {@code null}.
*
* @param impl the name of implementation to use, can be <code>null</code>
* @param page the page URL
* @throws IOException if something goes wrong
*/
public static void show(String impl, URI page) throws IOException {
+ if (impl == null || "default".equals(impl)) { // NOI18N
+ showOneByOne(page);
+ return;
+ }
+ showOne(impl, page);
+ }
+
+ private static void showOneByOne(URI page) throws IOException {
+ IOException one, two;
+ try {
+ String ui = System.getProperty("os.name").contains("Mac")
+ ? "Cocoa" : "GTK";
+ Show.show(ui, page);
+ return;
+ } catch (IOException ex) {
+ one = ex;
+ }
+ try {
+ Show.show("AWT", page);
+ return;
+ } catch (IOException ex) {
+ two = ex;
+ }
+ try {
+ Show.show("xdg-open", page);
+ } catch (IOException ex) {
+ two.initCause(one);
+ ex.initCause(two);
+ throw ex;
+ }
+ }
+
+ private static void showOne(String impl, URI page) throws IOException {
+ impl.getClass(); // NPE check
try {
Class<?> c = Class.forName(Show.class.getPackage().getName() + '.' + impl);
Show show = (Show) c.newInstance();
show.show(page);
- } catch (IOException ex) {
- throw ex;
- } catch (LinkageError | Exception ex) {
- if (impl == null) {
- impl = "xdg-open";
- }
+ } catch (ClassNotFoundException ex) {
LOG.log(Level.INFO, "Trying command line execution of {0}", impl);
String[] cmdArr = {
impl, page.toString()
@@ -63,6 +93,10 @@ public abstract class Show {
} catch (InterruptedException ex1) {
throw (InterruptedIOException) new InterruptedIOException().initCause(ex1);
}
+ } catch (IOException ex) {
+ throw ex;
+ } catch (LinkageError | Exception ex) {
+ throw new IOException(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