Skip to content

Commit 2b02698

Browse files
committed
Fixed _. translation issue when loading settings for MQTT
1 parent 11ac90f commit 2b02698

3 files changed

Lines changed: 25 additions & 8 deletions

File tree

FROST-Server.Core/src/main/java/de/fraunhofer/iosb/ilt/frostserver/settings/Settings.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private static Properties addEnvironment(Properties wrapped) {
4444
Properties wrapper = new Properties(wrapped);
4545

4646
for (Map.Entry<String, String> entry : environment.entrySet()) {
47-
String key = entry.getKey().replace("_", ".");
47+
String key = entry.getKey().replace('_', '.');
4848
LOGGER.debug("Added environment variable: {}", key);
4949
wrapper.setProperty(key, entry.getValue());
5050
}
@@ -141,7 +141,7 @@ public void setLogSensitiveData(boolean logSensitiveData) {
141141
* @return prefix + propertyName
142142
*/
143143
private String getPropertyKey(String propertyName) {
144-
return prefix + propertyName.replace("_", ".");
144+
return prefix + propertyName.replace('_', '.');
145145
}
146146

147147
/**

FROST-Server.Core/src/main/java/de/fraunhofer/iosb/ilt/frostserver/settings/SettingsMigrator.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class SettingsMigrator {
3939

4040
private final Map<String, Map<String, ReplaceList>> valueChanges = new HashMap<>();
4141
private final Map<String, String> keyChanges = new HashMap<>();
42+
private final Map<String, ValueChecker> valueCheckers = new HashMap<>();
4243

4344
private Map<String, ReplaceList> getReplaceValue(String key) {
4445
return valueChanges.computeIfAbsent(key, t -> new TreeMap<>());
@@ -77,6 +78,18 @@ public void migrateOldSettings(Properties properties) {
7778
for (Map.Entry<String, Map<String, ReplaceList>> change : valueChanges.entrySet()) {
7879
migrateOldSettings(properties, change.getKey(), change.getValue());
7980
}
81+
for (Map.Entry<String, ValueChecker> checkEntry : valueCheckers.entrySet()) {
82+
String key = checkEntry.getKey();
83+
ValueChecker checker = checkEntry.getValue();
84+
String valueOld = properties.getProperty(key);
85+
if (valueOld != null) {
86+
String valueNew = checker.getNewValue(valueOld);
87+
if (!valueOld.equals(valueNew)) {
88+
LOGGER.warn("Converting setting with key: {} from old value: {} to new value: {}", key, valueOld, valueNew);
89+
properties.setProperty(key, valueNew);
90+
}
91+
}
92+
}
8093
}
8194

8295
private void migrateOldSettings(Properties properties, String key, Map<String, ReplaceList> replaces) {
@@ -98,7 +111,7 @@ private void migrateOldSettings(Properties properties, String key, Map<String, R
98111
}
99112

100113
private void migrateOldSettings(Properties properties, String oldKey, String newKey) {
101-
Object oldValue = properties.get(oldKey);
114+
String oldValue = properties.getProperty(oldKey);
102115
if (oldValue != null) {
103116
LOGGER.warn("Converting setting with old key: {} to new key: {} with value: {}", oldKey, newKey, oldValue);
104117
properties.remove(oldKey);
@@ -135,4 +148,8 @@ public ReplaceList copy() {
135148

136149
}
137150

151+
private static interface ValueChecker {
152+
153+
public String getNewValue(String oldValue);
154+
}
138155
}

FROST-Server.MQTT.Moquette/src/main/java/de/fraunhofer/iosb/ilt/frostserver/mqtt/moquette/ConfigWrapper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,27 @@ public ConfigWrapper(Settings wrappedSettings) {
3636

3737
@Override
3838
public void setProperty(String name, String value) {
39-
wrappedSettings.set(name, value);
39+
wrappedSettings.set(name.replace('_', '.'), value);
4040
}
4141

4242
@Override
4343
public String getProperty(String name) {
44-
return wrappedSettings.get(name, (String) null);
44+
return wrappedSettings.get(name.replace('_', '.'), (String) null);
4545
}
4646

4747
@Override
4848
public String getProperty(String name, String defaultValue) {
49-
return wrappedSettings.get(name, defaultValue);
49+
return wrappedSettings.get(name.replace('_', '.'), defaultValue);
5050
}
5151

5252
@Override
5353
public int intProp(String propertyName, int defaultValue) {
54-
return wrappedSettings.getInt(propertyName, defaultValue);
54+
return wrappedSettings.getInt(propertyName.replace('_', '.'), defaultValue);
5555
}
5656

5757
@Override
5858
public boolean boolProp(String propertyName, boolean defaultValue) {
59-
return wrappedSettings.getBoolean(propertyName, defaultValue);
59+
return wrappedSettings.getBoolean(propertyName.replace('_', '.'), defaultValue);
6060
}
6161

6262
@Override

0 commit comments

Comments
 (0)