Skip to content

Commit b0c5da2

Browse files
authored
Feat/440 refactoring (#447)
* refactoring package and names * refactoring package and names * isolation app from dataprovider * refactrogin * refactoring * fixing compiling errors * fixing compiling errors * refactoring tests * creating dao strategy to find configs * partially refactoring to build config based on multiple sources * refactoring * refactoring * configuring dagger * fixing test * implementing env mapper * implementing the mapping * mapping is done * refactoring * adjusting test * refactoring package * fixing test * fixing test * fixing config template defaults * adjusting test isolation to unit test * domain object validation * refactoring rename * refactoring rename * testing daos order * updating javadoc * release notes * [Gradle Release Plugin] - new version commit: '3.17.3-snapshot'.
1 parent da784d3 commit b0c5da2

File tree

89 files changed

+1088
-534
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1088
-534
lines changed

RELEASE-NOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 3.17.3
2+
* DPS Config module refactoring due #440, see #447
3+
14
## 3.17.2
25
* Fixing regression, leading with no ipv6 response, see #446
36

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=3.17.2-snapshot
1+
version=3.17.3-snapshot
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.mageddo.di;
2+
3+
import com.mageddo.dnsproxyserver.di.Context;
4+
import lombok.RequiredArgsConstructor;
5+
6+
import javax.enterprise.inject.Instance;
7+
import javax.enterprise.inject.spi.BeanManager;
8+
import javax.enterprise.inject.spi.CDI;
9+
import javax.enterprise.util.TypeLiteral;
10+
import java.lang.annotation.Annotation;
11+
import java.util.Iterator;
12+
13+
@RequiredArgsConstructor
14+
public class CDIImpl extends CDI<Object> {
15+
16+
private final Context context;
17+
18+
@Override
19+
public BeanManager getBeanManager() {
20+
throw new UnsupportedOperationException();
21+
}
22+
23+
@Override
24+
public Instance<Object> select(Annotation... qualifiers) {
25+
throw new UnsupportedOperationException();
26+
}
27+
28+
@Override
29+
public <U extends Object> Instance<U> select(Class<U> subtype, Annotation... qualifiers) {
30+
return new InstanceImpl<>(this.context.get(subtype));
31+
}
32+
33+
@Override
34+
public <U extends Object> Instance<U> select(TypeLiteral<U> subtype, Annotation... qualifiers) {
35+
return new InstanceImpl<>(this.context.get(subtype.getRawType()));
36+
}
37+
38+
@Override
39+
public boolean isUnsatisfied() {
40+
throw new UnsupportedOperationException();
41+
}
42+
43+
@Override
44+
public boolean isAmbiguous() {
45+
throw new UnsupportedOperationException();
46+
}
47+
48+
@Override
49+
public void destroy(Object instance) {
50+
51+
}
52+
53+
@Override
54+
public Iterator<Object> iterator() {
55+
throw new UnsupportedOperationException();
56+
}
57+
58+
@Override
59+
public Context get() {
60+
return this.context;
61+
}
62+
}

src/main/java/com/mageddo/dnsproxyserver/di/InstanceImpl.java renamed to src/main/java/com/mageddo/di/InstanceImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
package com.mageddo.dnsproxyserver.di;
1+
package com.mageddo.di;
22

33
import javax.enterprise.inject.Instance;
44
import javax.enterprise.util.TypeLiteral;
55
import java.lang.annotation.Annotation;
66
import java.util.Collection;
7+
import java.util.Collections;
78
import java.util.Iterator;
89

910
public class InstanceImpl<T> implements Instance<T> {
1011

1112
private final Collection<T> values;
1213

14+
public InstanceImpl(T instance){
15+
this.values = Collections.singleton(instance);
16+
}
17+
1318
public InstanceImpl(Collection<T> values) {
1419
this.values = values;
1520
}
Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
package com.mageddo.dnsproxyserver;
22

3-
import com.mageddo.dnsproxyserver.config.Configs;
3+
import com.mageddo.dnsproxyserver.application.AppSettings;
4+
import com.mageddo.dnsproxyserver.config.Config;
5+
import com.mageddo.dnsproxyserver.config.application.Configs;
6+
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOCmdArgs;
47
import com.mageddo.dnsproxyserver.di.Context;
8+
import org.apache.commons.lang3.BooleanUtils;
59

610
public class App {
711
public static void main(String[] args) {
812

9-
final var config = Configs.getInstance(args);
10-
AppSettings.setup(config);
13+
ConfigDAOCmdArgs.setArgs(args);
14+
15+
final var config = Configs.getInstance();
16+
17+
checkExitCommands(config);
18+
19+
new AppSettings().setupLogs(config);
1120

1221
final var context = Context.create();
1322

@@ -16,6 +25,11 @@ public static void main(String[] args) {
1625
context.start();
1726

1827
// todo install as service
28+
}
1929

30+
static void checkExitCommands(Config config) {
31+
if (BooleanUtils.isTrue(config.isHelpCmd()) || config.isVersionCmd()) {
32+
System.exit(0);
33+
}
2034
}
2135
}

src/main/java/com/mageddo/dnsproxyserver/AppSettings.java

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.mageddo.dnsproxyserver.application;
2+
3+
import com.mageddo.dnsproxyserver.config.Config;
4+
import com.mageddo.dnsproxyserver.dataprovider.LogSettingsDAO;
5+
import com.mageddo.dnsproxyserver.dataprovider.LogSettingsDAOSlf4j;
6+
import lombok.RequiredArgsConstructor;
7+
import lombok.extern.slf4j.Slf4j;
8+
9+
import javax.inject.Singleton;
10+
11+
@Slf4j
12+
@RequiredArgsConstructor
13+
@Singleton
14+
public class AppSettings {
15+
16+
/**
17+
* Injetando na mão, pois precisa ser feito antes de iniciar o contexto.
18+
*/
19+
private final LogSettingsDAO logSettingsDAO = new LogSettingsDAOSlf4j();
20+
21+
public void setupLogs(Config config) {
22+
this.logSettingsDAO.setupLogFile(config);
23+
this.logSettingsDAO.setupLogLevel(config);
24+
}
25+
26+
}

src/main/java/com/mageddo/dnsproxyserver/config/Config.java

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mageddo.dnsproxyserver.config;
22

3-
import com.mageddo.dnsproxyserver.config.entrypoint.LogLevel;
43
import com.mageddo.dnsproxyserver.server.dns.SimpleServer;
54
import com.mageddo.net.IP;
65
import com.mageddo.net.IpAddr;
@@ -26,70 +25,57 @@
2625
import static com.mageddo.commons.lang.Objects.mapOrNull;
2726

2827
/**
29-
* Domain object which owns the configs.
3028
*
31-
* @see com.mageddo.dnsproxyserver.config.entrypoint.ConfigJson
32-
* @see com.mageddo.dnsproxyserver.config.entrypoint.ConfigFlag
33-
* @see com.mageddo.dnsproxyserver.config.entrypoint.ConfigEnv
29+
* @see com.mageddo.dnsproxyserver.config.application.ConfigService
3430
*/
3531
@Value
36-
@Builder
32+
@Builder(toBuilder = true)
3733
public class Config {
3834

39-
@NonNull
4035
private String version;
4136

42-
@NonNull
4337
@Builder.Default
4438
private List<IpAddr> remoteDnsServers = new ArrayList<>();
4539

46-
@NonNull
4740
private Integer webServerPort;
4841

49-
@NonNull
5042
private Integer dnsServerPort;
5143

52-
@NonNull
5344
private Boolean defaultDns;
5445

5546
private LogLevel logLevel;
5647

57-
@NonNull
5848
private String logFile;
5949

60-
@NonNull
6150
private Boolean registerContainerNames;
6251

63-
@NonNull
6452
private String hostMachineHostname;
6553

66-
@NonNull
6754
private String domain;
6855

69-
@NonNull
7056
private Boolean mustConfigureDpsNetwork;
7157

72-
@NonNull
7358
private Boolean dpsNetworkAutoConnect;
7459

75-
@NonNull
7660
private Path configPath;
7761

78-
@NonNull
7962
private String resolvConfPaths;
8063

81-
@NonNull
8264
private SimpleServer.Protocol serverProtocol;
8365

8466
private URI dockerHost;
8567

86-
private boolean resolvConfOverrideNameServers;
68+
private Boolean resolvConfOverrideNameServers;
8769

88-
private boolean noRemoteServers;
70+
private Boolean noRemoteServers;
8971

90-
private int noEntriesResponseCode;
72+
private Integer noEntriesResponseCode;
9173

92-
private boolean dockerSolverHostMachineFallbackActive;
74+
private Boolean dockerSolverHostMachineFallbackActive;
75+
76+
private boolean helpCmd;
77+
78+
private boolean versionCmd;
9379

9480
public void resetConfigFile() {
9581
try {
@@ -184,7 +170,7 @@ public enum Type {
184170
private final int type;
185171

186172
public boolean isNot(Type... types) {
187-
return Types.isNot(this.type, types);
173+
return ConfigEntryTypes.isNot(this.type, types);
188174
}
189175

190176
public static Type of(Integer code) {
@@ -217,7 +203,7 @@ public IP.Version toVersion() {
217203
}
218204

219205
public boolean isAddressSolving() {
220-
return Types.is(this, Config.Entry.Type.A, Config.Entry.Type.AAAA);
206+
return ConfigEntryTypes.is(this, Config.Entry.Type.A, Config.Entry.Type.AAAA);
221207
}
222208
}
223209
}

src/main/java/com/mageddo/dnsproxyserver/config/Types.java renamed to src/main/java/com/mageddo/dnsproxyserver/config/ConfigEntryTypes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.stream.Collectors;
66
import java.util.stream.Stream;
77

8-
public class Types {
8+
public class ConfigEntryTypes {
99

1010
public static boolean isNot(Type current, Type... possible) {
1111
return !is(current, possible);

0 commit comments

Comments
 (0)