Skip to content

Commit 79fdf6c

Browse files
committed
remove reflective virtual thread lookup
we already have a multi-release jar
1 parent 0ee148c commit 79fdf6c

File tree

3 files changed

+26
-21
lines changed

3 files changed

+26
-21
lines changed

http-client/src/main/java/io/avaje/http/client/DHttpClientBuilder.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.avaje.http.client;
22

3-
import java.lang.invoke.MethodHandles;
4-
import java.lang.invoke.MethodType;
53
import java.net.Authenticator;
64
import java.net.CookieHandler;
75
import java.net.CookieManager;
@@ -15,8 +13,6 @@
1513
import java.util.Optional;
1614
import java.util.Set;
1715
import java.util.concurrent.Executor;
18-
import java.util.concurrent.ExecutorService;
19-
import java.util.concurrent.Executors;
2016
import java.util.function.Function;
2117

2218
import javax.net.ssl.SSLContext;
@@ -55,8 +51,7 @@ final class DHttpClientBuilder implements HttpClient.Builder, HttpClient.Builder
5551
private final Set<String> suppressed = new HashSet<>();
5652

5753
private void configureRetryHandler(BeanScope beanScope) {
58-
beanScope.getOptional(RetryHandler.class)
59-
.ifPresent(this::setRetryHandler);
54+
beanScope.getOptional(RetryHandler.class).ifPresent(this::setRetryHandler);
6055
}
6156

6257
private void setRetryHandler(RetryHandler retryHandler) {
@@ -109,7 +104,7 @@ private java.net.http.HttpClient defaultClient() {
109104
if (executor != null) {
110105
builder.executor(executor);
111106
} else if (Integer.getInteger("java.specification.version") >= 21) {
112-
builder.executor(virtualThreadExecutor());
107+
builder.executor(VirtualThreadExecutor.getVTExecutor());
113108
}
114109
if (proxy != null) {
115110
builder.proxy(proxy);
@@ -129,17 +124,6 @@ private java.net.http.HttpClient defaultClient() {
129124
return builder.build();
130125
}
131126

132-
private static ExecutorService virtualThreadExecutor() {
133-
try {
134-
return (ExecutorService)
135-
MethodHandles.lookup()
136-
.findStatic(Executors.class, "newVirtualThreadPerTaskExecutor", MethodType.methodType(ExecutorService.class))
137-
.invokeExact();
138-
} catch (Throwable e) {
139-
return null;
140-
}
141-
}
142-
143127
/**
144128
* Create a reasonable default BodyAdapter if avaje-jsonb or Jackson are present.
145129
*/
@@ -192,8 +176,7 @@ private DHttpClientContext buildClient() {
192176
buildIntercept());
193177
}
194178

195-
DHttpClientBuilder() {
196-
}
179+
DHttpClientBuilder() {}
197180

198181
@Override
199182
public HttpClient.Builder client(java.net.http.HttpClient client) {
@@ -377,5 +360,4 @@ public Duration requestTimeout() {
377360
public RetryHandler retryHandler() {
378361
return retryHandler;
379362
}
380-
381363
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.avaje.http.client;
2+
3+
import java.util.concurrent.ExecutorService;
4+
5+
final class VirtualThreadExecutor {
6+
private VirtualThreadExecutor() {}
7+
8+
static ExecutorService getVTExecutor() {
9+
return null;
10+
}
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.avaje.http.client;
2+
3+
import java.util.concurrent.ExecutorService;
4+
import java.util.concurrent.Executors;
5+
6+
final class VirtualThreadExecutor {
7+
private VirtualThreadExecutor() {}
8+
9+
static ExecutorService getVTExecutor() {
10+
return Executors.newVirtualThreadPerTaskExecutor();
11+
}
12+
}

0 commit comments

Comments
 (0)