Skip to content

Commit 2d22f54

Browse files
committed
adjusts
1 parent 2f05d3e commit 2d22f54

File tree

6 files changed

+50
-36
lines changed

6 files changed

+50
-36
lines changed

src/main/java/com/mageddo/dnsproxyserver/server/dns/RequestHandlerDefault.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.time.Duration;
44
import java.util.ArrayList;
55
import java.util.List;
6-
import java.util.Optional;
76

87
import javax.inject.Inject;
98
import javax.inject.Singleton;
@@ -55,9 +54,9 @@ public RequestHandlerDefault(
5554

5655
@Override
5756
public Message handle(Message query, String kind) {
58-
final var queryStr = simplePrint(query);
5957
final var stopWatch = StopWatch.createStarted();
6058
if (log.isTraceEnabled()) {
59+
final var queryStr = simplePrint(query);
6160
log.trace("status=solving, kind={}, query={}", kind, queryStr);
6261
}
6362
try {
@@ -72,13 +71,20 @@ public Message handle(Message query, String kind) {
7271
}
7372

7473
Message solveCaching(Message query, String kind, StopWatch stopWatch) {
75-
final var res = Optional
76-
.ofNullable(this.cache.handle(query, this::solveWithFixedCacheTTL))
77-
.orElseGet(() -> this.buildDefaultRes(query));
74+
final var res = this.cache.handle(query, this::solveWithFixedCacheTTL);
75+
if (res == null) {
76+
final var msg = this.buildDefaultRes(query);
77+
log.debug(
78+
"status=defaultAnswer, kind={}, time={}, res={}",
79+
kind, stopWatch.getTime(), simplePrint(msg)
80+
);
81+
return msg;
82+
}
7883
log.debug(
79-
"status=solveRes, kind={}, time={}, res={}", kind, stopWatch.getTime(), simplePrint(res)
84+
"status=solved, kind={}, solver={}, time={}, res={}",
85+
kind, res.getSolver(), stopWatch.getTime(), simplePrint(res.getMessage())
8086
);
81-
return res;
87+
return res.getMessage();
8288
}
8389

8490
NamedResponse solveWithFixedCacheTTL(Message req) {
@@ -102,7 +108,7 @@ NamedResponse solve(Message req) {
102108
}
103109
} finally {
104110
if (log.isDebugEnabled()) {
105-
log.debug("status=solveSummary, summary={}", timeSummary);
111+
log.debug("timesSummary={}", timeSummary);
106112
}
107113
}
108114
return null;

src/main/java/com/mageddo/dnsproxyserver/solver/NamedResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public LocalDateTime getCreatedAt() {
2929
return this.response.getCreatedAt();
3030
}
3131

32-
public Response withMessage(Message message) {
33-
return this.response.withMessage(message);
32+
public NamedResponse withMessage(Message message) {
33+
return of(this.response.withMessage(message), this.solver);
3434
}
3535

3636
public Message getMessage() {

src/main/java/com/mageddo/dnsproxyserver/solver/cache/SolverCache.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.mageddo.commons.lang.Objects;
1515
import com.mageddo.dns.utils.Messages;
1616
import com.mageddo.dnsproxyserver.solver.NamedResponse;
17-
import com.mageddo.dnsproxyserver.solver.Response;
1817
import com.mageddo.dnsproxyserver.solver.cache.CacheName.Name;
1918

2019
import org.xbill.DNS.Message;
@@ -41,11 +40,11 @@ public SolverCache(Name name) {
4140
.build();
4241
}
4342

44-
public Message handle(Message query, Function<Message, NamedResponse> delegate) {
45-
return Objects.mapOrNull(this.handleRes(query, delegate), Response::getMessage);
43+
public Message handleToMsg(Message query, Function<Message, NamedResponse> delegate) {
44+
return Objects.mapOrNull(this.handle(query, delegate), NamedResponse::getMessage);
4645
}
4746

48-
public Response handleRes(Message query, Function<Message, NamedResponse> delegate) {
47+
public NamedResponse handle(Message query, Function<Message, NamedResponse> delegate) {
4948
final var key = buildKey(query);
5049

5150
final var cachedValue = this.cache.getIfPresent(key);
@@ -71,7 +70,7 @@ void cacheValue(String key, CacheValue value) {
7170
this.cache.get(key, k -> value);
7271
}
7372

74-
Response mapResponse(Message query, CacheValue value, boolean cached) {
73+
NamedResponse mapResponse(Message query, CacheValue value, boolean cached) {
7574
if (value == null) {
7675
return null;
7776
}
@@ -86,10 +85,6 @@ Response mapResponse(Message query, CacheValue value, boolean cached) {
8685
CacheValue calc(
8786
String key, Message query, Function<Message, NamedResponse> delegate
8887
) {
89-
final var queryText = Messages.simplePrint(query);
90-
if (log.isTraceEnabled()) {
91-
log.trace("status=finding, key={}, req={}", key, queryText);
92-
}
9388
final var res = delegate.apply(query);
9489
if (res == null) {
9590
if (log.isTraceEnabled()) {
@@ -98,7 +93,10 @@ CacheValue calc(
9893
return null;
9994
}
10095
final var ttl = res.getDpsTtl();
101-
log.debug("status=hotloadRes, k={}, ttl={}, simpleMsg={}", key, ttl, queryText);
96+
if(log.isTraceEnabled()) {
97+
final var queryText = Messages.simplePrint(query);
98+
log.debug("status=res, k={}, ttl={}, simpleMsg={}", key, ttl, queryText);
99+
}
102100
return CacheValue.of(res, ttl);
103101
}
104102

src/main/java/com/mageddo/dnsproxyserver/solver/remote/SolverCachedRemote.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import javax.inject.Inject;
44
import javax.inject.Singleton;
55

6+
import com.mageddo.commons.lang.Objects;
67
import com.mageddo.dns.utils.Messages;
78
import com.mageddo.dnsproxyserver.solver.NamedResponse;
89
import com.mageddo.dnsproxyserver.solver.Response;
@@ -35,7 +36,7 @@ public SolverCachedRemote(
3536

3637
@Override
3738
public Response handle(Message query) {
38-
return this.solversCache.handleRes(
39+
final var res = this.solversCache.handle(
3940
query,
4041
__ -> {
4142
if (log.isTraceEnabled()) {
@@ -44,6 +45,7 @@ public Response handle(Message query) {
4445
return NamedResponse.of(this.solverRemote.handle(query), this.name());
4546
}
4647
);
48+
return Objects.mapOrNull(res, NamedResponse::getResponse);
4749
}
4850

4951
@Override

src/test/java/com/mageddo/dnsproxyserver/server/CacheResourceCompTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import testing.ContextSupplier;
1414
import testing.Events;
1515
import testing.templates.MessageTemplates;
16-
import testing.templates.ResponseTemplates;
16+
import testing.templates.NamedResponseTemplates;
1717

1818
import static io.restassured.RestAssured.given;
1919
import static org.hamcrest.CoreMatchers.equalTo;
@@ -50,7 +50,7 @@ void mustFindCacheSize() {
5050
@Test
5151
void mustFindCaches() {
5252
// arrange
53-
this.cache.handle(MessageTemplates.acmeAQuery(), ResponseTemplates::to);
53+
this.cache.handleToMsg(MessageTemplates.acmeAQuery(), NamedResponseTemplates::of);
5454

5555
// act
5656
final var response = given()

src/test/java/com/mageddo/dnsproxyserver/solver/SolversCacheTest.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import com.mageddo.commons.concurrent.Threads;
1717
import com.mageddo.dns.utils.Messages;
1818
import com.mageddo.dnsproxyserver.solver.cache.CacheName.Name;
19-
2019
import com.mageddo.dnsproxyserver.solver.cache.SolverCache;
20+
2121
import org.junit.jupiter.api.Test;
2222
import org.junit.jupiter.api.extension.ExtendWith;
2323
import org.mockito.junit.jupiter.MockitoExtension;
@@ -26,6 +26,7 @@
2626

2727
import lombok.SneakyThrows;
2828
import testing.templates.MessageTemplates;
29+
import testing.templates.NamedResponseTemplates;
2930
import testing.templates.ResponseTemplates;
3031

3132
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -58,9 +59,11 @@ void mustCacheForTheSpecifiedTime() {
5859
final var key = "A-acme.com";
5960

6061
// act
61-
final var res = this.cache.handleRes(req, message -> {
62-
return Response.of(Messages.aAnswer(message, "0.0.0.0"), Duration.ofMillis(50));
63-
}
62+
final var res = this.cache.handle(
63+
req,
64+
message -> NamedResponseTemplates.of(
65+
Response.of(Messages.aAnswer(message, "0.0.0.0"), Duration.ofMillis(50))
66+
)
6467
);
6568

6669
// assert
@@ -79,8 +82,11 @@ void mustCacheAndGetValidResponse() {
7982
final var req = MessageTemplates.acmeAQuery();
8083

8184
// act
82-
final var res = this.cache.handle(req,
83-
message -> Response.internalSuccess(Messages.aAnswer(message, "0.0.0.0"))
85+
final var res = this.cache.handleToMsg(
86+
req,
87+
message -> NamedResponseTemplates.of(
88+
Response.internalSuccess(Messages.aAnswer(message, "0.0.0.0"))
89+
)
8490
);
8591

8692
// assert
@@ -102,7 +108,7 @@ void cantCacheWhenDelegateSolverHasNoAnswer() {
102108
final var query = MessageTemplates.acmeAQuery();
103109

104110
// act
105-
final var res = this.cache.handle(query, message -> null);
111+
final var res = this.cache.handleToMsg(query, message -> null);
106112

107113
// assert
108114
assertNull(res);
@@ -113,17 +119,19 @@ void cantCacheWhenDelegateSolverHasNoAnswer() {
113119
void mustEvictLocksAndDeadLocks() throws Exception {
114120
// arrange
115121
final var r = new SecureRandom();
116-
final Function<Message, Response> fn = message -> {
122+
final Function<Message, NamedResponse> fn = message -> {
117123
Threads.sleep(r.nextInt(50) + 10);
118124
this.cache.clear();
119-
return ResponseTemplates.acmeAResponse();
125+
return NamedResponseTemplates.of(ResponseTemplates.acmeAResponse());
120126
};
121127

122128
final var pool = ThreadPool.newFixed(3);
123129

124130
// act
125131
this.runNTimes(
126-
it -> pool.submit(() -> this.cache.handle(MessageTemplates.randomHostnameAQuery(), fn)),
132+
it -> pool.submit(() -> this.cache.handleToMsg(
133+
MessageTemplates.randomHostnameAQuery(), fn
134+
)),
127135
30
128136
);
129137

@@ -164,11 +172,11 @@ private void concurrentRequests(int quantity, Message req, Random r) {
164172
}
165173
}
166174

167-
private Object handleRequest(Message req, Random r) {
168-
this.cache.handleRes(req, message -> {
175+
Object handleRequest(Message req, Random r) {
176+
this.cache.handle(req, message -> {
169177
final var res = Response.internalSuccess(Messages.aAnswer(message, "0.0.0.0"));
170178
Threads.sleep(r.nextInt(10));
171-
return res;
179+
return NamedResponseTemplates.of(res);
172180
}
173181
);
174182
return null;

0 commit comments

Comments
 (0)