diff --git a/build.gradle b/build.gradle index 24e23523..8d841aa2 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ ext { } group = "stirling.software" -version = "0.36.0" +version = "0.36.1" java { @@ -117,7 +117,11 @@ jpackage { // JVM Options javaOptions = [ "-DBROWSER_OPEN=true", - "-DSTIRLING_PDF_DESKTOP_UI=true" + "-DSTIRLING_PDF_DESKTOP_UI=true", + "-Djava.awt.headless=false", + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.desktop/java.awt.event=ALL-UNNAMED", + "--add-opens", "java.desktop/sun.awt=ALL-UNNAMED" ] // Enable verbose output @@ -127,8 +131,9 @@ jpackage { // Windows-specific configuration windows { + launcherAsService = false appVersion = project.version - winConsole = true + winConsole = false winDirChooser = true winMenu = true winShortcut = true diff --git a/src/main/java/stirling/software/SPDF/SPdfApplication.java b/src/main/java/stirling/software/SPDF/SPdfApplication.java index f39c0e18..bb977c6b 100644 --- a/src/main/java/stirling/software/SPDF/SPdfApplication.java +++ b/src/main/java/stirling/software/SPDF/SPdfApplication.java @@ -79,11 +79,11 @@ public class SPdfApplication { Properties props = new Properties(); - if ("true".equals(System.getenv("STIRLING_PDF_DESKTOP_UI"))) { + if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) { System.setProperty("java.awt.headless", "false"); app.setHeadless(false); - // props.put("java.awt.headless", "false"); - // props.put("spring.main.web-application-type", "servlet"); + props.put("java.awt.headless", "false"); + props.put("spring.main.web-application-type", "servlet"); } app.setAdditionalProfiles("default"); @@ -118,7 +118,7 @@ public class SPdfApplication { propertyFiles.get("spring.config.additional-location"))); } - if (props.isEmpty()) { + if (!props.isEmpty()) { finalProps.putAll(props); } app.setDefaultProperties(finalProps); @@ -147,9 +147,13 @@ public class SPdfApplication { @PostConstruct public void init() { + log.info( + "1 STIRLING_PDF_DESKTOP_UI={}", + Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))); baseUrlStatic = this.baseUrl; String url = baseUrl + ":" + getStaticPort(); - if (webBrowser != null && "true".equals(System.getenv("STIRLING_PDF_DESKTOP_UI"))) { + if (webBrowser != null + && Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) { webBrowser.initWebUI(url); } diff --git a/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java b/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java index 835c36a9..1090103d 100644 --- a/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java +++ b/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java @@ -58,10 +58,12 @@ public class DesktopBrowser implements WebBrowser { private static SystemTray systemTray; public DesktopBrowser() { + log.info("DesktopBrowser 1"); SwingUtilities.invokeLater( () -> { loadingWindow = new LoadingWindow(null, "Initializing..."); loadingWindow.setVisible(true); + log.info("DesktopBrowser 2"); }); } @@ -69,6 +71,7 @@ public class DesktopBrowser implements WebBrowser { CompletableFuture.runAsync( () -> { try { + log.info("DesktopBrowser 4"); CefAppBuilder builder = new CefAppBuilder(); configureCefSettings(builder); @@ -91,7 +94,7 @@ public class DesktopBrowser implements WebBrowser { // Show the frame immediately but transparent frame.setVisible(true); }); - + log.info("DesktopBrowser 5"); } catch (Exception e) { log.error("Error initializing JCEF browser: ", e); cleanup(); @@ -153,27 +156,28 @@ public class DesktopBrowser implements WebBrowser { Objects.requireNonNull(state, "state cannot be null"); SwingUtilities.invokeLater( () -> { + log.info("state {}", state.name()); if (loadingWindow != null) { switch (state) { case LOCATING: - loadingWindow.setStatus("Locating Chromium..."); + loadingWindow.setStatus("Locating Files..."); loadingWindow.setProgress(0); break; case DOWNLOADING: if (percent >= 0) { loadingWindow.setStatus( String.format( - "Downloading Chromium: %.0f%%", + "Downloading additional files: %.0f%%", percent)); loadingWindow.setProgress((int) percent); } break; case EXTRACTING: - loadingWindow.setStatus("Extracting Chromium..."); + loadingWindow.setStatus("Extracting files..."); loadingWindow.setProgress(60); break; case INITIALIZING: - loadingWindow.setStatus("Initializing browser..."); + loadingWindow.setStatus("Initializing UI..."); loadingWindow.setProgress(80); break; case INITIALIZED: