Skip to content

Commit 8b7b3ed

Browse files
committed
Refactor
1 parent abe62d1 commit 8b7b3ed

28 files changed

Lines changed: 283 additions & 266 deletions

File tree

src/main/java/org/prebid/server/analytics/reporter/liveintent/LiveIntentAnalyticsReporter.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.prebid.server.log.LoggerFactory;
2727
import org.prebid.server.proto.openrtb.ext.request.ExtRequest;
2828
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid;
29-
import org.prebid.server.util.UriTemplate;
29+
import org.prebid.server.util.Uri;
3030
import org.prebid.server.vertx.httpclient.HttpClient;
3131

3232
import java.util.Collection;
@@ -42,7 +42,7 @@ public class LiveIntentAnalyticsReporter implements AnalyticsReporter {
4242

4343
private final HttpClient httpClient;
4444
private final LiveIntentAnalyticsProperties properties;
45-
private final UriTemplate analyticsEndpointTemplate;
45+
private final Uri analyticsEndpoint;
4646
private final JacksonMapper jacksonMapper;
4747

4848
public LiveIntentAnalyticsReporter(
@@ -52,7 +52,7 @@ public LiveIntentAnalyticsReporter(
5252

5353
this.httpClient = Objects.requireNonNull(httpClient);
5454
this.properties = Objects.requireNonNull(properties);
55-
this.analyticsEndpointTemplate = UriTemplate.of(properties.getAnalyticsEndpoint());
55+
this.analyticsEndpoint = Uri.of(properties.getAnalyticsEndpoint());
5656
this.jacksonMapper = Objects.requireNonNull(jacksonMapper);
5757
}
5858

@@ -97,9 +97,7 @@ private Future<Void> processAuctionEvent(AuctionContext auctionContext) {
9797

9898
try {
9999
return httpClient.post(
100-
analyticsEndpointTemplate.toBuilder()
101-
.pathParam("path", "/analytic-events/pbsj-bids")
102-
.build(),
100+
analyticsEndpoint.replaceMacro("path", "/analytic-events/pbsj-bids").expand(),
103101
jacksonMapper.encodeToString(pbsjBids),
104102
properties.getTimeoutMs())
105103
.mapEmpty();
@@ -169,11 +167,11 @@ private Optional<PbsjBid> buildPbsjBid(
169167
}
170168

171169
private Future<Void> processNotificationEvent(NotificationEvent notificationEvent) {
172-
final String url = analyticsEndpointTemplate.toBuilder()
173-
.pathParam("path", "/analytic-events/pbsj-winning-bid")
174-
.queryParam("b", notificationEvent.getBidder())
175-
.queryParam("bidId", notificationEvent.getBidId())
176-
.build();
170+
final String url = analyticsEndpoint
171+
.replaceMacro("path", "/analytic-events/pbsj-winning-bid")
172+
.addQueryParam("b", notificationEvent.getBidder())
173+
.addQueryParam("bidId", notificationEvent.getBidId())
174+
.expand();
177175
return httpClient.get(url, properties.getTimeoutMs()).mapEmpty();
178176
}
179177

src/main/java/org/prebid/server/bidder/adgeneration/AdgenerationBidder.java

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.prebid.server.proto.openrtb.ext.response.BidType;
3131
import org.prebid.server.util.HttpUtil;
3232
import org.prebid.server.util.ObjectUtil;
33-
import org.prebid.server.util.UriTemplate;
33+
import org.prebid.server.util.Uri;
3434

3535
import java.util.ArrayList;
3636
import java.util.List;
@@ -50,11 +50,11 @@ public class AdgenerationBidder implements Bidder<Void> {
5050
new TypeReference<>() {
5151
};
5252

53-
private final UriTemplate endpointTemplate;
53+
private final Uri endpoint;
5454
private final JacksonMapper mapper;
5555

5656
public AdgenerationBidder(String endpointUrl, JacksonMapper mapper) {
57-
this.endpointTemplate = UriTemplate.of(endpointUrl);
57+
this.endpoint = Uri.of(endpointUrl);
5858
this.mapper = Objects.requireNonNull(mapper);
5959
}
6060

@@ -95,40 +95,41 @@ private ExtImpAdgeneration parseAndValidateImpExt(Imp imp) {
9595
}
9696

9797
private String getUri(String adSize, String id, String currency, BidRequest bidRequest) {
98-
final UriTemplate.UriBuilder uriBuilder = endpointTemplate.toBuilder()
99-
.queryParam("posall", "SSPLOC")
100-
.queryParam("id", id)
101-
.queryParam("hb", "true")
102-
.queryParam("t", "json3")
103-
.queryParam("currency", currency)
104-
.queryParam("sdkname", "prebidserver")
105-
.queryParam("adapterver", VERSION);
106-
107-
addParameterIfNotEmpty(uriBuilder, "sizes", adSize);
108-
addParameterIfNotEmpty(uriBuilder, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage));
109-
addParameterIfNotEmpty(uriBuilder, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle));
110-
addParameterIfNotEmpty(uriBuilder, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName));
98+
final Uri.ParameterizedUri parameterizedUri = endpoint
99+
.addQueryParam("posall", "SSPLOC")
100+
.addQueryParam("id", id)
101+
.addQueryParam("hb", "true")
102+
.addQueryParam("t", "json3")
103+
.addQueryParam("currency", currency)
104+
.addQueryParam("sdkname", "prebidserver")
105+
.addQueryParam("adapterver", VERSION);
106+
107+
addParameterIfNotEmpty(parameterizedUri, "sizes", adSize);
108+
addParameterIfNotEmpty(parameterizedUri, "tp", ObjectUtil.getIfNotNull(bidRequest.getSite(), Site::getPage));
111109
addParameterIfNotEmpty(
112-
uriBuilder, "transactionid", ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid));
110+
parameterizedUri, "appbundle", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getBundle));
111+
addParameterIfNotEmpty(parameterizedUri, "appname", ObjectUtil.getIfNotNull(bidRequest.getApp(), App::getName));
112+
addParameterIfNotEmpty(
113+
parameterizedUri, "transactionid", ObjectUtil.getIfNotNull(bidRequest.getSource(), Source::getTid));
113114

