in impl/src/main/java/org/apache/rocketmq/remoting/internal/BeanUtils.java [176:209]
private static Properties extractProperties(final Properties properties) {
Properties newPro = new Properties();
Map<String, String> envMap = System.getenv();
for (final Map.Entry<String, String> entry : envMap.entrySet()) {
newPro.setProperty(entry.getKey().toUpperCase(), entry.getValue());
newPro.setProperty(entry.getKey().toLowerCase(), entry.getValue()); //EnvProp supports A_B_C and a.b.c
}
Properties systemProp = System.getProperties(); //SystemProp supports a.b.c
for (final Map.Entry<Object, Object> entry : systemProp.entrySet()) {
newPro.setProperty(String.valueOf(entry.getKey()).toLowerCase(), String.valueOf(entry.getValue()));
}
Properties inner = null;
try {
Field field = Properties.class.getDeclaredField("defaults");
field.setAccessible(true);
inner = (Properties) field.get(properties);
} catch (Exception ignore) {
}
if (inner != null) {
for (final Map.Entry<Object, Object> entry : inner.entrySet()) {
newPro.setProperty(String.valueOf(entry.getKey()).toLowerCase(), String.valueOf(entry.getValue()));
}
}
for (final Map.Entry<Object, Object> entry : properties.entrySet()) {
newPro.setProperty(String.valueOf(entry.getKey()).toLowerCase(), String.valueOf(entry.getValue()));
}
return newPro;
}