From 20c6d34cbd59b60a226aab91a22f00e067a0c1c0 Mon Sep 17 00:00:00 2001 From: "Xavier G." <104097021+XavSPM@users.noreply.github.com> Date: Wed, 14 Aug 2024 20:36:18 +0200 Subject: [PATCH 1/2] Update PropertyPreferenceLoader.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modification of the preferences import function to correct the file path problem when environment variables such as “$(phoebus.install)” are used in the settings.ini file under Windows. --- .../preferences/PropertyPreferenceLoader.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java b/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java index 92917baa71..be27301adf 100644 --- a/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java +++ b/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java @@ -18,6 +18,8 @@ import java.util.Properties; import java.util.prefs.Preferences; +import org.phoebus.framework.workbench.Locations; + /** Load preferences from a property file * @author Kay Kasemir */ @@ -46,7 +48,16 @@ public static void load(final InputStream stream) throws Exception final String pack = "/" + prop.substring(0, sep).replace('.', '/'); final String name = prop.substring(sep+1); - final String value = props.getProperty(prop); + String value = props.getProperty(prop); + + if (value.contains("$(phoebus.install)")) + value = value.replace("$(phoebus.install)", Locations.install().toString()).replace("\\", "/").replace(" ", "%20"); + if (value.contains("$(phoebus.user)")) + value = value.replace("$(user.home)", Locations.user().toString()).replace("\\", "/").replace(" ", "%20"); + if (value.contains("$(user.home)")) + value = value.replace("$(user.home)", System.getProperty("user.home").toString()).replace("\\", "/").replace(" ", "%20"); + + final Preferences prefs = Preferences.userRoot().node(pack); prefs.put(name, value); // System.out.println(pack + "/" + name + "=" + value); From 83c779f46402ae6a3d6aebeaee545405f5931833 Mon Sep 17 00:00:00 2001 From: "Xavier G." <104097021+XavSPM@users.noreply.github.com> Date: Wed, 14 Aug 2024 21:29:58 +0200 Subject: [PATCH 2/2] Update PropertyPreferenceLoader.java Variable error, replacing `user.home` with `phoebus.user`. --- .../phoebus/framework/preferences/PropertyPreferenceLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java b/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java index be27301adf..74e63822f4 100644 --- a/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java +++ b/core/framework/src/main/java/org/phoebus/framework/preferences/PropertyPreferenceLoader.java @@ -53,7 +53,7 @@ public static void load(final InputStream stream) throws Exception if (value.contains("$(phoebus.install)")) value = value.replace("$(phoebus.install)", Locations.install().toString()).replace("\\", "/").replace(" ", "%20"); if (value.contains("$(phoebus.user)")) - value = value.replace("$(user.home)", Locations.user().toString()).replace("\\", "/").replace(" ", "%20"); + value = value.replace("$(phoebus.user)", Locations.user().toString()).replace("\\", "/").replace(" ", "%20"); if (value.contains("$(user.home)")) value = value.replace("$(user.home)", System.getProperty("user.home").toString()).replace("\\", "/").replace(" ", "%20");