summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
89945a1)
for DMI
Issue-ID: CPS-2016
Change-Id: Ief5428e6e4afc8309ceed2a8221365e2fab31686
Signed-off-by: waqas.ikram <waqas.ikram@est.tech>
+ httpclient:
+ connectionTimeoutInSeconds: 180
+ maximumConnectionsPerRoute: 50
+ maximumConnectionsTotal: 100
+ idleConnectionEvictionThresholdInSeconds: 5
auth:
username: ${DMI_USERNAME}
password: ${DMI_PASSWORD}
auth:
username: ${DMI_USERNAME}
password: ${DMI_PASSWORD}
-@ConfigurationProperties(prefix = "httpclient5", ignoreUnknownFields = true)
+@ConfigurationProperties(prefix = "ncmp.dmi.httpclient", ignoreUnknownFields = true)
public class HttpClientConfiguration {
/**
public class HttpClientConfiguration {
/**
*/
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
*/
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
- public static RestTemplate restTemplate(final RestTemplateBuilder restTemplateBuilder,
+ public static RestTemplate restTemplate(final RestTemplateBuilder restTemplateBuilder,
final HttpClientConfiguration httpClientConfiguration) {
final HttpClientConfiguration httpClientConfiguration) {
final ConnectionConfig connectionConfig = ConnectionConfig.copy(ConnectionConfig.DEFAULT)
.setConnectTimeout(Timeout.of(httpClientConfiguration.getConnectionTimeoutInSeconds()))
.build();
final ConnectionConfig connectionConfig = ConnectionConfig.copy(ConnectionConfig.DEFAULT)
.setConnectTimeout(Timeout.of(httpClientConfiguration.getConnectionTimeoutInSeconds()))
.build();
final PoolingHttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connectionConfig)
.setMaxConnTotal(httpClientConfiguration.getMaximumConnectionsTotal())
.setMaxConnPerRoute(httpClientConfiguration.getMaximumConnectionsPerRoute())
.build();
final PoolingHttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connectionConfig)
.setMaxConnTotal(httpClientConfiguration.getMaximumConnectionsTotal())
.setMaxConnPerRoute(httpClientConfiguration.getMaximumConnectionsPerRoute())
.build();
final CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.evictExpiredConnections()
.evictIdleConnections(
TimeValue.of(httpClientConfiguration.getIdleConnectionEvictionThresholdInSeconds()))
.build();
final CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.evictExpiredConnections()
.evictIdleConnections(
TimeValue.of(httpClientConfiguration.getIdleConnectionEvictionThresholdInSeconds()))
.build();
final ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
final ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
final RestTemplate restTemplate = restTemplateBuilder
.requestFactory(() -> requestFactory)
.setConnectTimeout(httpClientConfiguration.getConnectionTimeoutInSeconds())
.build();
final RestTemplate restTemplate = restTemplateBuilder
.requestFactory(() -> requestFactory)
.setConnectTimeout(httpClientConfiguration.getConnectionTimeoutInSeconds())
.build();
setRestTemplateMessageConverters(restTemplate);
return restTemplate;
}
setRestTemplateMessageConverters(restTemplate);
return restTemplate;
}
@SpringBootTest
@ContextConfiguration(classes = [HttpClientConfiguration])
@EnableConfigurationProperties(HttpClientConfiguration.class)
@SpringBootTest
@ContextConfiguration(classes = [HttpClientConfiguration])
@EnableConfigurationProperties(HttpClientConfiguration.class)
-@TestPropertySource(properties = ["httpclient5.connectionTimeoutInSeconds=1", "httpclient5.maximumConnectionsTotal=200"])
+@TestPropertySource(properties = ["ncmp.dmi.httpclient.connectionTimeoutInSeconds=1", "ncmp.dmi.httpclient.maximumConnectionsTotal=200"])
class HttpClientConfigurationSpec extends Specification {
@Autowired
class HttpClientConfigurationSpec extends Specification {
@Autowired
def 'Test HttpClientConfiguration properties with custom and default values'() {
expect: 'custom property values'
def 'Test HttpClientConfiguration properties with custom and default values'() {
expect: 'custom property values'
- httpClientConfiguration.getConnectionTimeoutInSeconds() == Duration.ofSeconds(1)
- httpClientConfiguration.getMaximumConnectionsTotal() == 200
+ assert httpClientConfiguration.getConnectionTimeoutInSeconds() == Duration.ofSeconds(1)
+ assert httpClientConfiguration.getMaximumConnectionsTotal() == 200
and: 'default property values'
and: 'default property values'
- httpClientConfiguration.getMaximumConnectionsPerRoute() == 50
- httpClientConfiguration.getIdleConnectionEvictionThresholdInSeconds() == Duration.ofSeconds(5)
+ assert httpClientConfiguration.getMaximumConnectionsPerRoute() == 50
+ assert httpClientConfiguration.getIdleConnectionEvictionThresholdInSeconds() == Duration.ofSeconds(5)