From 397d6e063a80bcf1c5553843f51b6a7dd6d75fad Mon Sep 17 00:00:00 2001 From: xiaolongzuo <150349407@qq.com> Date: Tue, 30 Oct 2018 16:16:29 +0800 Subject: [PATCH] Extract acm configuration to bootstrap phase. # Conflicts: # spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/refresh/AcmContextRefresher.java --- .../acm/refresh/AcmContextRefresher.java | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/refresh/AcmContextRefresher.java b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/refresh/AcmContextRefresher.java index a6115912e..881bae2d1 100644 --- a/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/refresh/AcmContextRefresher.java +++ b/spring-cloud-alicloud-acm/src/main/java/org/springframework/cloud/alicloud/acm/refresh/AcmContextRefresher.java @@ -91,28 +91,31 @@ public class AcmContextRefresher implements ApplicationListener new ConfigChangeListener() { - @Override - public void receiveConfigInfo(String configInfo) { - String md5 = ""; - if (!StringUtils.isEmpty(configInfo)) { - try { - MessageDigest md = MessageDigest.getInstance("MD5"); - md5 = new BigInteger(1, - md.digest(configInfo.getBytes("UTF-8"))) - .toString(16); - } - catch (NoSuchAlgorithmException - | UnsupportedEncodingException e) { - logger.warn("unable to get md5 for dataId: " + dataId, e); - } + ConfigChangeListener listener = listenerMap.get(dataId); + if (listener == null) { + listener = new ConfigChangeListener() { + @Override + public void receiveConfigInfo(String configInfo) { + String md5 = ""; + if (!StringUtils.isEmpty(configInfo)) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md5 = new BigInteger(1, + md.digest(configInfo.getBytes("UTF-8"))).toString(16); + } + catch (NoSuchAlgorithmException + | UnsupportedEncodingException e) { + logger.warn("unable to get md5 for dataId: " + dataId, e); } - refreshHistory.add(dataId, md5); - contextRefresher.refresh(); } - }); + refreshHistory.add(dataId, md5); + contextRefresher.refresh(); + } + + }; + listenerMap.put(dataId, listener); + } + ConfigService.addListener(dataId, acmIntegrationProperties.getAcmProperties().getGroup(), listener); }