Skip to content

Commit f3c54be

Browse files
authored
[Java] [vertx] Allow PoolOptions configuration when vertx 5 (#23829)
1 parent 03272c0 commit f3c54be

3 files changed

Lines changed: 43 additions & 9 deletions

File tree

  • modules/openapi-generator/src/main/resources/Java/libraries/vertx
  • samples/client/petstore/java

modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ import io.vertx.ext.web.client.HttpRequest;
3434
import io.vertx.ext.web.client.HttpResponse;
3535
import io.vertx.ext.web.client.WebClient;
3636
import io.vertx.ext.web.client.WebClientOptions;
37+
{{#useVertx5}}
38+
import io.vertx.core.http.PoolOptions;
39+
{{/useVertx5}}
3740

3841
{{#jsr310}}
3942
import java.time.OffsetDateTime;
@@ -56,6 +59,9 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
5659
protected final Vertx vertx;
5760
protected final JsonObject config;
5861
protected final String identifier;
62+
{{#useVertx5}}
63+
protected final JsonObject poolConfig;
64+
{{/useVertx5}}
5965

6066
protected MultiMap defaultHeaders = MultiMap.caseInsensitiveMultiMap();
6167
protected MultiMap defaultCookies = MultiMap.caseInsensitiveMultiMap();
@@ -66,9 +72,18 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
6672
protected String downloadsDir = "";
6773
protected int timeout = -1;
6874

75+
{{#useVertx5}}
6976
public ApiClient(Vertx vertx, JsonObject config) {
77+
this(vertx, config, new JsonObject());
78+
}
79+
80+
{{/useVertx5}}
81+
public ApiClient(Vertx vertx, JsonObject config{{#useVertx5}}, JsonObject poolConfig{{/useVertx5}}) {
7082
Objects.requireNonNull(vertx, "Vertx must not be null");
7183
Objects.requireNonNull(config, "Config must not be null");
84+
{{#useVertx5}}
85+
Objects.requireNonNull(poolConfig, "PoolConfig must not be null");
86+
{{/useVertx5}}
7287

7388
this.vertx = vertx;
7489

@@ -109,6 +124,9 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
109124
this.config = config;
110125
this.identifier = UUID.randomUUID().toString();
111126
this.timeout = config.getInteger("timeout", -1);
127+
{{#useVertx5}}
128+
this.poolConfig = poolConfig;
129+
{{/useVertx5}}
112130
}
113131

114132
public Vertx getVertx() {
@@ -128,7 +146,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
128146
String webClientIdentifier = "web-client-" + identifier;
129147
WebClient webClient = this.vertx.getOrCreateContext().get(webClientIdentifier);
130148
if (webClient == null) {
131-
webClient = buildWebClient(vertx, config);
149+
webClient = buildWebClient(vertx, config{{#useVertx5}}, poolConfig{{/useVertx5}});
132150
this.vertx.getOrCreateContext().put(webClientIdentifier, webClient);
133151
}
134152
return webClient;
@@ -707,13 +725,13 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
707725
* @param vertx Vertx
708726
* @return WebClient
709727
*/
710-
protected WebClient buildWebClient(Vertx vertx, JsonObject config) {
728+
protected WebClient buildWebClient(Vertx vertx, JsonObject config{{#useVertx5}}, JsonObject poolConfig{{/useVertx5}}) {
711729
712730
if (!config.containsKey("userAgent")) {
713731
config.put("userAgent", "{{{httpUserAgent}}}{{^httpUserAgent}}OpenAPI-Generator/{{{artifactVersion}}}/java{{/httpUserAgent}}");
714732
}
715733

716-
return WebClient.create(vertx, new WebClientOptions(config));
734+
return WebClient.create(vertx, new WebClientOptions(config){{#useVertx5}}, new PoolOptions(poolConfig){{/useVertx5}});
717735
}
718736

719737

samples/client/petstore/java/vertx5-supportVertxFuture/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import io.vertx.ext.web.client.HttpResponse;
4242
import io.vertx.ext.web.client.WebClient;
4343
import io.vertx.ext.web.client.WebClientOptions;
44+
import io.vertx.core.http.PoolOptions;
4445

4546
import java.time.OffsetDateTime;
4647
import java.text.DateFormat;
@@ -60,6 +61,7 @@ public class ApiClient extends JavaTimeFormatter {
6061
protected final Vertx vertx;
6162
protected final JsonObject config;
6263
protected final String identifier;
64+
protected final JsonObject poolConfig;
6365

6466
protected MultiMap defaultHeaders = MultiMap.caseInsensitiveMultiMap();
6567
protected MultiMap defaultCookies = MultiMap.caseInsensitiveMultiMap();
@@ -71,8 +73,13 @@ public class ApiClient extends JavaTimeFormatter {
7173
protected int timeout = -1;
7274

7375
public ApiClient(Vertx vertx, JsonObject config) {
76+
this(vertx, config, new JsonObject());
77+
}
78+
79+
public ApiClient(Vertx vertx, JsonObject config, JsonObject poolConfig) {
7480
Objects.requireNonNull(vertx, "Vertx must not be null");
7581
Objects.requireNonNull(config, "Config must not be null");
82+
Objects.requireNonNull(poolConfig, "PoolConfig must not be null");
7683

7784
this.vertx = vertx;
7885

@@ -112,6 +119,7 @@ public ApiClient(Vertx vertx, JsonObject config) {
112119
this.config = config;
113120
this.identifier = UUID.randomUUID().toString();
114121
this.timeout = config.getInteger("timeout", -1);
122+
this.poolConfig = poolConfig;
115123
}
116124

117125
public Vertx getVertx() {
@@ -131,7 +139,7 @@ public synchronized WebClient getWebClient() {
131139
String webClientIdentifier = "web-client-" + identifier;
132140
WebClient webClient = this.vertx.getOrCreateContext().get(webClientIdentifier);
133141
if (webClient == null) {
134-
webClient = buildWebClient(vertx, config);
142+
webClient = buildWebClient(vertx, config, poolConfig);
135143
this.vertx.getOrCreateContext().put(webClientIdentifier, webClient);
136144
}
137145
return webClient;
@@ -650,13 +658,13 @@ protected <T> Handler<AsyncResult<HttpResponse<Buffer>>> buildResponseHandler(Ty
650658
* @param vertx Vertx
651659
* @return WebClient
652660
*/
653-
protected WebClient buildWebClient(Vertx vertx, JsonObject config) {
661+
protected WebClient buildWebClient(Vertx vertx, JsonObject config, JsonObject poolConfig) {
654662

655663
if (!config.containsKey("userAgent")) {
656664
config.put("userAgent", "OpenAPI-Generator/1.0.0/java");
657665
}
658666

659-
return WebClient.create(vertx, new WebClientOptions(config));
667+
return WebClient.create(vertx, new WebClientOptions(config), new PoolOptions(poolConfig));
660668
}
661669

662670

samples/client/petstore/java/vertx5/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import io.vertx.ext.web.client.HttpResponse;
4242
import io.vertx.ext.web.client.WebClient;
4343
import io.vertx.ext.web.client.WebClientOptions;
44+
import io.vertx.core.http.PoolOptions;
4445

4546
import java.time.OffsetDateTime;
4647
import java.text.DateFormat;
@@ -60,6 +61,7 @@ public class ApiClient extends JavaTimeFormatter {
6061
protected final Vertx vertx;
6162
protected final JsonObject config;
6263
protected final String identifier;
64+
protected final JsonObject poolConfig;
6365

6466
protected MultiMap defaultHeaders = MultiMap.caseInsensitiveMultiMap();
6567
protected MultiMap defaultCookies = MultiMap.caseInsensitiveMultiMap();
@@ -71,8 +73,13 @@ public class ApiClient extends JavaTimeFormatter {
7173
protected int timeout = -1;
7274

7375
public ApiClient(Vertx vertx, JsonObject config) {
76+
this(vertx, config, new JsonObject());
77+
}
78+
79+
public ApiClient(Vertx vertx, JsonObject config, JsonObject poolConfig) {
7480
Objects.requireNonNull(vertx, "Vertx must not be null");
7581
Objects.requireNonNull(config, "Config must not be null");
82+
Objects.requireNonNull(poolConfig, "PoolConfig must not be null");
7683

7784
this.vertx = vertx;
7885

@@ -112,6 +119,7 @@ public ApiClient(Vertx vertx, JsonObject config) {
112119
this.config = config;
113120
this.identifier = UUID.randomUUID().toString();
114121
this.timeout = config.getInteger("timeout", -1);
122+
this.poolConfig = poolConfig;
115123
}
116124

117125
public Vertx getVertx() {
@@ -131,7 +139,7 @@ public synchronized WebClient getWebClient() {
131139
String webClientIdentifier = "web-client-" + identifier;
132140
WebClient webClient = this.vertx.getOrCreateContext().get(webClientIdentifier);
133141
if (webClient == null) {
134-
webClient = buildWebClient(vertx, config);
142+
webClient = buildWebClient(vertx, config, poolConfig);
135143
this.vertx.getOrCreateContext().put(webClientIdentifier, webClient);
136144
}
137145
return webClient;
@@ -650,13 +658,13 @@ protected <T> Handler<AsyncResult<HttpResponse<Buffer>>> buildResponseHandler(Ty
650658
* @param vertx Vertx
651659
* @return WebClient
652660
*/
653-
protected WebClient buildWebClient(Vertx vertx, JsonObject config) {
661+
protected WebClient buildWebClient(Vertx vertx, JsonObject config, JsonObject poolConfig) {
654662

655663
if (!config.containsKey("userAgent")) {
656664
config.put("userAgent", "OpenAPI-Generator/1.0.0/java");
657665
}
658666

659-
return WebClient.create(vertx, new WebClientOptions(config));
667+
return WebClient.create(vertx, new WebClientOptions(config), new PoolOptions(poolConfig));
660668
}
661669

662670

0 commit comments

Comments
 (0)