Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 3.32.6
* Refactoring | Create packages for each config data format module. #594

## 3.32.5
* Structuring Domain Model config.Config as proposed in section "New Modeling Propose". #594

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=3.32.5-snapshot
version=3.32.6-snapshot
4 changes: 2 additions & 2 deletions src/main/java/com/mageddo/dnsproxyserver/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.mageddo.dnsproxyserver.application.LogSettings;
import com.mageddo.dnsproxyserver.config.Config;
import com.mageddo.dnsproxyserver.config.application.Configs;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.di.Context;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
Expand Down
30 changes: 12 additions & 18 deletions src/main/java/com/mageddo/dnsproxyserver/config/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,12 @@
import lombok.Value;
import org.apache.commons.lang3.Validate;

import javax.annotation.Nonnull;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

Expand All @@ -33,28 +28,28 @@
@Builder(toBuilder = true, builderClassName = "ConfigBuilder")
public class Config {

private String version;
String version;

private Server server;
Server server;

private DefaultDns defaultDns;
DefaultDns defaultDns;

private Log log;
Log log;

private Path configPath;
Path configPath;

private SolverStub solverStub;
SolverStub solverStub;

private SolverRemote solverRemote;
SolverRemote solverRemote;

private SolverDocker solverDocker;
SolverDocker solverDocker;

private SolverSystem solverSystem;
SolverSystem solverSystem;

private SolverLocal solverLocal;
SolverLocal solverLocal;

@NonNull
private Source source;
Source source;

@JsonIgnore
public Boolean isDefaultDnsActive() {
Expand Down Expand Up @@ -88,7 +83,6 @@ private DefaultDns.ResolvConf getDefaultDnsResolvConf() {
return this.defaultDns.resolvConf;
}

@Nonnull
@JsonIgnore
public List<IpAddr> getRemoteDnsServers() {
if (this.solverRemote == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.mageddo.dnsproxyserver.config.application;

import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOEnv;
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigEnv;
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.provider.legacyenv.ConfigDAOLegacyEnv;
import com.mageddo.dnsproxyserver.config.provider.legacyenv.ConfigEnv;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.utils.ObjectUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -17,7 +17,7 @@
@RequiredArgsConstructor(onConstructor = @__({@Inject}))
public class ConfigFileFinderService {

private final ConfigDAOEnv configDAOEnv;
private final ConfigDAOLegacyEnv configDAOEnv;
private final ConfigDAOCmdArgs configDAOCmdArgs;

public Path findPath(){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mageddo.dnsproxyserver.config.application;

import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.vo.ConfigFlag;
import com.mageddo.utils.Files;
import com.mageddo.utils.Runtime;
import com.mageddo.utils.Tests;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,21 @@
public class ConfigService {

private final List<ConfigDAO> configDAOS;
private final ConfigMapper configMapper;

@Inject
public ConfigService(Instance<ConfigDAO> configDAOS) {
public ConfigService(Instance<ConfigDAO> configDAOS, ConfigMapper configMapper) {
this.configDAOS = configDAOS
.stream()
.toList()
;
this.configMapper = configMapper;
}

public Config findCurrentConfig() {
final var configs = this.findConfigs();
log.trace("baseConfigs={}", configs);
final var config = ConfigMapper.mapFrom(configs);
final var config = this.configMapper.mapFrom(configs);
return config;
}

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.mageddo.dnsproxyserver.config.dataprovider;

public interface VersionDAO {
String findVersion();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

import com.mageddo.di.InstanceImpl;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAO;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOEnv;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOJson;
import com.mageddo.dnsproxyserver.config.dataprovider.VersionDAO;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.ConfigDAOCmdArgs;
import com.mageddo.dnsproxyserver.config.provider.legacyenv.ConfigDAOLegacyEnv;
import com.mageddo.dnsproxyserver.config.provider.jsonv1v2.dataprovider.ConfigDAOJson;
import com.mageddo.dnsproxyserver.config.provider.prop.VersionDAOProp;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import dagger.multibindings.ElementsIntoSet;
Expand All @@ -24,8 +27,12 @@ static Instance<ConfigDAO> multiSourceConfigDAOInstance(Set<ConfigDAO> instances
@Singleton
@ElementsIntoSet
static Set<ConfigDAO> configDaos(
ConfigDAOEnv o1, ConfigDAOCmdArgs o2, ConfigDAOJson o3
ConfigDAOLegacyEnv o1, ConfigDAOCmdArgs o2, ConfigDAOJson o3
) {
return Set.of(o1, o2, o3);
}

@Binds
@Singleton
VersionDAO versionDAO(VersionDAOProp impl);
}
Original file line number Diff line number Diff line change
@@ -1,40 +1,38 @@
package com.mageddo.dnsproxyserver.config.mapper;

import com.mageddo.dnsproxyserver.config.Config;
import com.mageddo.dnsproxyserver.config.Log;
import com.mageddo.dnsproxyserver.config.Server;
import com.mageddo.dnsproxyserver.config.SolverDocker;
import com.mageddo.dnsproxyserver.config.SolverLocal;
import com.mageddo.dnsproxyserver.config.SolverRemote;
import com.mageddo.dnsproxyserver.config.SolverStub;
import com.mageddo.dnsproxyserver.config.SolverSystem;
import com.mageddo.dnsproxyserver.config.StaticThresholdCircuitBreakerStrategyConfig;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigPropDAO;
import com.mageddo.dnsproxyserver.config.*;
import com.mageddo.dnsproxyserver.config.dataprovider.VersionDAO;
import com.mageddo.dnsproxyserver.config.validator.ConfigValidator;
import com.mageddo.dnsproxyserver.utils.Numbers;
import com.mageddo.dnsserver.SimpleServer;
import com.mageddo.net.IpAddr;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.SystemUtils;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.net.URI;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static com.mageddo.dnsproxyserver.utils.ListOfObjectUtils.mapField;
import static com.mageddo.dnsproxyserver.utils.ObjectUtils.firstNonEmptyListRequiring;
import static com.mageddo.dnsproxyserver.utils.ObjectUtils.firstNonNull;
import static com.mageddo.dnsproxyserver.utils.ObjectUtils.firstNonNullRequiring;
import static com.mageddo.dnsproxyserver.utils.ObjectUtils.*;

@Singleton
@RequiredArgsConstructor(onConstructor_ = @Inject)
public class ConfigMapper {
public static Config mapFrom(List<Config> configs) {

private final VersionDAO versionDAO;

public Config mapFrom(List<Config> configs) {
final var configsWithDefault = new ArrayList<>(configs);
configsWithDefault.add(buildDefault());
return mapFrom0(configsWithDefault);
}

private static Config mapFrom0(List<Config> configs) {
private Config mapFrom0(List<Config> configs) {
final var config = Config.builder()
.server(Server
.builder()
Expand All @@ -44,7 +42,7 @@ private static Config mapFrom0(List<Config> configs) {
.dnsServerNoEntriesResponseCode(firstNonNullRequiring(mapField(Config::getNoEntriesResponseCode, configs)))
.build()
)
.version(ConfigPropDAO.getVersion())
.version(this.versionDAO.findVersion())
.log(Log
.builder()
.level(firstNonNullRequiring(mapField(Config::getLogLevel, configs)))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.mageddo.dnsproxyserver.config.dataprovider.mapper;
package com.mageddo.dnsproxyserver.config.mapper;

import com.mageddo.dnsproxyserver.config.LogLevel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.EnumUtils;
import org.apache.commons.lang3.StringUtils;

@Slf4j
public class ConfigFieldsValuesMapper {
public class LogLevelMapper {
public static LogLevel mapLogLevelFrom(String logLevelName) {
final var level = EnumUtils.getEnumIgnoreCase(LogLevel.class, logLevelName);
if (StringUtils.isNotBlank(logLevelName) && level == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.mageddo.dnsproxyserver.config.dataprovider;
package com.mageddo.dnsproxyserver.config.provider.cmdargs;

import com.mageddo.dnsproxyserver.config.Config;
import com.mageddo.dnsproxyserver.config.dataprovider.mapper.ConfigFlagMapper;
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAO;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.mapper.ConfigFlagMapper;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.vo.ConfigFlag;
import lombok.RequiredArgsConstructor;

import javax.inject.Inject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mageddo.dnsproxyserver.config.dataprovider.mapper;
package com.mageddo.dnsproxyserver.config.provider.cmdargs.mapper;

import com.mageddo.dnsproxyserver.config.Config;
import com.mageddo.dnsproxyserver.config.Log;
Expand All @@ -7,7 +7,8 @@
import com.mageddo.dnsproxyserver.config.SolverRemote;
import com.mageddo.dnsproxyserver.config.SolverStub;
import com.mageddo.dnsproxyserver.config.SolverSystem;
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.config.mapper.LogLevelMapper;
import com.mageddo.dnsproxyserver.config.provider.cmdargs.vo.ConfigFlag;
import com.mageddo.dnsproxyserver.utils.Booleans;
import com.mageddo.utils.Files;

Expand All @@ -25,7 +26,7 @@ public static Config toConfig(ConfigFlag config) {
.log(Log
.builder()
.file(config.getLogToFile())
.level(ConfigFieldsValuesMapper.mapLogLevelFrom(config.getLogLevel()))
.level(LogLevelMapper.mapLogLevelFrom(config.getLogLevel()))
.build()
)
.defaultDns(Config.DefaultDns.builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.mageddo.dnsproxyserver.config.dataprovider.vo;
package com.mageddo.dnsproxyserver.config.provider.cmdargs.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigPropDAO;
import com.mageddo.dnsproxyserver.config.application.Configs;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
Expand All @@ -15,7 +15,6 @@
import java.nio.file.Paths;
import java.util.concurrent.Callable;


@Getter
@NoArgsConstructor
public class ConfigFlag implements Callable<Boolean> {
Expand Down Expand Up @@ -245,12 +244,17 @@ public static ConfigFlag parse(String[] args, PrintWriter writer) {
@Override
public Boolean call() {
if (this.version) {
this.commandLine.getOut().write(ConfigPropDAO.getVersion());
this.commandLine.getOut().write(findVersion());
return true;
}
return false;
}

private static String findVersion() {
return Configs.getInstance()
.getVersion();
}

@JsonIgnore
public Path getConfigFileAsPath() {
if (StringUtils.isNotBlank(this.configFilePath)) {
Expand Down
Loading