114115
final Device device = bidRequest.getDevice();
115116
final String deviceOs = device != null ? device.getOs() : null;
116117
if ("android".equals(deviceOs)) {
117-
uriBuilder.queryParam("sdktype", "1");
118-
addParameterIfNotEmpty(uriBuilder, "advertising_id", device.getIfa());
118+
parameterizedUri.addQueryParam("sdktype", "1");
119+
addParameterIfNotEmpty(parameterizedUri, "advertising_id", device.getIfa());
119120
} else if ("ios".equals(deviceOs)) {
120-
uriBuilder.queryParam("sdktype", "2");
121-
addParameterIfNotEmpty(uriBuilder, "idfa", device.getIfa());
121+
parameterizedUri.addQueryParam("sdktype", "2");
122+
addParameterIfNotEmpty(parameterizedUri, "idfa", device.getIfa());
122123
} else {
123-
uriBuilder.queryParam("sdktype", "0");
124+
parameterizedUri.addQueryParam("sdktype", "0");
124125
}
125126

126-
return uriBuilder.build();
127+
return parameterizedUri.expand();
127128
}
128129

129-
private static void addParameterIfNotEmpty(UriTemplate.UriBuilder uriBuilder, String parameter, String value) {
130+
private static void addParameterIfNotEmpty(Uri.ParameterizedUri parameterizedUri, String parameter, String value) {
130131
if (StringUtils.isNotEmpty(value)) {
131-
uriBuilder.queryParam(parameter, value);
132+
parameterizedUri.addQueryParam(parameter, value);
132133
}
133134
}
134135

src/main/java/org/prebid/server/bidder/adkernel/AdkernelBidder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ public class AdkernelBidder implements Bidder<BidRequest> {
4949

5050
private static final int MF_SUFFIX_LENGTH = MF_SUFFIX.length() + 1;
5151

52-
private final String endpointTemplate;
52+
private final String endpoint;
5353
private final JacksonMapper mapper;
5454

55-
public AdkernelBidder(String endpointTemplate, JacksonMapper mapper) {
56-
this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate));
55+
public AdkernelBidder(String endpoint, JacksonMapper mapper) {
56+
this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint));
5757
this.mapper = Objects.requireNonNull(mapper);
5858
}
5959

