Skip to content

Commit c5e6906

Browse files
NextMillennium: Adapter and server version (#3773)
1 parent c61b60b commit c5e6906

File tree

4 files changed

+53
-13
lines changed

4 files changed

+53
-13
lines changed

src/main/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidder.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.prebid.server.proto.openrtb.ext.response.BidType;
3434
import org.prebid.server.util.HttpUtil;
3535
import org.prebid.server.util.ObjectUtil;
36+
import org.prebid.server.version.PrebidVersionProvider;
3637

3738
import java.util.ArrayList;
3839
import java.util.Collection;
@@ -45,16 +46,21 @@ public class NextMillenniumBidder implements Bidder<BidRequest> {
4546
private static final TypeReference<ExtPrebid<?, ExtImpNextMillennium>> NEXTMILLENNIUM_EXT_TYPE_REFERENCE =
4647
new TypeReference<>() {
4748
};
49+
private static final String NM_ADAPTER_VERSION = "v1.0.0";
4850

4951
private final String endpointUrl;
5052
private final JacksonMapper mapper;
5153
private final List<String> nmmFlags;
54+
private final PrebidVersionProvider versionProvider;
5255

53-
public NextMillenniumBidder(String endpointUrl, JacksonMapper mapper, List<String> nmmFlags) {
56+
public NextMillenniumBidder(String endpointUrl,
57+
JacksonMapper mapper,
58+
List<String> nmmFlags,
59+
PrebidVersionProvider versionProvider) {
5460
this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl));
5561
this.mapper = Objects.requireNonNull(mapper);
5662
this.nmmFlags = nmmFlags;
57-
63+
this.versionProvider = Objects.requireNonNull(versionProvider);
5864
}
5965

6066
@Override
@@ -149,10 +155,15 @@ private static String formatSize(Integer w, Integer h) {
149155
private ObjectNode createImpExt(ExtRequestPrebid prebid) {
150156
final ObjectNode impExt = mapper.mapper().createObjectNode();
151157
impExt.set("prebid", mapper.mapper().valueToTree(prebid));
158+
159+
final ObjectNode nextMillenniumNode = impExt.putObject("nextMillennium");
152160
if (CollectionUtils.isNotEmpty(nmmFlags)) {
153-
impExt.putObject("nextMillennium")
154-
.set("nmmFlags", mapper.mapper().valueToTree(nmmFlags));
161+
nextMillenniumNode.set("nmmFlags", mapper.mapper().valueToTree(nmmFlags));
155162
}
163+
164+
nextMillenniumNode.put("nm_version", NM_ADAPTER_VERSION);
165+
nextMillenniumNode.put("server_version", versionProvider.getNameVersionRecord());
166+
156167
return impExt;
157168
}
158169

src/main/java/org/prebid/server/spring/config/bidder/NextMillenniumConfiguration.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
1111
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
1212
import org.prebid.server.spring.env.YamlPropertySourceFactory;
13+
import org.prebid.server.version.PrebidVersionProvider;
1314
import org.springframework.beans.factory.annotation.Value;
1415
import org.springframework.boot.context.properties.ConfigurationProperties;
1516
import org.springframework.context.annotation.Bean;
@@ -34,6 +35,7 @@ NextMillenniumConfigurationProperties configurationProperties() {
3435
@Bean
3536
BidderDeps nextMillenniumBidderDeps(NextMillenniumConfigurationProperties nextMillenniumConfigurationProperties,
3637
@NotBlank @Value("${external-url}") String externalUrl,
38+
PrebidVersionProvider prebidVersionProvider,
3739
JacksonMapper mapper) {
3840

3941
return BidderDepsAssembler.<NextMillenniumConfigurationProperties>forBidder(BIDDER_NAME)
@@ -42,7 +44,8 @@ BidderDeps nextMillenniumBidderDeps(NextMillenniumConfigurationProperties nextMi
4244
.bidderCreator(config -> new NextMillenniumBidder(
4345
config.getEndpoint(),
4446
mapper,
45-
config.getExtraInfo().getNmmFlags())
47+
config.getExtraInfo().getNmmFlags(),
48+
prebidVersionProvider)
4649
).assemble();
4750
}
4851

src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
import com.iab.openrtb.response.Bid;
1313
import com.iab.openrtb.response.BidResponse;
1414
import com.iab.openrtb.response.SeatBid;
15+
import org.junit.jupiter.api.BeforeEach;
1516
import org.junit.jupiter.api.Test;
17+
import org.junit.jupiter.api.extension.ExtendWith;
18+
import org.mockito.Mock;
19+
import org.mockito.junit.jupiter.MockitoExtension;
1620
import org.prebid.server.VertxTest;
1721
import org.prebid.server.bidder.model.BidderBid;
1822
import org.prebid.server.bidder.model.BidderCall;
@@ -27,6 +31,7 @@
2731
import org.prebid.server.proto.openrtb.ext.request.ExtStoredRequest;
2832
import org.prebid.server.proto.openrtb.ext.request.nextmillennium.ExtImpNextMillennium;
2933
import org.prebid.server.proto.openrtb.ext.response.BidType;
34+
import org.prebid.server.version.PrebidVersionProvider;
3035

3136
import java.util.Arrays;
3237
import java.util.List;
@@ -38,18 +43,35 @@
3843
import static java.util.function.UnaryOperator.identity;
3944
import static org.assertj.core.api.Assertions.assertThat;
4045
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
46+
import static org.mockito.Mockito.when;
4147

48+
@ExtendWith(MockitoExtension.class)
4249
public class NextMillenniumBidderTest extends VertxTest {
4350

4451
private static final String ENDPOINT_URL = "https://test-url.com/";
4552

46-
private final NextMillenniumBidder target =
47-
new NextMillenniumBidder(ENDPOINT_URL, jacksonMapper, List.of("valueOne", "valueTwo"));
53+
@Mock
54+
private PrebidVersionProvider prebidVersionProvider;
55+
56+
private NextMillenniumBidder target;
57+
58+
@BeforeEach
59+
public void setUp() {
60+
target = new NextMillenniumBidder(
61+
ENDPOINT_URL,
62+
jacksonMapper,
63+
List.of("valueOne", "valueTwo"),
64+
prebidVersionProvider);
65+
}
4866

4967
@Test
5068
public void creationShouldFailOnInvalidEndpointUrl() {
5169
assertThatIllegalArgumentException().isThrownBy(() ->
52-
new NextMillenniumBidder("invalid_url", jacksonMapper, List.of("valueOne", "valueTwo")));
70+
new NextMillenniumBidder(
71+
"invalid_url",
72+
jacksonMapper,
73+
List.of("valueOne", "valueTwo"),
74+
prebidVersionProvider));
5375
}
5476

5577
@Test
@@ -264,6 +286,7 @@ public void makeHttpRequestsShouldReturnImpExtNextMillenniumWhenNmmFlagsConfigur
264286
givenImpWithExt(identity(), ExtImpNextMillennium.of("placement1", "group1")));
265287

266288
// when
289+
when(prebidVersionProvider.getNameVersionRecord()).thenReturn("v2");
267290
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
268291

269292
// then
@@ -575,8 +598,11 @@ private static ObjectNode createImpExt(List<String> values) {
575598
final ObjectNode objectNode = mapper.createObjectNode();
576599
objectNode.set("prebid", mapper.valueToTree(ExtRequestPrebid.builder()
577600
.storedrequest(ExtStoredRequest.of("ggroup1;;")).build()));
578-
objectNode.putObject("nextMillennium")
579-
.set("nmmFlags", mapper.valueToTree(values));
601+
final ObjectNode nextMillenniumNode = objectNode.putObject("nextMillennium");
602+
nextMillenniumNode.set("nmmFlags", mapper.valueToTree(values));
603+
nextMillenniumNode.put("nm_version", "v1.0.0");
604+
nextMillenniumNode.put("server_version", "v2");
605+
580606
return objectNode;
581607
}
582608
}

src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-nextmillennium-bid-request.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
}
1616
},
1717
"nextMillennium": {
18-
"nmmFlags": [
19-
"1"
20-
]
18+
"nmmFlags": ["1"],
19+
"nm_version" : "v1.0.0",
20+
"server_version" : "${json-unit.any-string}"
2121
}
2222
}
2323
}

0 commit comments

Comments
 (0)