From 848c830d7009fcc49e3c41e15eb5d18f138a03c6 Mon Sep 17 00:00:00 2001 From: lcaouen Date: Fri, 13 Mar 2026 17:31:22 +0100 Subject: [PATCH 1/3] refactoring --- .../java/org/phoebus/product/Launcher.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core/launcher/src/main/java/org/phoebus/product/Launcher.java b/core/launcher/src/main/java/org/phoebus/product/Launcher.java index 05b9bd88e1..5f7b82fdbd 100644 --- a/core/launcher/src/main/java/org/phoebus/product/Launcher.java +++ b/core/launcher/src/main/java/org/phoebus/product/Launcher.java @@ -99,11 +99,7 @@ public static void main(final String[] original_args) throws Exception { if (site_settings.canRead()) { logger.info("Loading bundled settings from " + site_settings.getAbsolutePath()); - final FileInputStream fileInputStream = new FileInputStream(site_settings); - if (site_settings.getName().endsWith(".xml")) - Preferences.importPreferences(fileInputStream); - else - PropertyPreferenceLoader.load(fileInputStream); + LoadSettings(site_settings.getName()); } // Handle arguments, potentially not even starting the UI @@ -140,11 +136,7 @@ public static void main(final String[] original_args) throws Exception { iter.remove(); logger.info("Loading settings from " + location); - if (location.endsWith(".xml")) - Preferences.importPreferences(new FileInputStream(location)); - else - PropertyPreferenceLoader.load(location); - + LoadSettings(location); } else if (cmd.equals("-export_settings")) { if (!iter.hasNext()) throw new Exception("Missing -export_settings file name"); @@ -220,6 +212,13 @@ public static void main(final String[] original_args) throws Exception { Application.launch(PhoebusApplication.class, args.toArray(new String[args.size()])); } + private static void LoadSettings(String location) throws Exception { + if (location.endsWith(".xml")) + Preferences.importPreferences(new FileInputStream(location)); + else + PropertyPreferenceLoader.load(location); + } + private static void help() { System.out.println(" _______ _______ _______ ______ _______ "); System.out.println("( ____ )|\\ /|( ___ )( ____ \\( ___ \\ |\\ /|( ____ \\"); From de2facae97f0fbeda99f23c8e291710a57e516e8 Mon Sep 17 00:00:00 2001 From: lcaouen Date: Fri, 13 Mar 2026 18:29:39 +0100 Subject: [PATCH 2/3] fix https://github.com/ControlSystemStudio/phoebus/issues/3688 --- .../java/org/phoebus/product/Launcher.java | 22 +++++++++++++---- .../java/org/phoebus/ui/help/OpenAbout.java | 24 ++++--------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/core/launcher/src/main/java/org/phoebus/product/Launcher.java b/core/launcher/src/main/java/org/phoebus/product/Launcher.java index 5f7b82fdbd..c72ba488a0 100644 --- a/core/launcher/src/main/java/org/phoebus/product/Launcher.java +++ b/core/launcher/src/main/java/org/phoebus/product/Launcher.java @@ -2,6 +2,7 @@ import javafx.application.Application; import org.phoebus.framework.preferences.PropertyPreferenceLoader; +import org.phoebus.framework.preferences.PropertyPreferenceWriter; import org.phoebus.framework.spi.AppDescriptor; import org.phoebus.framework.spi.AppResourceDescriptor; import org.phoebus.framework.workbench.ApplicationService; @@ -9,10 +10,7 @@ import org.phoebus.ui.application.ApplicationServer; import org.phoebus.ui.application.PhoebusApplication; -import java.io.File; -import java.io.InputStream; -import java.io.FileInputStream; -import java.io.FileOutputStream; +import java.io.*; import java.lang.reflect.Method; import java.nio.charset.Charset; import java.util.ArrayList; @@ -25,11 +23,14 @@ import java.util.prefs.Preferences; import java.util.stream.Collectors; +import static org.phoebus.ui.application.PhoebusApplication.logger; + @SuppressWarnings("nls") public class Launcher { private static final String LOGGING_OPTION = "-logging"; private static final String DEFAULT_LOGGING_FILE="/logging.properties"; private static final String LOGGING_PROP = "java.util.logging.config.file"; + private static final String SETTINGS_SNAPSHOT = "settings_snapshot"; public static void main(final String[] original_args) throws Exception { // First Handle arguments, potentially not even starting the UI @@ -217,6 +218,19 @@ private static void LoadSettings(String location) throws Exception { Preferences.importPreferences(new FileInputStream(location)); else PropertyPreferenceLoader.load(location); + + // Preference settings + final ByteArrayOutputStream prefs_buf = new ByteArrayOutputStream(); + try + { + PropertyPreferenceWriter.save(prefs_buf); + } + catch (Exception ex) + { + logger.log(Level.WARNING, "Cannot list preferences", ex); + } + + Preferences.userRoot().put(SETTINGS_SNAPSHOT, prefs_buf.toString()); } private static void help() { diff --git a/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java b/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java index 254d9d48d5..cac0e55764 100644 --- a/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java +++ b/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java @@ -7,15 +7,11 @@ *******************************************************************************/ package org.phoebus.ui.help; -import static org.phoebus.ui.application.PhoebusApplication.logger; - -import java.io.ByteArrayOutputStream; import java.io.File; import java.util.Arrays; import java.util.List; -import java.util.logging.Level; +import java.util.prefs.Preferences; -import org.phoebus.framework.preferences.PropertyPreferenceWriter; import org.phoebus.framework.workbench.ApplicationService; import org.phoebus.framework.workbench.Locations; import org.phoebus.ui.application.Messages; @@ -50,6 +46,7 @@ @SuppressWarnings("nls") public class OpenAbout implements MenuEntry { + private static final String SETTINGS_SNAPSHOT = "settings_snapshot"; /** Non-null while the 'about' dialog is shown */ private Alert dialog; @@ -194,22 +191,12 @@ private Node createDetailSection() area.setEditable(false); final Tab props = new Tab(Messages.HelpAboutSysFea, area); - // Preference settings - final ByteArrayOutputStream prefs_buf = new ByteArrayOutputStream(); - try - { - PropertyPreferenceWriter.save(prefs_buf); - } - catch (Exception ex) - { - logger.log(Level.WARNING, "Cannot list preferences", ex); - } - + String settings_snapshot = Preferences.userRoot().get(SETTINGS_SNAPSHOT, ""); WebView webView = new WebView(); String content = ""; - content += prefs_buf.toString(); + content += settings_snapshot; content += ""; webView.getEngine().loadContent(content); @@ -217,7 +204,6 @@ private Node createDetailSection() final Tab prefs = new Tab(Messages.HelpAboutPrefs, webView); - final TabPane tabs = new TabPane(apps, envs, props, prefs); - return tabs; + return new TabPane(apps, envs, props, prefs); } } From 06876f25ad87bdcfc522483de3c3f2590d8f4b97 Mon Sep 17 00:00:00 2001 From: lcaouen Date: Tue, 17 Mar 2026 13:21:50 +0100 Subject: [PATCH 3/3] SonarQube corrections --- .../java/org/phoebus/product/Launcher.java | 18 +++++++++--------- .../java/org/phoebus/ui/help/OpenAbout.java | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/launcher/src/main/java/org/phoebus/product/Launcher.java b/core/launcher/src/main/java/org/phoebus/product/Launcher.java index c72ba488a0..396c5368c1 100644 --- a/core/launcher/src/main/java/org/phoebus/product/Launcher.java +++ b/core/launcher/src/main/java/org/phoebus/product/Launcher.java @@ -96,11 +96,11 @@ public static void main(final String[] original_args) throws Exception { Locations.initialize(); // Check for site-specific settings.ini bundled into distribution // before potentially adding command-line settings. - final File site_settings = new File(Locations.install(), "settings.ini"); - if (site_settings.canRead()) + final File siteSettings = new File(Locations.install(), "settings.ini"); + if (siteSettings.canRead()) { - logger.info("Loading bundled settings from " + site_settings.getAbsolutePath()); - LoadSettings(site_settings.getName()); + logger.info("Loading bundled settings from " + siteSettings.getAbsolutePath()); + loadSettings(siteSettings.getName()); } // Handle arguments, potentially not even starting the UI @@ -137,7 +137,7 @@ public static void main(final String[] original_args) throws Exception { iter.remove(); logger.info("Loading settings from " + location); - LoadSettings(location); + loadSettings(location); } else if (cmd.equals("-export_settings")) { if (!iter.hasNext()) throw new Exception("Missing -export_settings file name"); @@ -213,24 +213,24 @@ public static void main(final String[] original_args) throws Exception { Application.launch(PhoebusApplication.class, args.toArray(new String[args.size()])); } - private static void LoadSettings(String location) throws Exception { + private static void loadSettings(String location) throws Exception { if (location.endsWith(".xml")) Preferences.importPreferences(new FileInputStream(location)); else PropertyPreferenceLoader.load(location); // Preference settings - final ByteArrayOutputStream prefs_buf = new ByteArrayOutputStream(); + final ByteArrayOutputStream prefsBuf = new ByteArrayOutputStream(); try { - PropertyPreferenceWriter.save(prefs_buf); + PropertyPreferenceWriter.save(prefsBuf); } catch (Exception ex) { logger.log(Level.WARNING, "Cannot list preferences", ex); } - Preferences.userRoot().put(SETTINGS_SNAPSHOT, prefs_buf.toString()); + Preferences.userRoot().put(SETTINGS_SNAPSHOT, prefsBuf.toString()); } private static void help() { diff --git a/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java b/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java index cac0e55764..70b5834a88 100644 --- a/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java +++ b/core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java @@ -191,12 +191,12 @@ private Node createDetailSection() area.setEditable(false); final Tab props = new Tab(Messages.HelpAboutSysFea, area); - String settings_snapshot = Preferences.userRoot().get(SETTINGS_SNAPSHOT, ""); + String settingsSnapshot = Preferences.userRoot().get(SETTINGS_SNAPSHOT, ""); WebView webView = new WebView(); String content = ""; - content += settings_snapshot; + content += settingsSnapshot; content += ""; webView.getEngine().loadContent(content);