@@ -183,7 +183,7 @@ private HttpRequest<BidRequest> createHttpRequest(Map.Entry<ExtImpAdkernel, List
183183
App app) {
184184

185185
final ExtImpAdkernel impExt = extAndImp.getKey();
186-
final String uri = endpointTemplate.formatted(impExt.getZoneId());
186+
final String uri = endpoint.formatted(impExt.getZoneId());
187187

188188
final MultiMap headers = HttpUtil.headers()
189189
.add(HttpUtil.X_OPENRTB_VERSION_HEADER, "2.5");

src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
import org.prebid.server.util.BidderUtil;
5858
import org.prebid.server.util.HttpUtil;
5959
import org.prebid.server.util.ObjectUtil;
60-
import org.prebid.server.util.UriTemplate;
60+
import org.prebid.server.util.Uri;
6161

6262
import java.math.BigDecimal;
6363
import java.time.Clock;
@@ -82,8 +82,8 @@ public class AdnuntiusBidder implements Bidder<AdnuntiusRequest> {
8282
private static final int BANNER_MTYPE = 1;
8383
private static final int NATIVE_MTYPE = 4;
8484

85-
private final UriTemplate endpointTemplate;
86-
private final UriTemplate euEndpointTemplate;
85+
private final Uri endpoint;
86+
private final Uri euEndpoint;
8787
private final Clock clock;
8888
private final JacksonMapper mapper;
8989

@@ -92,8 +92,8 @@ public AdnuntiusBidder(String endpointUrl,
9292
Clock clock,
9393
JacksonMapper mapper) {
9494

95-
this.endpointTemplate = UriTemplate.of(endpointUrl);
96-
this.euEndpointTemplate = euEndpoint != null ? UriTemplate.of(euEndpoint) : null;
95+
this.endpoint = Uri.of(endpointUrl);
96+
this.euEndpoint = euEndpoint != null ? Uri.of(euEndpoint) : null;
9797
this.clock = Objects.requireNonNull(clock);
9898
this.mapper = Objects.requireNonNull(mapper);
9999
}
@@ -261,21 +261,21 @@ private List<HttpRequest<AdnuntiusRequest>> createHttpRequests(
261261

262262
private String makeEndpoint(BidRequest bidRequest, Boolean noCookies) {
263263
final String gdpr = extractGdpr(bidRequest.getRegs());
264-
final UriTemplate template = StringUtils.isNotBlank(gdpr) ? euEndpointTemplate : endpointTemplate;
264+
final Uri template = StringUtils.isNotBlank(gdpr) ? euEndpoint : endpoint;
265265

266266
if (template == null) {
267267
throw new PreBidException("an EU endpoint is required but invalid");
268268
}
269269

270270
final String consent = extractConsent(bidRequest.getUser());
271271

272-
return template.toBuilder()
273-
.queryParam("format", "prebidServer")
274-
.queryParam("tzo", getTimeZoneOffset())
275-
.queryParam("gdpr", StringUtils.isNotEmpty(gdpr) ? gdpr : null)
276-
.queryParam("consentString", StringUtils.isNotEmpty(consent) ? consent : null)
277-
.queryParam("noCookies", noCookies || extractNoCookies(bidRequest.getDevice()) ? "true" : null)
278-
.build();
272+
return template
273+
.addQueryParam("format", "prebidServer")
274+
.addQueryParam("tzo", getTimeZoneOffset())
275+
.addQueryParam("gdpr", StringUtils.isNotEmpty(gdpr) ? gdpr : null)
276+
.addQueryParam("consentString", StringUtils.isNotEmpty(consent) ? consent : null)
277+
.addQueryParam("noCookies", noCookies || extractNoCookies(bidRequest.getDevice()) ? "true" : null)
278+
.expand();
279279
}
280280

281281
private String getTimeZoneOffset() {

src/main/java/org/prebid/server/bidder/amx/AmxBidder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebid;
3030
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidMeta;
3131
import org.prebid.server.util.BidderUtil;
32-
import org.prebid.server.util.UriTemplate;
32+
import org.prebid.server.util.Uri;
3333

3434
import java.util.ArrayList;
3535
import java.util.Collection;
@@ -55,7 +55,7 @@ public AmxBidder(String endpointUrl, JacksonMapper mapper) {
5555
}
5656

5757
private static String resolveEndpointUrl(String url) {
58-
return UriTemplate.of(url).toBuilder().queryParam(VERSION_PARAM, ADAPTER_VERSION).build();
58+
return Uri.of(url).addQueryParam(VERSION_PARAM, ADAPTER_VERSION).expand();
5959
}
6060

6161
@Override

src/main/java/org/prebid/server/bidder/appnexus/AppnexusBidder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidVideo;
5252
import org.prebid.server.util.BidderUtil;
5353
import org.prebid.server.util.ObjectUtil;
54-
import org.prebid.server.util.UriTemplate;
54+
import org.prebid.server.util.Uri;
5555

5656
import jakarta.validation.ValidationException;
5757
import java.math.BigDecimal;
@@ -81,7 +81,7 @@ public class AppnexusBidder implements Bidder<BidRequest> {
8181
new TypeReference<>() {
8282
};
8383

84-
private final UriTemplate endpointTemplate;
84+
private final Uri endpoint;
8585
private final Integer headerBiddingSource;
8686
private final Map<Integer, String> iabCategories;
8787
private final JacksonMapper mapper;
@@ -91,7 +91,7 @@ public AppnexusBidder(String endpointUrl,
9191
Map<Integer, String> iabCategories,
9292
JacksonMapper mapper) {
9393

94-
this.endpointTemplate = UriTemplate.of(endpointUrl);
94+
this.endpoint = Uri.of(endpointUrl);
9595
this.headerBiddingSource = ObjectUtils.defaultIfNull(platformId, DEFAULT_PLATFORM_ID);
9696
this.iabCategories = ObjectUtils.defaultIfNull(iabCategories, Collections.emptyMap());
9797
this.mapper = Objects.requireNonNull(mapper);
@@ -305,7 +305,7 @@ private String readKeywordsFromArray(JsonNode keywords) {
305305
}
306306

307307
private String makeUrl(String member) {
308-
return endpointTemplate.toBuilder().queryParam("member_id", member).build();
308+
return endpoint.addQueryParam("member_id", member).expand();
309309
}
310310

311311
private static String extractEndpointName(BidRequest bidRequest) {

src/main/java/org/prebid/server/bidder/bluesea/BlueSeaBidder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.prebid.server.proto.openrtb.ext.request.bluesea.ExtImpBlueSea;
2323
import org.prebid.server.proto.openrtb.ext.response.BidType;
2424
import org.prebid.server.util.BidderUtil;
25-
import org.prebid.server.util.UriTemplate;
25+
import org.prebid.server.util.Uri;
2626

2727
import java.util.ArrayList;
2828
import java.util.Collection;
@@ -37,11 +37,11 @@ public class BlueSeaBidder implements Bidder<BidRequest> {
3737
new TypeReference<>() {
3838
};
3939

40-
private final UriTemplate endpointTemplate;
40+
private final Uri endpoint;
4141
private final JacksonMapper mapper;
4242

4343
public BlueSeaBidder(String endpointUrl, JacksonMapper mapper) {
44-
this.endpointTemplate = UriTemplate.of(endpointUrl);
44+
this.endpoint = Uri.of(endpointUrl);
4545
this.mapper = Objects.requireNonNull(mapper);
4646
}
4747

@@ -76,10 +76,10 @@ private HttpRequest<BidRequest> makeRequest(BidRequest bidRequest, ExtImpBlueSea
7676
}
7777

7878
private String resolveUrl(ExtImpBlueSea extImpBlueSea) {
79-
return endpointTemplate.toBuilder()
80-
.queryParam("pubid", extImpBlueSea.getPubId())
81-
.queryParam("token", extImpBlueSea.getToken())
82-
.build();
79+
return endpoint
80+
.addQueryParam("pubid", extImpBlueSea.getPubId())
81+
.addQueryParam("token", extImpBlueSea.getToken())
82+
.expand();
8383
}
8484

8585
@Override

src/main/java/org/prebid/server/bidder/connatix/ConnatixBidder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import org.prebid.server.proto.openrtb.ext.response.BidType;
3535
import org.prebid.server.util.BidderUtil;
3636
import org.prebid.server.util.HttpUtil;
37-
import org.prebid.server.util.UriTemplate;
37+
import org.prebid.server.util.Uri;
3838

3939
import java.math.BigDecimal;
4040
import java.util.ArrayList;
@@ -53,7 +53,7 @@ public class ConnatixBidder implements Bidder<BidRequest> {
5353
private static final String BIDDER_CURRENCY = "USD";
5454
private static final String FORMATTING = "%s-%s";
5555

56-
private final UriTemplate endpointTemplate;
56+
private final Uri endpoint;
5757
private final JacksonMapper mapper;
5858

5959
private final CurrencyConversionService currencyConversionService;
@@ -62,7 +62,7 @@ public ConnatixBidder(String endpointUrl,
6262
CurrencyConversionService currencyConversionService,
6363
JacksonMapper mapper) {
6464

65-
this.endpointTemplate = UriTemplate.of(endpointUrl);
65+
this.endpoint = Uri.of(endpointUrl);
6666
this.currencyConversionService = Objects.requireNonNull(currencyConversionService);
6767
this.mapper = Objects.requireNonNull(mapper);
6868
}
@@ -107,7 +107,7 @@ private String getOptimalEndpointUrl(BidRequest request) {
107107
final String dataCenterCode = getUserId(request)
108108
.map(ConnatixBidder::getDataCenterCode)
109109
.orElse(null);
110-
return endpointTemplate.toBuilder().queryParam("dc", dataCenterCode).build();
110+
return endpoint.addQueryParam("dc", dataCenterCode).expand();
111111
}
112112

113113
private static Optional<String> getUserId(BidRequest request) {

src/main/java/org/prebid/server/bidder/datablocks/DatablocksBidder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ public class DatablocksBidder implements Bidder<BidRequest> {
3636
new TypeReference<>() {
3737
};
3838

39-
private final String endpointTemplate;
39+
private final String endpoint;
4040
private final JacksonMapper mapper;
4141

42-
public DatablocksBidder(String endpointTemplate, JacksonMapper mapper) {
43-
this.endpointTemplate = HttpUtil.validateUrl(Objects.requireNonNull(endpointTemplate));
42+
public DatablocksBidder(String endpoint, JacksonMapper mapper) {
43+
this.endpoint = HttpUtil.validateUrl(Objects.requireNonNull(endpoint));
4444
this.mapper = Objects.requireNonNull(mapper);
4545
}
4646

@@ -83,7 +83,7 @@ private HttpRequest<BidRequest> makeHttpRequest(Map.Entry<ExtImpDatablocks, List
8383
BidRequest bidRequest) {
8484

8585
final ExtImpDatablocks extImpDatablocks = extToImps.getKey();
86-
final String uri = endpointTemplate
86+
final String uri = endpoint
8787
.replace("{{SourceId}}", extImpDatablocks.getSourceId().toString());
8888

8989
final BidRequest outgoingRequest = bidRequest.toBuilder().imp(extToImps.getValue()).build();

0 commit comments

Comments
 (0)