<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-starter-config</artifactId>
+ <version>${spring-cloud-starter-config.version}</version>
+ </dependency>
</dependencies>
<build>
package org.onap.aaf.certservice.certification.configuration;
import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.cloud.context.scope.refresh.RefreshScopeRefreshedEvent;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.io.File;
import java.util.Collections;
import java.util.List;
+import org.springframework.context.event.EventListener;
+@RefreshScope
@Configuration
public class CmpServersConfig {
+
private static final String CMP_SERVERS_CONFIG_FILENAME = "cmpServers.json";
- @Autowired
- private CmpServersConfigLoader cmpServersConfigLoader;
+ private static final Logger LOGGER = LoggerFactory.getLogger(CmpServersConfig.class);
+ private static final String REFRESHING_CONFIGURATION = "Refreshing configuration";
+
@Value("${app.config.path}")
private String configPath;
+
+ private CmpServersConfigLoader cmpServersConfigLoader;
private List<Cmpv2Server> cmpServers;
+ @Autowired
+ public CmpServersConfig(CmpServersConfigLoader cmpServersConfigLoader) {
+ this.cmpServersConfigLoader = cmpServersConfigLoader;
+ }
+
@PostConstruct
void loadConfiguration() {
String configFilePath = configPath + File.separator + CMP_SERVERS_CONFIG_FILENAME;
this.cmpServers = Collections.unmodifiableList(cmpServersConfigLoader.load(configFilePath));
}
+ @EventListener
+ public void onRefreshScope(final RefreshScopeRefreshedEvent event) {
+ LOGGER.info(REFRESHING_CONFIGURATION);
+ loadConfiguration();
+ }
+
public List<Cmpv2Server> getCmpServers() {
return cmpServers;
}
# Actuator configuration
-management.endpoints.enabled-by-default=false
-management.endpoint.health.enabled=true
springdoc.show-actuator=true
+management.endpoints.enabled-by-default=true
+management.endpoint.configprops.enabled=true
+management.endpoints.web.exposure.include=refresh,health
+
+
# Swagger configuration
springdoc.swagger-ui.path=/docs
<maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
<spring-boot-starter-actuator.version>2.2.4.RELEASE</spring-boot-starter-actuator.version>
<spring-boot-starter-log4j2.version>2.1.5.RELEASE</spring-boot-starter-log4j2.version>
+ <spring-cloud-starter-config.version>2.2.1.RELEASE</spring-cloud-starter-config.version>
<springdoc-openapi-ui.version>1.2.30</springdoc-openapi-ui.version>
<bouncycastle.version>1.60</bouncycastle.version>
<docker-maven-plugin.version>0.33.0</docker-maven-plugin.version>