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 ab8d739d34..05b9bd88e1 100644
--- a/core/launcher/src/main/java/org/phoebus/product/Launcher.java
+++ b/core/launcher/src/main/java/org/phoebus/product/Launcher.java
@@ -2,7 +2,6 @@
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;
@@ -10,7 +9,10 @@
import org.phoebus.ui.application.ApplicationServer;
import org.phoebus.ui.application.PhoebusApplication;
-import java.io.*;
+import java.io.File;
+import java.io.InputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.ArrayList;
@@ -23,14 +25,11 @@
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
@@ -96,11 +95,15 @@ 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 siteSettings = new File(Locations.install(), "settings.ini");
- if (siteSettings.canRead())
+ final File site_settings = new File(Locations.install(), "settings.ini");
+ if (site_settings.canRead())
{
- logger.info("Loading bundled settings from " + siteSettings.getAbsolutePath());
- loadSettings(siteSettings.getAbsolutePath());
+ 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);
}
// Handle arguments, potentially not even starting the UI
@@ -137,7 +140,11 @@ public static void main(final String[] original_args) throws Exception {
iter.remove();
logger.info("Loading settings from " + location);
- loadSettings(location);
+ if (location.endsWith(".xml"))
+ Preferences.importPreferences(new FileInputStream(location));
+ else
+ PropertyPreferenceLoader.load(location);
+
} else if (cmd.equals("-export_settings")) {
if (!iter.hasNext())
throw new Exception("Missing -export_settings file name");
@@ -213,26 +220,6 @@ 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);
-
- // Preference settings
- final ByteArrayOutputStream prefsBuf = new ByteArrayOutputStream();
- try
- {
- PropertyPreferenceWriter.save(prefsBuf);
- }
- catch (Exception ex)
- {
- logger.log(Level.WARNING, "Cannot list preferences", ex);
- }
-
- Preferences.userRoot().put(SETTINGS_SNAPSHOT, prefsBuf.toString());
- }
-
private static void help() {
System.out.println(" _______ _______ _______ ______ _______ ");
System.out.println("( ____ )|\\ /|( ___ )( ____ \\( ___ \\ |\\ /|( ____ \\");
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 70b5834a88..254d9d48d5 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,11 +7,15 @@
*******************************************************************************/
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.prefs.Preferences;
+import java.util.logging.Level;
+import org.phoebus.framework.preferences.PropertyPreferenceWriter;
import org.phoebus.framework.workbench.ApplicationService;
import org.phoebus.framework.workbench.Locations;
import org.phoebus.ui.application.Messages;
@@ -46,7 +50,6 @@
@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;
@@ -191,12 +194,22 @@ private Node createDetailSection()
area.setEditable(false);
final Tab props = new Tab(Messages.HelpAboutSysFea, area);
- String settingsSnapshot = Preferences.userRoot().get(SETTINGS_SNAPSHOT, "");
+ // Preference settings
+ final ByteArrayOutputStream prefs_buf = new ByteArrayOutputStream();
+ try
+ {
+ PropertyPreferenceWriter.save(prefs_buf);
+ }
+ catch (Exception ex)
+ {
+ logger.log(Level.WARNING, "Cannot list preferences", ex);
+ }
+
WebView webView = new WebView();
String content = "