Skip to content

Commit 364c37a

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

3 files changed

Lines changed: 26 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: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.Map;
2626
import java.util.Properties;
2727
import java.util.TreeMap;
28+
import org.apache.commons.lang3.StringUtils;
2829
import org.slf4j.Logger;
2930
import org.slf4j.LoggerFactory;
3031

@@ -39,6 +40,7 @@ public class SettingsMigrator {
3940

4041
private final Map<String, Map<String, ReplaceList>> valueChanges = new HashMap<>();
4142
private final Map<String, String> keyChanges = new HashMap<>();
43+
private final Map<String, ValueChecker> valueCheckers = new HashMap<>();
4244

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

8296
private void migrateOldSettings(Properties properties, String key, Map<String, ReplaceList> replaces) {
@@ -98,7 +112,7 @@ private void migrateOldSettings(Properties properties, String key, Map<String, R
98112
}
99113

100114
private void migrateOldSettings(Properties properties, String oldKey, String newKey) {
101-
Object oldValue = properties.get(oldKey);
115+
String oldValue = properties.getProperty(oldKey);
102116
if (oldValue != null) {
103117
LOGGER.warn("Converting setting with old key: {} to new key: {} with value: {}", oldKey, newKey, oldValue);
104118
properties.remove(oldKey);
@@ -135,4 +149,8 @@ public ReplaceList copy() {
135149

136150
}
137151

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

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)