/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
+ * Copyright (C) 2021-2022 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.cps.ncmp.api.impl.config;
+import java.time.Duration;
+import java.util.Arrays;
+import lombok.AccessLevel;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
@Configuration
+@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
public class NcmpConfiguration {
+ private static final Duration CONNECTION_TIMEOUT_MILLISECONDS = Duration.ofMillis(180000);
+ private static final Duration READ_TIMEOUT_MILLISECONDS = Duration.ofMillis(180000);
+
@Getter
@Component
public static class DmiProperties {
- @Value("${dmi.auth.username}")
+ @Value("${ncmp.dmi.auth.username}")
private String authUsername;
- @Value("${dmi.auth.password}")
+ @Value("${ncmp.dmi.auth.password}")
private String authPassword;
+ @Value("${ncmp.dmi.api.base-path}")
+ private String dmiBasePath;
}
+ /**
+ * Rest template bean.
+ *
+ * @param restTemplateBuilder the rest template builder
+ * @return rest template instance
+ */
@Bean
+ @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public static RestTemplate restTemplate(final RestTemplateBuilder restTemplateBuilder) {
- return restTemplateBuilder.build();
+ final RestTemplate restTemplate = restTemplateBuilder.setConnectTimeout(CONNECTION_TIMEOUT_MILLISECONDS)
+ .setReadTimeout(READ_TIMEOUT_MILLISECONDS).build();
+ setRestTemplateMessageConverters(restTemplate);
+ return restTemplate;
+ }
+
+ private static void setRestTemplateMessageConverters(final RestTemplate restTemplate) {
+ final MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter =
+ new MappingJackson2HttpMessageConverter();
+ mappingJackson2HttpMessageConverter.setSupportedMediaTypes(
+ Arrays.asList(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN));
+ restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
}
+
}