Skip to content

Commit 47359d2

Browse files
committed
Bumped vertx to 5.0
1 parent 114fdc0 commit 47359d2

38 files changed

Lines changed: 297 additions & 373 deletions

extra/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
<!-- Project production dependency versions -->
3636
<spring.boot.version>3.5.10</spring.boot.version>
37-
<vertx.version>4.5.20</vertx.version>
37+
<vertx.version>5.0.10</vertx.version>
3838
<validation-api.version>2.0.1.Final</validation-api.version>
3939
<commons.collections.version>4.4</commons.collections.version>
4040
<commons.compress.version>1.27.1</commons.compress.version>

src/main/java/org/prebid/server/floors/PriceFloorFetcher.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import io.vertx.core.Future;
66
import io.vertx.core.Vertx;
77
import io.vertx.core.http.HttpHeaders;
8-
import io.vertx.core.impl.ConcurrentHashSet;
98
import lombok.Value;
109
import org.apache.commons.lang3.BooleanUtils;
1110
import org.apache.commons.lang3.ObjectUtils;
@@ -37,6 +36,7 @@
3736
import java.util.Map;
3837
import java.util.Objects;
3938
import java.util.Set;
39+
import java.util.concurrent.ConcurrentHashMap;
4040
import java.util.concurrent.TimeUnit;
4141
import java.util.concurrent.TimeoutException;
4242
import java.util.regex.Matcher;
@@ -79,7 +79,7 @@ public PriceFloorFetcher(ApplicationSettings applicationSettings,
7979
this.debugProperties = debugProperties;
8080
this.mapper = Objects.requireNonNull(mapper);
8181

82-
fetchInProgress = new ConcurrentHashSet<>();
82+
fetchInProgress = ConcurrentHashMap.newKeySet();
8383
fetchedData = Caffeine.newBuilder()
8484
.maximumSize(MAXIMUM_CACHE_SIZE)
8585
.<String, AccountFetchContext>build()

src/main/java/org/prebid/server/geolocation/CircuitBreakerSecuredGeoLocationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public CircuitBreakerSecuredGeoLocationService(Vertx vertx,
4949

5050
@Override
5151
public Future<GeoInfo> lookup(String ip, Timeout timeout) {
52-
return breaker.execute(promise -> geoLocationService.lookup(ip, timeout).onComplete(promise));
52+
return breaker.execute(() -> geoLocationService.lookup(ip, timeout));
5353
}
5454

5555
private void circuitOpened() {

src/main/java/org/prebid/server/handler/SetuidHandler.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import io.vertx.core.AsyncResult;
55
import io.vertx.core.CompositeFuture;
66
import io.vertx.core.Future;
7-
import io.vertx.core.http.Cookie;
87
import io.vertx.core.http.HttpHeaders;
98
import io.vertx.core.http.HttpMethod;
109
import io.vertx.core.http.HttpServerRequest;
@@ -333,7 +332,7 @@ private void respondWithCookie(SetuidContext setuidContext) {
333332
setuidContext.getUidsCookie(), bidder, uid);
334333

335334
uidsCookieService.splitUidsIntoCookies(uidsCookieUpdateResult.getValue())
336-
.forEach(cookie -> addCookie(routingContext, cookie));
335+
.forEach(routingContext.response()::addCookie);
337336

338337
if (uidsCookieUpdateResult.isUpdated()) {
339338
metrics.updateUserSyncSetsMetric(bidder);
@@ -412,8 +411,4 @@ private void handleErrors(Throwable error, RoutingContext routingContext, TcfCon
412411
analyticsDelegator.processEvent(setuidEvent, tcfContext);
413412
}
414413
}
415-
416-
private void addCookie(RoutingContext routingContext, Cookie cookie) {
417-
routingContext.response().headers().add(HttpUtil.SET_COOKIE_HEADER, cookie.encode());
418-
}
419414
}

src/main/java/org/prebid/server/json/JacksonMapper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.fasterxml.jackson.databind.ObjectMapper;
66
import io.netty.buffer.ByteBufInputStream;
77
import io.vertx.core.buffer.Buffer;
8+
import io.vertx.core.internal.buffer.BufferInternal;
89
import org.prebid.server.proto.openrtb.ext.FlexibleExtension;
910

1011
import java.io.IOException;
@@ -66,15 +67,15 @@ public <T> T decodeValue(String str, TypeReference<T> type) throws DecodeExcepti
6667

6768
public <T> T decodeValue(Buffer buf, Class<T> clazz) throws DecodeException {
6869
try {
69-
return mapper.readValue((InputStream) new ByteBufInputStream(buf.getByteBuf()), clazz);
70+
return mapper.readValue((InputStream) new ByteBufInputStream(((BufferInternal) buf).getByteBuf()), clazz);
7071
} catch (IOException e) {
7172
throw new DecodeException(FAILED_TO_DECODE.formatted(e.getMessage()), e);
7273
}
7374
}
7475

7576
public <T> T decodeValue(Buffer buf, TypeReference<T> type) throws DecodeException {
7677
try {
77-
return mapper.readValue(new ByteBufInputStream(buf.getByteBuf()), type);
78+
return mapper.readValue(new ByteBufInputStream(((BufferInternal) buf).getByteBuf()), type);
7879
} catch (IOException e) {
7980
throw new DecodeException(FAILED_TO_DECODE.formatted(e.getMessage()), e);
8081
}

src/main/java/org/prebid/server/log/CriteriaLogManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
import com.iab.openrtb.request.BidRequest;
44
import com.iab.openrtb.response.BidResponse;
5-
import io.vertx.core.impl.ConcurrentHashSet;
65
import org.prebid.server.json.EncodeException;
76
import org.prebid.server.json.JacksonMapper;
87

98
import java.util.Objects;
109
import java.util.Set;
10+
import java.util.concurrent.ConcurrentHashMap;
1111

1212
public class CriteriaLogManager {
1313

1414
private static final Logger logger = LoggerFactory.getLogger(CriteriaLogManager.class);
1515

16-
private final Set<Criteria> criterias = new ConcurrentHashSet<>();
16+
private final Set<Criteria> criterias = ConcurrentHashMap.newKeySet();
1717

1818
private final JacksonMapper mapper;
1919

src/main/java/org/prebid/server/privacy/gdpr/vendorlist/VendorListService.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.github.benmanes.caffeine.cache.Caffeine;
44
import io.netty.handler.codec.http.HttpResponseStatus;
55
import io.vertx.core.Future;
6-
import io.vertx.core.Promise;
76
import io.vertx.core.Vertx;
87
import io.vertx.core.buffer.Buffer;
98
import io.vertx.core.file.FileProps;
@@ -317,23 +316,15 @@ private VendorListResult<VendorList> processResponse(HttpClientResponse response
317316
* Saves given vendor list on file system.
318317
*/
319318
private Future<VendorListResult<VendorList>> saveToFile(VendorListResult<VendorList> vendorListResult) {
320-
final Promise<VendorListResult<VendorList>> promise = Promise.promise();
321319
final int version = vendorListResult.getVersion();
322320
final String filepath = new File(cacheDir, version + JSON_SUFFIX).getPath();
323321

324-
fileSystem.writeFile(filepath, Buffer.buffer(vendorListResult.getVendorListAsString()), result -> {
325-
if (result.succeeded()) {
326-
promise.complete(vendorListResult);
327-
} else {
328-
conditionalLogger.error(
322+
return fileSystem.writeFile(filepath, Buffer.buffer(vendorListResult.getVendorListAsString()))
323+
.map(vendorListResult)
324+
.onFailure(error -> conditionalLogger.error(
329325
"Could not create new vendor list for version %s.%s, file: %s, trace: %s".formatted(
330-
generationVersion, version, filepath, ExceptionUtils.getStackTrace(result.cause())),
331-
logSamplingRate);
332-
promise.fail(result.cause());
333-
}
334-
});
335-
336-
return promise.future();
326+
generationVersion, version, filepath, ExceptionUtils.getStackTrace(error.getCause())),
327+
logSamplingRate));
337328
}
338329

339330
private Void updateCache(VendorListResult<VendorList> vendorListResult) {

src/main/java/org/prebid/server/spring/config/ServiceConfiguration.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.vertx.core.Vertx;
66
import io.vertx.core.file.FileSystem;
77
import io.vertx.core.http.HttpClientOptions;
8+
import io.vertx.core.http.PoolOptions;
89
import io.vertx.core.net.JksOptions;
910
import lombok.Data;
1011
import org.apache.commons.lang3.ObjectUtils;
@@ -676,11 +677,13 @@ CircuitBreakerSecuredHttpClient circuitBreakerSecuredHttpClient(
676677
}
677678

678679
private static BasicHttpClient createBasicHttpClient(Vertx vertx, HttpClientProperties httpClientProperties) {
680+
final PoolOptions poolOptions = new PoolOptions()
681+
.setHttp1MaxSize(httpClientProperties.getMaxPoolSize())
682+
.setCleanerPeriod(httpClientProperties.getPoolCleanerPeriodMs());
683+
679684
final HttpClientOptions options = new HttpClientOptions()
680-
.setMaxPoolSize(httpClientProperties.getMaxPoolSize())
681685
.setIdleTimeoutUnit(TimeUnit.MILLISECONDS)
682686
.setIdleTimeout(httpClientProperties.getIdleTimeoutMs())
683-
.setPoolCleanerPeriod(httpClientProperties.getPoolCleanerPeriodMs())
684687
.setDecompressionSupported(httpClientProperties.getUseCompression())
685688
.setConnectTimeout(httpClientProperties.getConnectTimeoutMs())
686689
// Vert.x's HttpClientRequest needs this value to be 2 for redirections to be followed once,
@@ -697,7 +700,7 @@ private static BasicHttpClient createBasicHttpClient(Vertx vertx, HttpClientProp
697700
.setKeyCertOptions(jksOptions);
698701
}
699702

700-
return new BasicHttpClient(vertx, vertx.createHttpClient(options));
703+
return new BasicHttpClient(vertx, vertx.createHttpClient(options, poolOptions));
701704
}
702705

703706
@Bean

src/main/java/org/prebid/server/spring/config/VerticleStarter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ public void start() {
3030
continue;
3131
}
3232

33-
contextRunner.<String>runBlocking(promise ->
33+
contextRunner.runBlocking(() ->
3434
vertx.deployVerticle(
3535
definition.getFactory(),
36-
new DeploymentOptions().setInstances(definition.getAmount()),
37-
promise));
36+
new DeploymentOptions().setInstances(definition.getAmount())));
3837
}
3938
}
4039
}

src/main/java/org/prebid/server/spring/config/database/DatabaseConfiguration.java

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.prebid.server.spring.config.database;
22

33
import io.vertx.core.Vertx;
4+
import io.vertx.core.net.NetClientOptions;
45
import io.vertx.mysqlclient.MySQLBuilder;
56
import io.vertx.mysqlclient.MySQLConnectOptions;
67
import io.vertx.pgclient.PgBuilder;
@@ -84,19 +85,20 @@ Pool mysqlConnectionPool(Vertx vertx,
8485
.setDatabase(databaseAddress.getDatabaseName())
8586
.setUser(connectionPoolSettings.getUser())
8687
.setPassword(connectionPoolSettings.getPassword())
87-
.setSsl(false)
88-
.setTcpKeepAlive(true)
8988
.setCachePreparedStatements(connectionPoolSettings.getEnablePreparedStatementCaching())
90-
.setPreparedStatementCacheMaxSize(connectionPoolSettings.getMaxPreparedStatementCacheSize())
91-
.setIdleTimeout(connectionPoolSettings.getIdleTimeout())
92-
.setIdleTimeoutUnit(TimeUnit.SECONDS);
89+
.setPreparedStatementCacheMaxSize(connectionPoolSettings.getMaxPreparedStatementCacheSize());
90+
91+
final NetClientOptions netClientOptions = new NetClientOptions()
92+
.setTcpKeepAlive(true);
9393

9494
final PoolOptions poolOptions = new PoolOptions()
95-
.setMaxSize(connectionPoolSettings.getPoolSize());
95+
.setMaxSize(connectionPoolSettings.getPoolSize())
96+
.setIdleTimeout(connectionPoolSettings.getIdleTimeout())
97+
.setIdleTimeoutUnit(TimeUnit.SECONDS);
9698

97-
return MySQLBuilder
98-
.pool()
99+
return MySQLBuilder.pool()
99100
.with(poolOptions)
101+
.with(netClientOptions)
100102
.connectingTo(sqlConnectOptions)
101103
.using(vertx)
102104
.build();
@@ -114,19 +116,20 @@ Pool postgresConnectionPool(Vertx vertx,
114116
.setDatabase(databaseAddress.getDatabaseName())
115117
.setUser(connectionPoolSettings.getUser())
116118
.setPassword(connectionPoolSettings.getPassword())
117-
.setSsl(false)
118-
.setTcpKeepAlive(true)
119119
.setCachePreparedStatements(connectionPoolSettings.getEnablePreparedStatementCaching())
120-
.setPreparedStatementCacheMaxSize(connectionPoolSettings.getMaxPreparedStatementCacheSize())
121-
.setIdleTimeout(connectionPoolSettings.getIdleTimeout())
122-
.setIdleTimeoutUnit(TimeUnit.SECONDS);
120+
.setPreparedStatementCacheMaxSize(connectionPoolSettings.getMaxPreparedStatementCacheSize());
121+
122+
final NetClientOptions netClientOptions = new NetClientOptions()
123+
.setTcpKeepAlive(true);
123124

124125
final PoolOptions poolOptions = new PoolOptions()
125-
.setMaxSize(connectionPoolSettings.getPoolSize());
126+
.setMaxSize(connectionPoolSettings.getPoolSize())
127+
.setIdleTimeout(connectionPoolSettings.getIdleTimeout())
128+
.setIdleTimeoutUnit(TimeUnit.SECONDS);
126129

127-
return PgBuilder
128-
.pool()
130+
return PgBuilder.pool()
129131
.with(poolOptions)
132+
.with(netClientOptions)
130133
.connectingTo(sqlConnectOptions)
131134
.using(vertx)
132135
.build();
@@ -175,7 +178,7 @@ private static BasicDatabaseClient createBasicDatabaseClient(Pool pool,
175178

176179
final BasicDatabaseClient basicDatabaseClient = new BasicDatabaseClient(pool, metrics, clock);
177180

178-
contextRunner.<Void>runBlocking(promise -> basicDatabaseClient.initialize().onComplete(promise));
181+
contextRunner.runBlocking(basicDatabaseClient::initialize);
179182

180183
return basicDatabaseClient;
181184
}

0 commit comments

Comments
 (0)