Skip to content

Commit 2b2eeb1

Browse files
committed
Bumped vert.x to 5.1.0. Fixed functional test that has been failing due to case-sensitive headers check.
1 parent 68d2154 commit 2b2eeb1

9 files changed

Lines changed: 34 additions & 26 deletions

File tree

extra/modules/optable-targeting/src/main/java/org/prebid/server/hooks/modules/optable/targeting/v1/net/APIClientImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import io.netty.handler.codec.http.HttpResponseStatus;
44
import io.vertx.core.Future;
55
import io.vertx.core.MultiMap;
6-
import io.vertx.core.http.impl.headers.HeadersMultiMap;
6+
import io.vertx.core.http.HttpHeaders;
77
import org.apache.commons.collections4.CollectionUtils;
88
import org.apache.commons.lang3.StringUtils;
99
import org.prebid.server.execution.timeout.Timeout;
@@ -69,7 +69,7 @@ private String resolveEndpoint(String tenant, String origin) {
6969
}
7070

7171
private static MultiMap headers(OptableTargetingProperties properties, List<String> ips, String userAgent) {
72-
final MultiMap headers = HeadersMultiMap.httpHeaders()
72+
final MultiMap headers = HttpHeaders.headers()
7373
.add(HttpUtil.ACCEPT_HEADER, "application/json");
7474

7575
if (userAgent != null) {

extra/modules/optable-targeting/src/test/java/org/prebid/server/hooks/modules/optable/targeting/v1/BaseOptableTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import com.iab.openrtb.response.BidResponse;
1717
import com.iab.openrtb.response.SeatBid;
1818
import io.vertx.core.MultiMap;
19-
import io.vertx.core.http.impl.headers.HeadersMultiMap;
19+
import io.vertx.core.http.HttpHeaders;
2020
import org.apache.commons.io.IOUtils;
2121
import org.apache.http.HttpStatus;
2222
import org.prebid.server.activity.infrastructure.ActivityInfrastructure;
@@ -193,7 +193,7 @@ protected Device givenDevice() {
193193
}
194194

195195
protected HttpClientResponse givenSuccessHttpResponse(String fileName) {
196-
final MultiMap headers = HeadersMultiMap.httpHeaders().add("Content-Type", "application/json");
196+
final MultiMap headers = HttpHeaders.headers().add("Content-Type", "application/json");
197197
return HttpClientResponse.of(HttpStatus.SC_OK, headers, givenBodyFromFile(fileName));
198198
}
199199

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>5.0.10</vertx.version>
37+
<vertx.version>5.1.0</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/analytics/reporter/pubstack/PubstackAnalyticsReporter.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.prebid.server.analytics.reporter.pubstack;
22

3-
import io.vertx.core.AsyncResult;
43
import io.vertx.core.Future;
54
import io.vertx.core.Promise;
65
import io.vertx.core.Vertx;
@@ -119,19 +118,22 @@ public String name() {
119118
@Override
120119
public void initialize(Promise<Void> initializePromise) {
121120
vertx.setPeriodic(configurationRefreshDelay, id -> fetchRemoteConfig());
122-
fetchRemoteConfig();
123-
initializePromise.tryComplete();
121+
fetchRemoteConfig()
122+
.onSuccess(initializePromise::succeed)
123+
.onFailure(initializePromise::fail);
124124
}
125125

126126
void shutdown() {
127127
eventHandlers.values().forEach(PubstackEventHandler::reportEvents);
128128
}
129129

130-
private void fetchRemoteConfig() {
130+
private Future<Void> fetchRemoteConfig() {
131131
logger.info("[pubstack] Updating config: {}", pubstackConfig);
132-
httpClient.get(makeEventEndpointUrl(pubstackConfig.getEndpoint(), pubstackConfig.getScopeId()), timeout)
132+
return httpClient.get(makeEventEndpointUrl(pubstackConfig.getEndpoint(), pubstackConfig.getScopeId()), timeout)
133133
.map(this::processRemoteConfigurationResponse)
134-
.onComplete(this::updateConfigsOnChange);
134+
.map(this::updateConfigsOnChange)
135+
.onFailure(PubstackAnalyticsReporter::logError)
136+
.mapEmpty();
135137
}
136138

137139
private PubstackConfig processRemoteConfigurationResponse(HttpClientResponse response) {
@@ -148,15 +150,14 @@ private PubstackConfig processRemoteConfigurationResponse(HttpClientResponse res
148150
}
149151
}
150152

151-
private void updateConfigsOnChange(AsyncResult<PubstackConfig> asyncConfigResult) {
152-
if (asyncConfigResult.failed()) {
153-
logger.error("[pubstask] Fail to fetch remote configuration: {}", asyncConfigResult.cause().getMessage());
154-
} else if (!Objects.equals(pubstackConfig, asyncConfigResult.result())) {
155-
final PubstackConfig pubstackConfig = asyncConfigResult.result();
153+
private Void updateConfigsOnChange(PubstackConfig config) {
154+
if (!Objects.equals(pubstackConfig, config)) {
156155
eventHandlers.values().forEach(PubstackEventHandler::reportEvents);
157-
this.pubstackConfig = pubstackConfig;
156+
this.pubstackConfig = config;
158157
updateHandlers(pubstackConfig);
159158
}
159+
160+
return null;
160161
}
161162

162163
private void updateHandlers(PubstackConfig pubstackConfig) {
@@ -187,4 +188,8 @@ private String makeEventHandlerEndpoint(String endpoint, EventType eventType) {
187188
throw new PreBidException(message);
188189
}
189190
}
191+
192+
private static void logError(Throwable throwable) {
193+
logger.error("[pubstask] Fail to fetch remote configuration: {}", throwable.getCause().getMessage());
194+
}
190195
}

src/test/groovy/org/prebid/server/functional/tests/SetUidSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ class SetUidSpec extends BaseSpec {
514514
}
515515

516516
List<String> getSetUidsHeaders(SetuidResponse response, boolean includeEmpty = false) {
517-
response.headers.get("Set-Cookie").findAll { cookie ->
517+
response.headers.get("set-cookie").findAll { cookie ->
518518
includeEmpty || !(cookie =~ /\buids\d*=\s*;/)
519519
}
520520
}

src/test/java/org/prebid/server/analytics/reporter/pubstack/PubstackAnalyticsReporterTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Collections;
2727
import java.util.HashMap;
2828
import java.util.Map;
29+
import java.util.concurrent.TimeUnit;
2930

3031
import static org.assertj.core.api.Assertions.assertThatThrownBy;
3132
import static org.mockito.ArgumentMatchers.any;
@@ -106,14 +107,19 @@ public void initializeShouldFetchConfigAndSetPeriodicTimerForConfigUpdate() thro
106107
@Test
107108
public void initializeShouldFailUpdateSendBuffersAndSetTimerWhenEndpointFromRemoteConfigIsNotValid()
108109
throws JsonProcessingException {
110+
109111
// given
112+
final Promise<Void> promise = Promise.promise();
110113
final PubstackConfig pubstackConfig = PubstackConfig.of("newScopeId", "invalid",
111114
Collections.singletonMap(EventType.auction, true));
112115
given(httpClient.get(anyString(), anyLong())).willReturn(
113116
Future.succeededFuture(HttpClientResponse.of(200, null, mapper.writeValueAsString(pubstackConfig))));
114117

115-
// when and then
116-
assertThatThrownBy(() -> pubstackAnalyticsReporter.initialize(Promise.promise()))
118+
// when
119+
pubstackAnalyticsReporter.initialize(promise);
120+
121+
// then
122+
assertThatThrownBy(() -> promise.future().await(5, TimeUnit.SECONDS))
117123
.hasMessage("[pubstack] Failed to create event report url for endpoint: invalid")
118124
.isInstanceOf(PreBidException.class);
119125
verify(auctionHandler).reportEvents();

src/test/java/org/prebid/server/bidder/criteo/CriteoBidderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.iab.openrtb.response.SeatBid;
1010
import io.vertx.core.MultiMap;
1111
import io.vertx.core.http.HttpMethod;
12-
import io.vertx.core.http.impl.headers.HeadersMultiMap;
1312
import org.assertj.core.api.Assertions;
1413
import org.junit.jupiter.api.Test;
1514
import org.prebid.server.VertxTest;
@@ -74,7 +73,7 @@ public void makeHttpRequestsShouldEncodePassedBidRequest() {
7473
.build());
7574

7675
assertThat(result.getValue()).usingRecursiveComparison()
77-
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, HeadersMultiMap.class)
76+
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, MultiMap.class)
7877
.isEqualTo(expectedResult.getValue());
7978
assertThat(result.getErrors()).isEmpty();
8079
}

src/test/java/org/prebid/server/bidder/gothamads/GothamAdsBidderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.iab.openrtb.response.SeatBid;
1111
import io.vertx.core.MultiMap;
1212
import io.vertx.core.http.HttpMethod;
13-
import io.vertx.core.http.impl.headers.HeadersMultiMap;
1413
import org.junit.jupiter.api.Test;
1514
import org.prebid.server.VertxTest;
1615
import org.prebid.server.bidder.gotthamads.GothamAdsBidder;
@@ -106,7 +105,7 @@ public void makeHttpRequestsShouldMakeCorrectRequest() {
106105

107106
assertThat(result.getValue())
108107
.usingRecursiveComparison()
109-
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, HeadersMultiMap.class)
108+
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, MultiMap.class)
110109
.isEqualTo(expectedResult.getValue());
111110
assertThat(result.getErrors()).isEmpty();
112111
}

src/test/java/org/prebid/server/bidder/pwbid/PwbidBidderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.iab.openrtb.response.SeatBid;
1313
import io.vertx.core.MultiMap;
1414
import io.vertx.core.http.HttpMethod;
15-
import io.vertx.core.http.impl.headers.HeadersMultiMap;
1615
import org.junit.jupiter.api.Test;
1716
import org.prebid.server.VertxTest;
1817
import org.prebid.server.bidder.model.BidderBid;
@@ -75,7 +74,7 @@ public void makeHttpRequestsShouldReturnExpectedHttpRequest() {
7574

7675
assertThat(result.getValue())
7776
.usingRecursiveComparison()
78-
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, HeadersMultiMap.class)
77+
.withComparatorForType((a, b) -> a.entries().equals(b.entries()) ? 0 : 1, MultiMap.class)
7978
.isEqualTo(expectedResults.getValue());
8079
assertThat(result.getErrors()).isEmpty();
8180
}

0 commit comments

Comments
 (0)