maximumConnectionsPerRoute: 50
maximumConnectionsTotal: 100
idleConnectionEvictionThresholdInSeconds: 5
+ maximumInMemorySizeInMegabytes: 16
auth:
username: ${DMI_USERNAME}
password: ${DMI_PASSWORD}
@Value("${ncmp.dmi.httpclient.connectionTimeoutInSeconds:20000}")
private Integer connectionTimeoutInSeconds;
+ @Value("${ncmp.dmi.httpclient.maximumInMemorySizeInMegabytes:1}")
+ private Integer maximumInMemorySizeInMegabytes;
+
@Getter
@Component
public static class DmiProperties {
.defaultHeaders(header -> header.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE))
.defaultHeaders(header -> header.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE))
.clientConnector(new ReactorClientHttpConnector(httpClient))
+ .codecs(configurer -> configurer
+ .defaultCodecs()
+ .maxInMemorySize(maximumInMemorySizeInMegabytes * 1024 * 1024))
.build();
}
}
@SpringBootTest
@ContextConfiguration(classes = [DmiWebClientConfiguration.DmiProperties])
-@TestPropertySource(properties = ["ncmp.dmi.httpclient.connectionTimeoutInSeconds=1"])
+@TestPropertySource(properties = ["ncmp.dmi.httpclient.connectionTimeoutInSeconds=1", "ncmp.dmi.httpclient.maximumInMemorySizeInMegabytes=1"])
class DmiWebClientConfigurationSpec extends Specification {
@Autowired
def setup() {
objectUnderTest.connectionTimeoutInSeconds = 10
+ objectUnderTest.maximumInMemorySizeInMegabytes = 1
}
def 'DMI Properties.'() {
dmi:
httpclient:
connectionTimeoutInSeconds: 180
+ maximumInMemorySizeInMegabytes: 16
auth:
username: some-user
password: some-password
maximumConnectionsPerRoute: 50
maximumConnectionsTotal: 100
idleConnectionEvictionThresholdInSeconds: 5
+ maximumInMemorySizeInMegabytes: 16
auth:
username: dmi
password: dmi