From 7244c908edd4aa392e65d820c90845323918b47b Mon Sep 17 00:00:00 2001 From: Tomasz Golabek Date: Fri, 21 Feb 2020 15:49:34 +0100 Subject: Added actuator for refreshing configuration Cloud-config dependency is provided Event listener introduced to handle refresh call Refresh endpoint exposed Fixed docker-compose to start locally and use build images Update repositories for docker image and install vim on it Issue-ID: AAF-997 Signed-off-by: Tomasz Golabek Change-Id: Iee005518c901dad7730c5f48c410ec89850f1425 --- .../configuration/CmpServersConfig.java | 25 ++++++++++++++++++++-- .../src/main/resources/application.properties | 7 ++++-- 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'certService/src') diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java index 414f38bb..20e8934e 100644 --- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java +++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java @@ -21,31 +21,52 @@ 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 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 getCmpServers() { return cmpServers; } diff --git a/certService/src/main/resources/application.properties b/certService/src/main/resources/application.properties index eab43c08..ac81c3a0 100644 --- a/certService/src/main/resources/application.properties +++ b/certService/src/main/resources/application.properties @@ -1,8 +1,11 @@ # 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 -- cgit 1.2.3-korg