File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
http-client/src/main/java/io/avaje/http/client Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change 1616import java .util .List ;
1717import java .util .Optional ;
1818import java .util .concurrent .Executor ;
19+ import java .util .concurrent .ExecutorService ;
20+ import java .util .concurrent .Executors ;
1921import java .util .function .Function ;
2022
2123import static java .util .Objects .requireNonNull ;
2224
25+ import java .lang .invoke .MethodHandle ;
26+ import java .lang .invoke .MethodHandles ;
27+ import java .lang .invoke .MethodType ;
28+
2329final class DHttpClientBuilder implements HttpClient .Builder , HttpClient .Builder .State {
2430
2531 private java .net .http .HttpClient client ;
@@ -99,6 +105,20 @@ private java.net.http.HttpClient defaultClient() {
99105 }
100106 if (executor != null ) {
101107 builder .executor (executor );
108+ } else {
109+ try {
110+ ExecutorService virtualExecutorService =
111+ (ExecutorService )
112+ MethodHandles .lookup ()
113+ .findStatic (
114+ Executors .class ,
115+ "newVirtualThreadPerTaskExecutor" ,
116+ MethodType .methodType (ExecutorService .class ))
117+ .invokeExact ();
118+ builder .executor (virtualExecutorService );
119+ } catch (Throwable t ) {
120+ // Nothing to do
121+ }
102122 }
103123 if (proxy != null ) {
104124 builder .proxy (proxy );
You can’t perform that action at this time.
0 commit comments