Skip to content

Commit 18d1b83

Browse files
committed
Minor improvements.
1 parent 1a2a1ed commit 18d1b83

File tree

3 files changed

+36
-61
lines changed

3 files changed

+36
-61
lines changed

java-components/domain-proxy/client/src/main/java/com/redhat/hacbs/domainproxy/client/DomainProxyClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ private void startClient() {
8787

8888
@PreDestroy
8989
public void stop() {
90+
Log.info("Shutting down domain proxy client...");
9091
executor.shutdownNow();
9192
}
9293
}

java-components/domain-proxy/server/src/main/java/com/redhat/hacbs/domainproxy/server/ExternalProxyVerticle.java

Lines changed: 35 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.redhat.hacbs.domainproxy.server;
22

3-
import static com.redhat.hacbs.domainproxy.common.CommonIOUtil.TIMEOUT_MS;
4-
53
import java.util.Set;
64
import java.util.concurrent.atomic.AtomicInteger;
75

@@ -50,15 +48,8 @@ public class ExternalProxyVerticle extends AbstractVerticle {
5048
private AtomicInteger counter = new AtomicInteger(0);
5149

5250
public ExternalProxyVerticle(final Vertx vertx) {
53-
webClient = WebClient.create(vertx, new WebClientOptions()
54-
.setMaxPoolSize(50)
55-
.setKeepAlive(true)
56-
.setIdleTimeout(60)
57-
.setConnectTimeout(TIMEOUT_MS));
58-
netClient = vertx.createNetClient(new NetClientOptions()
59-
.setReuseAddress(true)
60-
.setIdleTimeout(60)
61-
.setConnectTimeout(TIMEOUT_MS));
51+
webClient = WebClient.create(vertx, new WebClientOptions());
52+
netClient = vertx.createNetClient(new NetClientOptions());
6253
httpServer = vertx.createHttpServer();
6354
}
6455

@@ -90,27 +81,21 @@ private void handleGetRequest(final HttpServerRequest request) {
9081
if (isTargetWhitelisted(request.authority().host(), request)) {
9182
Log.infof("Target URI %s", request.uri());
9283
final long startTime = System.currentTimeMillis();
93-
vertx.executeBlocking(promise -> {
94-
webClient.getAbs(request.uri()).send(asyncResult -> {
95-
Log.infof("Request %d took %d ms", requestNo, System.currentTimeMillis() - startTime);
96-
if (asyncResult.succeeded()) {
97-
final HttpResponse<Buffer> response = asyncResult.result();
98-
if (response.statusCode() != HttpResponseStatus.OK.code()) {
99-
Log.errorf("Response code: %d, message: %s, body: %s", response.statusCode(),
100-
response.statusMessage(),
101-
response.bodyAsString());
102-
}
103-
request.response()
104-
.setStatusCode(response.statusCode())
105-
.headers().addAll(response.headers());
106-
request.response().end(response.body());
107-
} else {
108-
handleErrorResponse(request, asyncResult.cause(), "Failed to get response");
84+
webClient.getAbs(request.uri()).send(asyncResult -> {
85+
Log.infof("Request %d took %d ms", requestNo, System.currentTimeMillis() - startTime);
86+
if (asyncResult.succeeded()) {
87+
final HttpResponse<Buffer> response = asyncResult.result();
88+
if (response.statusCode() != HttpResponseStatus.OK.code()) {
89+
Log.errorf("Response code: %d, message: %s, body: %s", response.statusCode(),
90+
response.statusMessage(),
91+
response.bodyAsString());
10992
}
110-
});
111-
}, res -> {
112-
if (res.failed()) {
113-
Log.errorf(res.cause(), "Failed to process GET request asynchronously");
93+
request.response()
94+
.setStatusCode(response.statusCode())
95+
.headers().addAll(response.headers());
96+
request.response().end(response.body());
97+
} else {
98+
handleErrorResponse(request, asyncResult.cause(), "Failed to get response");
11499
}
115100
});
116101
}
@@ -121,36 +106,27 @@ private void handleConnectRequest(final HttpServerRequest request) {
121106
final int requestNo = counter.incrementAndGet();
122107
Log.infof("Request no: %d", requestNo);
123108
final String targetHost = request.authority().host();
109+
final int targetPort = request.authority().port() == -1 ? HTTPS_PORT : request.authority().port();
124110
if (isTargetWhitelisted(targetHost, request)) {
125111
Log.infof("Target URI %s", request.uri());
126112
final long startTime = System.currentTimeMillis();
127-
vertx.executeBlocking(promise -> {
128-
int targetPort = request.authority().port();
129-
if (targetPort == -1) {
130-
targetPort = HTTPS_PORT;
131-
}
132-
netClient.connect(targetPort, targetHost, targetConnect -> {
133-
Log.infof("Request %d took %d ms", requestNo, System.currentTimeMillis() - startTime);
134-
if (targetConnect.succeeded()) {
135-
final NetSocket targetSocket = targetConnect.result();
136-
request.toNetSocket().onComplete(sourceConnect -> {
137-
if (sourceConnect.succeeded()) {
138-
final NetSocket sourceSocket = sourceConnect.result();
139-
sourceSocket.handler(targetSocket::write);
140-
targetSocket.handler(sourceSocket::write);
141-
sourceSocket.closeHandler(v -> targetSocket.close());
142-
targetSocket.closeHandler(v -> sourceSocket.close());
143-
} else {
144-
handleErrorResponse(request, sourceConnect.cause(), "Failed to connect to source");
145-
}
146-
});
147-
} else {
148-
handleErrorResponse(request, targetConnect.cause(), "Failed to connect to target");
149-
}
150-
});
151-
}, res -> {
152-
if (res.failed()) {
153-
Log.errorf(res.cause(), "Failed to process CONNECT request asynchronously");
113+
netClient.connect(targetPort, targetHost, targetConnect -> {
114+
Log.infof("Request %d took %d ms", requestNo, System.currentTimeMillis() - startTime);
115+
if (targetConnect.succeeded()) {
116+
final NetSocket targetSocket = targetConnect.result();
117+
request.toNetSocket().onComplete(sourceConnect -> {
118+
if (sourceConnect.succeeded()) {
119+
final NetSocket sourceSocket = sourceConnect.result();
120+
sourceSocket.handler(targetSocket::write);
121+
targetSocket.handler(sourceSocket::write);
122+
sourceSocket.closeHandler(v -> targetSocket.close());
123+
targetSocket.closeHandler(v -> sourceSocket.close());
124+
} else {
125+
handleErrorResponse(request, sourceConnect.cause(), "Failed to connect to source");
126+
}
127+
});
128+
} else {
129+
handleErrorResponse(request, targetConnect.cause(), "Failed to connect to target");
154130
}
155131
});
156132
}
@@ -184,7 +160,7 @@ public void stop() {
184160
netClient.close();
185161
httpServer.close(ar -> {
186162
if (ar.succeeded()) {
187-
Log.info("Server shut down successfully.");
163+
Log.info("Server shut down successfully");
188164
} else {
189165
Log.errorf(ar.cause(), "Server shutdown failed");
190166
}

java-components/domain-proxy/server/src/main/resources/application.properties

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,3 @@ quarkus.rest-client.non-proxy-hosts=${INTERNAL_NON_PROXY_HOSTS:localhost}
99
quarkus.log.min-level=ALL
1010
quarkus.log.level=ALL
1111
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} [Domain Proxy Server] %-5p [%c{3.}] (%t) %s%e%n
12-
quarkus.vertx.event-loops-pool-size=16
13-
quarkus.thread-pool.max-threads=32

0 commit comments

Comments
 (0)