use static memory for settings by config params

This commit is contained in:
Jörg Prante 2021-10-18 18:05:01 +02:00
parent 39b8da629c
commit 0bd3e98253
2 changed files with 32 additions and 2 deletions

View file

@ -29,12 +29,11 @@ import java.util.stream.Collectors;
*/ */
public class ConfigLoader { public class ConfigLoader {
private final Map<ConfigParams, Settings> map; private static final Map<ConfigParams, Settings> map = new HashMap<>();
private ConfigLogger logger; private ConfigLogger logger;
private ConfigLoader() { private ConfigLoader() {
this.map = new HashMap<>();
} }
private static class Holder { private static class Holder {

View file

@ -9,6 +9,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects;
public class ConfigParams implements Comparable<ConfigParams> { public class ConfigParams implements Comparable<ConfigParams> {
@ -129,6 +130,36 @@ public class ConfigParams implements Comparable<ConfigParams> {
return this; return this;
} }
@Override
public int hashCode() {
return toString().hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ConfigParams that = (ConfigParams) o;
return withSystemEnvironment == that.withSystemEnvironment &&
withSystemProperties == that.withSystemProperties &&
failIfEmpty == that.failIfEmpty &&
includeAll == that.includeAll &&
withStdin == that.withStdin &&
withSystemPropertiesOverride == that.withSystemPropertiesOverride &&
Objects.equals(classLoaders, that.classLoaders) &&
Objects.equals(reader, that.reader) &&
Objects.equals(jdbcLookups, that.jdbcLookups) &&
Objects.equals(settings, that.settings) &&
Objects.equals(args, that.args) &&
Objects.equals(directoryName, that.directoryName) &&
Objects.equals(fileNamesWithoutSuffix, that.fileNamesWithoutSuffix) &&
Objects.equals(fileLocations, that.fileLocations);
}
@Override @Override
public int compareTo(ConfigParams o) { public int compareTo(ConfigParams o) {
return COMPARATOR.compare(this, o); return COMPARATOR.compare(this, o);