From 5a76da9a0d49f051c3f4466a23a21eb0a38c4014 Mon Sep 17 00:00:00 2001 From: jason <2353220944@qq.com> Date: Sat, 21 Dec 2024 13:43:12 +0800 Subject: [PATCH] code format --- .../controller/ConfigController.java | 45 ++-- .../service/config/AbstractConfigService.java | 37 ++-- .../config/ConfigServiceWithCache.java | 26 ++- .../config/ConfigServiceWithChangeCache.java | 98 ++++---- .../config/IncrementalSyncConfigService.java | 24 +- .../controller/ConfigControllerTest.java | 209 +++++++++++------- .../ConfigServiceWithChangeCacheTest.java | 56 +++-- 7 files changed, 287 insertions(+), 208 deletions(-) diff --git a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/ConfigController.java b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/ConfigController.java index d59e8e633bc..8b9c8e9ac15 100755 --- a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/ConfigController.java +++ b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/ConfigController.java @@ -70,7 +70,7 @@ public class ConfigController { private static final Type configurationTypeReference = new TypeToken>() { - }.getType(); + }.getType(); public ConfigController( final ConfigService configService, @@ -84,18 +84,18 @@ public ConfigController( this.namespaceUtil = namespaceUtil; this.instanceConfigAuditUtil = instanceConfigAuditUtil; this.gson = gson; - this.bizConfig=bizConfig; + this.bizConfig = bizConfig; } @GetMapping(value = "/{appId}/{clusterName}/{namespace:.+}") public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String clusterName, - @PathVariable String namespace, - @RequestParam(value = "dataCenter", required = false) String dataCenter, - @RequestParam(value = "releaseKey", defaultValue = "-1") String clientSideReleaseKey, - @RequestParam(value = "ip", required = false) String clientIp, - @RequestParam(value = "label", required = false) String clientLabel, - @RequestParam(value = "messages", required = false) String messagesAsString, - HttpServletRequest request, HttpServletResponse response) throws IOException { + @PathVariable String namespace, + @RequestParam(value = "dataCenter", required = false) String dataCenter, + @RequestParam(value = "releaseKey", defaultValue = "-1") String clientSideReleaseKey, + @RequestParam(value = "ip", required = false) String clientIp, + @RequestParam(value = "label", required = false) String clientLabel, + @RequestParam(value = "messages", required = false) String messagesAsString, + HttpServletRequest request, HttpServletResponse response) throws IOException { String originalNamespace = namespace; //strip out .properties suffix namespace = namespaceUtil.filterNamespaceName(namespace); @@ -112,7 +112,8 @@ public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String String appClusterNameLoaded = clusterName; if (!ConfigConsts.NO_APPID_PLACEHOLDER.equalsIgnoreCase(appId)) { - Release currentAppRelease = configService.loadConfig(appId, clientIp, clientLabel, appId, clusterName, namespace, + Release currentAppRelease = configService.loadConfig(appId, clientIp, clientLabel, appId, + clusterName, namespace, dataCenter, clientMessages); if (currentAppRelease != null) { @@ -124,7 +125,8 @@ public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String //if namespace does not belong to this appId, should check if there is a public configuration if (!namespaceBelongsToAppId(appId, namespace)) { - Release publicRelease = this.findPublicConfig(appId, clientIp, clientLabel, clusterName, namespace, + Release publicRelease = this.findPublicConfig(appId, clientIp, clientLabel, clusterName, + namespace, dataCenter, clientMessages); if (Objects.nonNull(publicRelease)) { releases.add(publicRelease); @@ -144,7 +146,7 @@ public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String auditReleases(appId, clusterName, dataCenter, clientIp, releases); String latestMergedReleaseKey = releases.stream().map(Release::getReleaseKey) - .collect(Collectors.joining(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR)); + .collect(Collectors.joining(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR)); if (latestMergedReleaseKey.equals(clientSideReleaseKey)) { // Client side configuration is the same with server side, return 304 @@ -157,9 +159,9 @@ public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String ApolloConfig apolloConfig = new ApolloConfig(appId, appClusterNameLoaded, originalNamespace, latestMergedReleaseKey); - Map latestConfigurations=mergeReleaseConfigurations(releases); + Map latestConfigurations = mergeReleaseConfigurations(releases); - if(bizConfig.isConfigServiceChangeCacheEnabled()){ + if (bizConfig.isConfigServiceChangeCacheEnabled()) { LinkedHashSet clientSideReleaseKeys = Sets.newLinkedHashSet( Arrays.stream(clientSideReleaseKey.split("\\+")).collect(Collectors.toList())); @@ -171,7 +173,7 @@ public ApolloConfig queryConfig(@PathVariable String appId, @PathVariable String List historyReleasesWithOrder = new ArrayList<>(); for (String item : clientSideReleaseKeys) { Release release = historyReleases.get(item); - if(release!=null){ + if (release != null) { historyReleasesWithOrder.add(release); } } @@ -218,8 +220,9 @@ private boolean namespaceBelongsToAppId(String appId, String namespaceName) { * @param namespace the namespace * @param dataCenter the datacenter */ - private Release findPublicConfig(String clientAppId, String clientIp, String clientLabel, String clusterName, - String namespace, String dataCenter, ApolloNotificationMessages clientMessages) { + private Release findPublicConfig(String clientAppId, String clientIp, String clientLabel, + String clusterName, + String namespace, String dataCenter, ApolloNotificationMessages clientMessages) { AppNamespace appNamespace = appNamespaceService.findPublicNamespaceByName(namespace); //check whether the namespace's appId equals to current one @@ -229,13 +232,13 @@ private Release findPublicConfig(String clientAppId, String clientIp, String cli String publicConfigAppId = appNamespace.getAppId(); - return configService.loadConfig(clientAppId, clientIp, clientLabel, publicConfigAppId, clusterName, namespace, dataCenter, + return configService.loadConfig(clientAppId, clientIp, clientLabel, publicConfigAppId, + clusterName, namespace, dataCenter, clientMessages); } /** - * Merge configurations of releases. - * Release in lower index override those in higher index + * Merge configurations of releases. Release in lower index override those in higher index */ Map mergeReleaseConfigurations(List releases) { Map result = Maps.newLinkedHashMap(); @@ -254,7 +257,7 @@ private String assembleKey(String appId, String cluster, String namespace, Strin } private void auditReleases(String appId, String cluster, String dataCenter, String clientIp, - List releases) { + List releases) { if (Strings.isNullOrEmpty(clientIp)) { //no need to audit instance config when there is no ip return; diff --git a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/AbstractConfigService.java b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/AbstractConfigService.java index 9d239ac60bc..1bdab345fa7 100644 --- a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/AbstractConfigService.java +++ b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/AbstractConfigService.java @@ -45,11 +45,13 @@ protected AbstractConfigService(final GrayReleaseRulesHolder grayReleaseRulesHol } @Override - public Release loadConfig(String clientAppId, String clientIp, String clientLabel, String configAppId, String configClusterName, + public Release loadConfig(String clientAppId, String clientIp, String clientLabel, + String configAppId, String configClusterName, String configNamespace, String dataCenter, ApolloNotificationMessages clientMessages) { // load from specified cluster first if (!Objects.equals(ConfigConsts.CLUSTER_NAME_DEFAULT, configClusterName)) { - Release clusterRelease = findRelease(clientAppId, clientIp, clientLabel, configAppId, configClusterName, configNamespace, + Release clusterRelease = findRelease(clientAppId, clientIp, clientLabel, configAppId, + configClusterName, configNamespace, clientMessages); if (Objects.nonNull(clusterRelease)) { @@ -59,7 +61,8 @@ public Release loadConfig(String clientAppId, String clientIp, String clientLabe // try to load via data center if (!Strings.isNullOrEmpty(dataCenter) && !Objects.equals(dataCenter, configClusterName)) { - Release dataCenterRelease = findRelease(clientAppId, clientIp, clientLabel, configAppId, dataCenter, configNamespace, + Release dataCenterRelease = findRelease(clientAppId, clientIp, clientLabel, configAppId, + dataCenter, configNamespace, clientMessages); if (Objects.nonNull(dataCenterRelease)) { return dataCenterRelease; @@ -67,25 +70,28 @@ public Release loadConfig(String clientAppId, String clientIp, String clientLabe } // fallback to default release - return findRelease(clientAppId, clientIp, clientLabel, configAppId, ConfigConsts.CLUSTER_NAME_DEFAULT, configNamespace, + return findRelease(clientAppId, clientIp, clientLabel, configAppId, + ConfigConsts.CLUSTER_NAME_DEFAULT, configNamespace, clientMessages); } /** * Find release * - * @param clientAppId the client's app id - * @param clientIp the client ip - * @param clientLabel the client label - * @param configAppId the requested config's app id + * @param clientAppId the client's app id + * @param clientIp the client ip + * @param clientLabel the client label + * @param configAppId the requested config's app id * @param configClusterName the requested config's cluster name - * @param configNamespace the requested config's namespace name - * @param clientMessages the messages received in client side + * @param configNamespace the requested config's namespace name + * @param clientMessages the messages received in client side * @return the release */ - private Release findRelease(String clientAppId, String clientIp, String clientLabel, String configAppId, String configClusterName, + private Release findRelease(String clientAppId, String clientIp, String clientLabel, + String configAppId, String configClusterName, String configNamespace, ApolloNotificationMessages clientMessages) { - Long grayReleaseId = grayReleaseRulesHolder.findReleaseIdFromGrayReleaseRule(clientAppId, clientIp, clientLabel, configAppId, + Long grayReleaseId = grayReleaseRulesHolder.findReleaseIdFromGrayReleaseRule(clientAppId, + clientIp, clientLabel, configAppId, configClusterName, configNamespace); Release release = null; @@ -95,7 +101,8 @@ private Release findRelease(String clientAppId, String clientIp, String clientLa } if (release == null) { - release = findLatestActiveRelease(configAppId, configClusterName, configNamespace, clientMessages); + release = findLatestActiveRelease(configAppId, configClusterName, configNamespace, + clientMessages); } return release; @@ -126,7 +133,7 @@ public List calcConfigurationChanges( } for (String removedKey : removedKeys) { - changes.add(new ConfigurationChange(removedKey, null,"DELETED")); + changes.add(new ConfigurationChange(removedKey, null, "DELETED")); } for (String commonKey : commonKeys) { @@ -143,7 +150,7 @@ public List calcConfigurationChanges( } @Override - public Map findReleasesByReleaseKeys(Set releaseKeys){ + public Map findReleasesByReleaseKeys(Set releaseKeys) { return null; } diff --git a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithCache.java b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithCache.java index 3744027f4c5..ff4c3fb43c8 100644 --- a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithCache.java +++ b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithCache.java @@ -54,6 +54,7 @@ * @author Jason Song(song_s@ctrip.com) */ public class ConfigServiceWithCache extends AbstractConfigService { + private static final Logger logger = LoggerFactory.getLogger(ConfigServiceWithCache.class); private static final long DEFAULT_EXPIRED_AFTER_ACCESS_IN_MINUTES = 60;//1 hour private static final String TRACER_EVENT_CACHE_INVALIDATE = "ConfigCache.Invalidate"; @@ -100,7 +101,7 @@ protected Release findActiveOne(long id, ApolloNotificationMessages clientMessag @Override protected Release findLatestActiveRelease(String appId, String clusterName, String namespaceName, - ApolloNotificationMessages clientMessages) { + ApolloNotificationMessages clientMessages) { String messageKey = ReleaseMessageKeyGenerator.generate(appId, clusterName, namespaceName); String cacheKey = messageKey; @@ -131,7 +132,8 @@ private void invalidate(String key) { @Override public void handleMessage(ReleaseMessage message, String channel) { logger.info("message received - channel: {}, message: {}", channel, message); - if (!Topics.APOLLO_RELEASE_TOPIC.equals(channel) || Strings.isNullOrEmpty(message.getMessage())) { + if (!Topics.APOLLO_RELEASE_TOPIC.equals(channel) || Strings.isNullOrEmpty( + message.getMessage())) { return; } @@ -168,15 +170,19 @@ public ConfigCacheEntry load(String key) throws Exception { Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CACHE_LOAD, key); try { - ReleaseMessage latestReleaseMessage = releaseMessageService.findLatestReleaseMessageForMessages(Lists - .newArrayList(key)); - Release latestRelease = releaseService.findLatestActiveRelease(namespaceInfo.get(0), namespaceInfo.get(1), - namespaceInfo.get(2)); + ReleaseMessage latestReleaseMessage = releaseMessageService.findLatestReleaseMessageForMessages( + Lists + .newArrayList(key)); + Release latestRelease = releaseService.findLatestActiveRelease(namespaceInfo.get(0), + namespaceInfo.get(1), + namespaceInfo.get(2)); transaction.setStatus(Transaction.SUCCESS); - long notificationId = latestReleaseMessage == null ? ConfigConsts.NOTIFICATION_ID_PLACEHOLDER : latestReleaseMessage - .getId(); + long notificationId = + latestReleaseMessage == null ? ConfigConsts.NOTIFICATION_ID_PLACEHOLDER + : latestReleaseMessage + .getId(); if (notificationId == ConfigConsts.NOTIFICATION_ID_PLACEHOLDER && latestRelease == null) { return nullConfigCacheEntry; @@ -207,7 +213,8 @@ private void buildConfigIdCache() { configIdCache = configIdCacheBuilder.build(new CacheLoader>() { @Override public Optional load(Long key) throws Exception { - Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CACHE_LOAD_ID, String.valueOf(key)); + Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CACHE_LOAD_ID, + String.valueOf(key)); try { Release release = releaseService.findActiveOne(key); @@ -230,6 +237,7 @@ public Optional load(Long key) throws Exception { } private static class ConfigCacheEntry { + private final long notificationId; private final Release release; diff --git a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCache.java b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCache.java index aec6ec1d510..bb3cbc77cad 100644 --- a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCache.java +++ b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCache.java @@ -51,56 +51,56 @@ */ public class ConfigServiceWithChangeCache extends ConfigServiceWithCache { - private static final Logger logger = LoggerFactory.getLogger(ConfigServiceWithChangeCache.class); + private static final Logger logger = LoggerFactory.getLogger(ConfigServiceWithChangeCache.class); - private static final long DEFAULT_EXPIRED_AFTER_ACCESS_IN_SENCONDS = 10; + private static final long DEFAULT_EXPIRED_AFTER_ACCESS_IN_SENCONDS = 10; - private static final String TRACER_EVENT_CHANGE_CACHE_LOAD_KEY = "ConfigChangeCache.LoadFromDBbyKey"; + private static final String TRACER_EVENT_CHANGE_CACHE_LOAD_KEY = "ConfigChangeCache.LoadFromDBbyKey"; - private static final String TRACER_EVENT_CHANGE_CACHE_LOAD = "ConfigChangeCache.LoadFromDB"; + private static final String TRACER_EVENT_CHANGE_CACHE_LOAD = "ConfigChangeCache.LoadFromDB"; - public LoadingCache> releasesCache; + public LoadingCache> releasesCache; public ConfigServiceWithChangeCache(final ReleaseService releaseService, - final ReleaseMessageService releaseMessageService, - final GrayReleaseRulesHolder grayReleaseRulesHolder, - final BizConfig bizConfig, - final MeterRegistry meterRegistry) { - - super(releaseService, releaseMessageService, grayReleaseRulesHolder, bizConfig, meterRegistry); + final ReleaseMessageService releaseMessageService, + final GrayReleaseRulesHolder grayReleaseRulesHolder, + final BizConfig bizConfig, + final MeterRegistry meterRegistry) { + + super(releaseService, releaseMessageService, grayReleaseRulesHolder, bizConfig, meterRegistry); } @PostConstruct public void initialize() { - super.initialize(); - buildReleaseCache(); + super.initialize(); + buildReleaseCache(); } - private void buildReleaseCache() { + private void buildReleaseCache() { - CacheBuilder releasesCacheBuilder = CacheBuilder.newBuilder() - .expireAfterAccess(DEFAULT_EXPIRED_AFTER_ACCESS_IN_SENCONDS, TimeUnit.SECONDS); + CacheBuilder releasesCacheBuilder = CacheBuilder.newBuilder() + .expireAfterAccess(DEFAULT_EXPIRED_AFTER_ACCESS_IN_SENCONDS, TimeUnit.SECONDS); - releasesCache = releasesCacheBuilder.build(new CacheLoader>() { + releasesCache = releasesCacheBuilder.build(new CacheLoader>() { @Override public Optional load(String key) { - Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CHANGE_CACHE_LOAD_KEY, key); - try { - Release release = releaseService.findByReleaseKey(key); + Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CHANGE_CACHE_LOAD_KEY, key); + try { + Release release = releaseService.findByReleaseKey(key); - transaction.setStatus(Transaction.SUCCESS); + transaction.setStatus(Transaction.SUCCESS); - return Optional.ofNullable(release); - } catch (Throwable ex) { - transaction.setStatus(ex); - throw ex; - } finally { - transaction.complete(); - } + return Optional.ofNullable(release); + } catch (Throwable ex) { + transaction.setStatus(ex); + throw ex; + } finally { + transaction.complete(); + } } }); @@ -109,28 +109,28 @@ public Optional load(String key) { @Override public void handleMessage(ReleaseMessage message, String channel) { logger.info("message received - channel: {}, message: {}", channel, message); - if (!Topics.APOLLO_RELEASE_TOPIC.equals(channel) || Strings.isNullOrEmpty( - message.getMessage())) { + if (!Topics.APOLLO_RELEASE_TOPIC.equals(channel) || Strings.isNullOrEmpty( + message.getMessage())) { return; } - String messageKey = message.getMessage(); - if (bizConfig.isConfigServiceCacheKeyIgnoreCase()) { - messageKey = messageKey.toLowerCase(); - } - Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CHANGE_CACHE_LOAD, messageKey); + String messageKey = message.getMessage(); + if (bizConfig.isConfigServiceCacheKeyIgnoreCase()) { + messageKey = messageKey.toLowerCase(); + } + Transaction transaction = Tracer.newTransaction(TRACER_EVENT_CHANGE_CACHE_LOAD, messageKey); try { List namespaceInfo = ReleaseMessageKeyGenerator.messageToList(messageKey); - Release latestRelease = releaseService.findLatestActiveRelease(namespaceInfo.get(0), - namespaceInfo.get(1), namespaceInfo.get(2)); + Release latestRelease = releaseService.findLatestActiveRelease(namespaceInfo.get(0), + namespaceInfo.get(1), namespaceInfo.get(2)); - releasesCache.put(latestRelease.getReleaseKey(), Optional.ofNullable(latestRelease)); + releasesCache.put(latestRelease.getReleaseKey(), Optional.ofNullable(latestRelease)); - transaction.setStatus(Transaction.SUCCESS); + transaction.setStatus(Transaction.SUCCESS); } catch (Throwable ex) { - transaction.setStatus(ex); + transaction.setStatus(ex); //ignore } finally { - transaction.complete(); + transaction.complete(); } } @@ -138,17 +138,17 @@ public void handleMessage(ReleaseMessage message, String channel) { public Map findReleasesByReleaseKeys(Set releaseKeys) { try { - ImmutableMap> releases = releasesCache.getAll(releaseKeys); + ImmutableMap> releases = releasesCache.getAll(releaseKeys); - Map filterReleases = releases.entrySet().stream() - .filter(entry -> entry.getValue().isPresent()) - .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().get())); - //find all keys - if (releaseKeys.size() == filterReleases.size()) { - return filterReleases; + Map filterReleases = releases.entrySet().stream() + .filter(entry -> entry.getValue().isPresent()) + .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().get())); + //find all keys + if (releaseKeys.size() == filterReleases.size()) { + return filterReleases; } } catch (ExecutionException e) { - //ignore + //ignore } return null; } diff --git a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/IncrementalSyncConfigService.java b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/IncrementalSyncConfigService.java index 2ca37c0d614..f201ea8850a 100644 --- a/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/IncrementalSyncConfigService.java +++ b/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/service/config/IncrementalSyncConfigService.java @@ -27,18 +27,18 @@ */ public interface IncrementalSyncConfigService { - /** - * @param latestReleaseConfigurations - * @param historyConfigurations - * @return the ConfigurationChanges - */ - List calcConfigurationChanges( - Map latestReleaseConfigurations, Map historyConfigurations); + /** + * @param latestReleaseConfigurations + * @param historyConfigurations + * @return the ConfigurationChanges + */ + List calcConfigurationChanges( + Map latestReleaseConfigurations, Map historyConfigurations); - /** - * @param releaseKeys - * @return the ReleaseMap - */ - Map findReleasesByReleaseKeys(Set releaseKeys); + /** + * @param releaseKeys + * @return the ReleaseMap + */ + Map findReleasesByReleaseKeys(Set releaseKeys); } diff --git a/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/controller/ConfigControllerTest.java b/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/controller/ConfigControllerTest.java index 6d787337d25..1173241b32e 100644 --- a/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/controller/ConfigControllerTest.java +++ b/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/controller/ConfigControllerTest.java @@ -58,13 +58,14 @@ */ @RunWith(MockitoJUnitRunner.class) public class ConfigControllerTest { + private ConfigController configController; @Mock private ConfigService configService; @Mock private AppNamespaceServiceWithCache appNamespaceService; @Mock - private BizConfig bizConfig; + private BizConfig bizConfig; private String someAppId; private String someClusterName; private String defaultClusterName; @@ -97,7 +98,7 @@ public class ConfigControllerTest { @Before public void setUp() throws Exception { configController = spy(new ConfigController( - configService, appNamespaceService, namespaceUtil, instanceConfigAuditUtil, gson, bizConfig + configService, appNamespaceService, namespaceUtil, instanceConfigAuditUtil, gson, bizConfig )); someAppId = "1"; @@ -116,12 +117,16 @@ public void setUp() throws Exception { when(someRelease.getConfigurations()).thenReturn(someValidConfiguration); when(somePublicRelease.getConfigurations()).thenReturn(somePublicConfiguration); when(namespaceUtil.filterNamespaceName(defaultNamespaceName)).thenReturn(defaultNamespaceName); - when(namespaceUtil.filterNamespaceName(somePublicNamespaceName)).thenReturn(somePublicNamespaceName); - when(namespaceUtil.normalizeNamespace(someAppId, defaultNamespaceName)).thenReturn(defaultNamespaceName); - when(namespaceUtil.normalizeNamespace(someAppId, somePublicNamespaceName)).thenReturn(somePublicNamespaceName); + when(namespaceUtil.filterNamespaceName(somePublicNamespaceName)).thenReturn( + somePublicNamespaceName); + when(namespaceUtil.normalizeNamespace(someAppId, defaultNamespaceName)).thenReturn( + defaultNamespaceName); + when(namespaceUtil.normalizeNamespace(someAppId, somePublicNamespaceName)).thenReturn( + somePublicNamespaceName); someMessagesAsString = "someValidJson"; - when(configController.transformMessages(someMessagesAsString)).thenReturn(someNotificationMessages); + when(configController.transformMessages(someMessagesAsString)).thenReturn( + someNotificationMessages); } @Test @@ -130,7 +135,8 @@ public void testQueryConfig() throws Exception { String someServerSideNewReleaseKey = "2"; HttpServletResponse someResponse = mock(HttpServletResponse.class); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(someRelease.getReleaseKey()).thenReturn(someServerSideNewReleaseKey); when(someRelease.getNamespaceName()).thenReturn(defaultNamespaceName); @@ -139,14 +145,16 @@ public void testQueryConfig() throws Exception { defaultNamespaceName, someDataCenter, someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); - verify(configService, times(1)).loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, + verify(configService, times(1)).loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages); assertEquals(someAppId, result.getAppId()); assertEquals(someClusterName, result.getCluster()); assertEquals(defaultNamespaceName, result.getNamespaceName()); assertEquals(someServerSideNewReleaseKey, result.getReleaseKey()); verify(instanceConfigAuditUtil, times(1)).audit(someAppId, someClusterName, someDataCenter, - someClientIp, someAppId, someClusterName, defaultNamespaceName, someServerSideNewReleaseKey); + someClientIp, someAppId, someClusterName, defaultNamespaceName, + someServerSideNewReleaseKey); } @Test @@ -156,17 +164,20 @@ public void testQueryConfigFile() throws Exception { HttpServletResponse someResponse = mock(HttpServletResponse.class); String someNamespaceName = String.format("%s.%s", defaultClusterName, "properties"); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(someRelease.getReleaseKey()).thenReturn(someServerSideNewReleaseKey); when(namespaceUtil.filterNamespaceName(someNamespaceName)).thenReturn(defaultNamespaceName); - when(namespaceUtil.normalizeNamespace(someAppId, defaultNamespaceName)).thenReturn(defaultNamespaceName); + when(namespaceUtil.normalizeNamespace(someAppId, defaultNamespaceName)).thenReturn( + defaultNamespaceName); ApolloConfig result = configController.queryConfig(someAppId, someClusterName, someNamespaceName, someDataCenter, someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); - verify(configService, times(1)).loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, + verify(configService, times(1)).loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages); assertEquals(someAppId, result.getAppId()); assertEquals(someClusterName, result.getCluster()); @@ -183,11 +194,14 @@ public void testQueryConfigFileWithPrivateNamespace() throws Exception { String somePrivateNamespaceName = String.format("%s.%s", somePrivateNamespace, "xml"); AppNamespace appNamespace = mock(AppNamespace.class); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, somePrivateNamespace, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, somePrivateNamespace, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(someRelease.getReleaseKey()).thenReturn(someServerSideNewReleaseKey); - when(namespaceUtil.filterNamespaceName(somePrivateNamespaceName)).thenReturn(somePrivateNamespace); - when(namespaceUtil.normalizeNamespace(someAppId, somePrivateNamespace)).thenReturn(somePrivateNamespace); + when(namespaceUtil.filterNamespaceName(somePrivateNamespaceName)).thenReturn( + somePrivateNamespace); + when(namespaceUtil.normalizeNamespace(someAppId, somePrivateNamespace)).thenReturn( + somePrivateNamespace); when(appNamespaceService.findByAppIdAndNamespace(someAppId, somePrivateNamespace)) .thenReturn(appNamespace); @@ -206,7 +220,8 @@ public void testQueryConfigWithReleaseNotFound() throws Exception { String someClientSideReleaseKey = "1"; HttpServletResponse someResponse = mock(HttpServletResponse.class); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(null); ApolloConfig result = configController.queryConfig(someAppId, someClusterName, @@ -223,13 +238,16 @@ public void testQueryConfigWithApolloConfigNotModified() throws Exception { String someServerSideReleaseKey = someClientSideReleaseKey; HttpServletResponse someResponse = mock(HttpServletResponse.class); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(someRelease.getReleaseKey()).thenReturn(someServerSideReleaseKey); ApolloConfig result = - configController.queryConfig(someAppId, someClusterName, defaultNamespaceName, someDataCenter, - someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + configController.queryConfig(someAppId, someClusterName, defaultNamespaceName, + someDataCenter, + someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, + someRequest, someResponse); assertNull(result); verify(someResponse, times(1)).setStatus(HttpServletResponse.SC_NOT_MODIFIED); @@ -244,18 +262,22 @@ public void testQueryConfigWithAppOwnNamespace() throws Exception { AppNamespace someAppOwnNamespace = assemblePublicAppNamespace(someAppId, someAppOwnNamespaceName); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, someAppOwnNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, someAppOwnNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(appNamespaceService.findPublicNamespaceByName(someAppOwnNamespaceName)) .thenReturn(someAppOwnNamespace); when(someRelease.getReleaseKey()).thenReturn(someServerSideReleaseKey); - when(namespaceUtil.filterNamespaceName(someAppOwnNamespaceName)).thenReturn(someAppOwnNamespaceName); - when(namespaceUtil.normalizeNamespace(someAppId, someAppOwnNamespaceName)).thenReturn(someAppOwnNamespaceName); + when(namespaceUtil.filterNamespaceName(someAppOwnNamespaceName)).thenReturn( + someAppOwnNamespaceName); + when(namespaceUtil.normalizeNamespace(someAppId, someAppOwnNamespaceName)).thenReturn( + someAppOwnNamespaceName); ApolloConfig result = configController .queryConfig(someAppId, someClusterName, someAppOwnNamespaceName, someDataCenter, - someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, + someRequest, someResponse); assertEquals(someServerSideReleaseKey, result.getReleaseKey()); assertEquals(someAppId, result.getAppId()); @@ -274,11 +296,13 @@ public void testQueryConfigWithPubicNamespaceAndNoAppOverride() throws Exception AppNamespace somePublicAppNamespace = assemblePublicAppNamespace(somePublicAppId, somePublicNamespaceName); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(null); when(appNamespaceService.findPublicNamespaceByName(somePublicNamespaceName)) .thenReturn(somePublicAppNamespace); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(somePublicRelease); when(somePublicRelease.getReleaseKey()).thenReturn(someServerSideReleaseKey); when(somePublicRelease.getAppId()).thenReturn(somePublicAppId); @@ -287,7 +311,8 @@ public void testQueryConfigWithPubicNamespaceAndNoAppOverride() throws Exception ApolloConfig result = configController .queryConfig(someAppId, someClusterName, somePublicNamespaceName, someDataCenter, - someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, + someRequest, someResponse); assertEquals(someServerSideReleaseKey, result.getReleaseKey()); assertEquals(someAppId, result.getAppId()); @@ -295,7 +320,8 @@ public void testQueryConfigWithPubicNamespaceAndNoAppOverride() throws Exception assertEquals(somePublicNamespaceName, result.getNamespaceName()); assertEquals("foo", result.getConfigurations().get("apollo.public.bar")); verify(instanceConfigAuditUtil, times(1)).audit(someAppId, someClusterName, someDataCenter, - someClientIp, somePublicAppId, somePublicClusterName, somePublicNamespaceName, someServerSideReleaseKey); + someClientIp, somePublicAppId, somePublicClusterName, somePublicNamespaceName, + someServerSideReleaseKey); } @Test @@ -308,20 +334,26 @@ public void testQueryConfigFileWithPublicNamespaceAndNoAppOverride() throws Exce AppNamespace somePublicAppNamespace = assemblePublicAppNamespace(somePublicAppId, somePublicNamespaceName); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(null); when(appNamespaceService.findPublicNamespaceByName(somePublicNamespaceName)) .thenReturn(somePublicAppNamespace); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(somePublicRelease); when(somePublicRelease.getReleaseKey()).thenReturn(someServerSideReleaseKey); when(namespaceUtil.filterNamespaceName(someNamespace)).thenReturn(somePublicNamespaceName); - when(namespaceUtil.normalizeNamespace(someAppId, somePublicNamespaceName)).thenReturn(somePublicNamespaceName); - when(appNamespaceService.findByAppIdAndNamespace(someAppId, somePublicNamespaceName)).thenReturn(null); + when(namespaceUtil.normalizeNamespace(someAppId, somePublicNamespaceName)).thenReturn( + somePublicNamespaceName); + when( + appNamespaceService.findByAppIdAndNamespace(someAppId, somePublicNamespaceName)).thenReturn( + null); ApolloConfig result = configController .queryConfig(someAppId, someClusterName, someNamespace, someDataCenter, - someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, + someRequest, someResponse); assertEquals(someServerSideReleaseKey, result.getReleaseKey()); assertEquals(someAppId, result.getAppId()); @@ -344,13 +376,15 @@ public void testQueryConfigWithPublicNamespaceAndAppOverride() throws Exception when(somePublicRelease.getConfigurations()) .thenReturn("{\"apollo.public.foo\": \"foo\", \"apollo.public.bar\": \"bar\"}"); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(someRelease); when(someRelease.getReleaseKey()).thenReturn(someAppSideReleaseKey); when(someRelease.getNamespaceName()).thenReturn(somePublicNamespaceName); when(appNamespaceService.findPublicNamespaceByName(somePublicNamespaceName)) .thenReturn(somePublicAppNamespace); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(somePublicRelease); when(somePublicRelease.getReleaseKey()).thenReturn(somePublicAppSideReleaseKey); when(somePublicRelease.getAppId()).thenReturn(somePublicAppId); @@ -360,7 +394,8 @@ public void testQueryConfigWithPublicNamespaceAndAppOverride() throws Exception ApolloConfig result = configController .queryConfig(someAppId, someClusterName, somePublicNamespaceName, someDataCenter, - someAppSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + someAppSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, + someRequest, someResponse); assertEquals(Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR) .join(someAppSideReleaseKey, somePublicAppSideReleaseKey), @@ -373,7 +408,8 @@ public void testQueryConfigWithPublicNamespaceAndAppOverride() throws Exception verify(instanceConfigAuditUtil, times(1)).audit(someAppId, someClusterName, someDataCenter, someClientIp, someAppId, someClusterName, somePublicNamespaceName, someAppSideReleaseKey); verify(instanceConfigAuditUtil, times(1)).audit(someAppId, someClusterName, someDataCenter, - someClientIp, somePublicAppId, someDataCenter, somePublicNamespaceName, somePublicAppSideReleaseKey); + someClientIp, somePublicAppId, someDataCenter, somePublicNamespaceName, + somePublicAppSideReleaseKey); } @Test @@ -423,7 +459,8 @@ public void testQueryConfigForNoAppIdPlaceHolder() throws Exception { defaultNamespaceName, someDataCenter, someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); - verify(configService, never()).loadConfig(appId, someClientIp, someAppId, someClientLabel, someClusterName, defaultNamespaceName, + verify(configService, never()).loadConfig(appId, someClientIp, someAppId, someClientLabel, + someClusterName, defaultNamespaceName, someDataCenter, someNotificationMessages); verify(appNamespaceService, never()).findPublicNamespaceByName(defaultNamespaceName); assertNull(result); @@ -442,16 +479,19 @@ public void testQueryConfigForNoAppIdPlaceHolderWithPublicNamespace() throws Exc when(appNamespaceService.findPublicNamespaceByName(somePublicNamespaceName)) .thenReturn(somePublicAppNamespace); - when(configService.loadConfig(appId, someClientIp, someClientLabel, somePublicAppId, someClusterName, somePublicNamespaceName, + when(configService.loadConfig(appId, someClientIp, someClientLabel, somePublicAppId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages)).thenReturn(somePublicRelease); when(somePublicRelease.getReleaseKey()).thenReturn(someServerSideReleaseKey); - when(namespaceUtil.normalizeNamespace(appId, somePublicNamespaceName)).thenReturn(somePublicNamespaceName); + when(namespaceUtil.normalizeNamespace(appId, somePublicNamespaceName)).thenReturn( + somePublicNamespaceName); ApolloConfig result = configController.queryConfig(appId, someClusterName, somePublicNamespaceName, someDataCenter, someClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); - verify(configService, never()).loadConfig(appId, someClientIp, someClientLabel, appId, someClusterName, + verify(configService, never()).loadConfig(appId, someClientIp, someClientLabel, appId, + someClusterName, somePublicNamespaceName, someDataCenter, someNotificationMessages); assertEquals(someServerSideReleaseKey, result.getReleaseKey()); assertEquals(appId, result.getAppId()); @@ -495,11 +535,11 @@ private AppNamespace assembleAppNamespace(String appId, String namespace, boolea appNamespace.setPublic(isPublic); return appNamespace; } + @Test public void testQueryConfigWithIncrementalSync() throws Exception { when(bizConfig.isConfigServiceChangeCacheEnabled()) - .thenReturn(true); - + .thenReturn(true); String clientSideReleaseKey = "1"; String someConfigurations = "{\"apollo.public.foo\": \"foo\"}"; HttpServletResponse someResponse = mock(HttpServletResponse.class); @@ -507,23 +547,26 @@ public void testQueryConfigWithIncrementalSync() throws Exception { String anotherConfigurations = "{\"apollo.public.foo\": \"foo\", \"apollo.public.bar\": \"bar\"}"; - when(configService.findReleasesByReleaseKeys(Sets.newHashSet(clientSideReleaseKey))).thenReturn(someReleaseMap); + when(configService.findReleasesByReleaseKeys(Sets.newHashSet(clientSideReleaseKey))).thenReturn( + someReleaseMap); when(someReleaseMap.get(clientSideReleaseKey)).thenReturn(someRelease); when(someRelease.getConfigurations()).thenReturn(someConfigurations); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, - someDataCenter, someNotificationMessages)).thenReturn(anotherRelease); + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, + someDataCenter, someNotificationMessages)).thenReturn(anotherRelease); when(anotherRelease.getNamespaceName()).thenReturn(defaultNamespaceName); when(anotherRelease.getConfigurations()).thenReturn(anotherConfigurations); - List configurationChanges=new ArrayList<>(); + List configurationChanges = new ArrayList<>(); configurationChanges.add(new ConfigurationChange("apollo.public.bar", "bar", "ADDED")); - when(configService.calcConfigurationChanges(gson.fromJson(anotherConfigurations, configurationTypeReference), - gson.fromJson(someConfigurations, configurationTypeReference))) - .thenReturn(configurationChanges); + when(configService.calcConfigurationChanges( + gson.fromJson(anotherConfigurations, configurationTypeReference), + gson.fromJson(someConfigurations, configurationTypeReference))) + .thenReturn(configurationChanges); ApolloConfig anotherResult = configController.queryConfig(someAppId, someClusterName, - defaultNamespaceName, someDataCenter, clientSideReleaseKey, - someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + defaultNamespaceName, someDataCenter, clientSideReleaseKey, + someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); assertEquals(ConfigSyncType.INCREMENTALSYNC.getValue(), anotherResult.getConfigSyncType()); assertEquals(configurationChanges, anotherResult.getConfigurationChanges()); @@ -532,25 +575,26 @@ public void testQueryConfigWithIncrementalSync() throws Exception { @Test public void testQueryConfigWithIncrementalSyncNotFound() throws Exception { when(bizConfig.isConfigServiceChangeCacheEnabled()) - .thenReturn(true); + .thenReturn(true); String someClientSideReleaseKey = "1"; String someServerSideNewReleaseKey = "2"; HttpServletResponse someResponse = mock(HttpServletResponse.class); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, defaultNamespaceName, - someDataCenter, someNotificationMessages)).thenReturn(someRelease); - when(configService.findReleasesByReleaseKeys(Sets.newHashSet(someClientSideReleaseKey))).thenReturn(null); + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, defaultNamespaceName, + someDataCenter, someNotificationMessages)).thenReturn(someRelease); + when(configService.findReleasesByReleaseKeys( + Sets.newHashSet(someClientSideReleaseKey))).thenReturn(null); when(someRelease.getReleaseKey()).thenReturn(someServerSideNewReleaseKey); when(someRelease.getNamespaceName()).thenReturn(defaultNamespaceName); String configurations = "{\"apollo.public.foo\": \"foo\"}"; when(someRelease.getConfigurations()).thenReturn(configurations); - ApolloConfig result = configController.queryConfig(someAppId, someClusterName, - defaultNamespaceName, someDataCenter, someClientSideReleaseKey, - someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + defaultNamespaceName, someDataCenter, someClientSideReleaseKey, + someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); assertEquals(1, result.getConfigurations().size()); assertEquals("foo", result.getConfigurations().get("apollo.public.foo")); } @@ -558,7 +602,7 @@ public void testQueryConfigWithIncrementalSyncNotFound() throws Exception { @Test public void testQueryConfigWithIncrementalSyncPublicNamespaceAndAppOverride() throws Exception { when(bizConfig.isConfigServiceChangeCacheEnabled()) - .thenReturn(true); + .thenReturn(true); String someAppClientSideReleaseKey = "1"; String somePublicAppClientSideReleaseKey = "2"; String someConfigurations = "{\"apollo.public.foo.client\": \"foo.override\"}"; @@ -566,8 +610,8 @@ public void testQueryConfigWithIncrementalSyncPublicNamespaceAndAppOverride() th Map someReleaseMap = mock(Map.class); Release somePublicRelease = mock(Release.class); - - when(configService.findReleasesByReleaseKeys(Sets.newHashSet(someAppClientSideReleaseKey, somePublicAppClientSideReleaseKey))).thenReturn(someReleaseMap); + when(configService.findReleasesByReleaseKeys(Sets.newHashSet(someAppClientSideReleaseKey, + somePublicAppClientSideReleaseKey))).thenReturn(someReleaseMap); when(someReleaseMap.get(someAppClientSideReleaseKey)).thenReturn(someRelease); when(someReleaseMap.get(somePublicAppClientSideReleaseKey)).thenReturn(somePublicRelease); when(someRelease.getConfigurations()).thenReturn(someConfigurations); @@ -579,44 +623,49 @@ public void testQueryConfigWithIncrementalSyncPublicNamespaceAndAppOverride() th HttpServletResponse someResponse = mock(HttpServletResponse.class); String somePublicAppId = "somePublicAppId"; AppNamespace somePublicAppNamespace = - assemblePublicAppNamespace(somePublicAppId, somePublicNamespaceName); + assemblePublicAppNamespace(somePublicAppId, somePublicNamespaceName); - when(anotherRelease.getConfigurations()).thenReturn("{\"apollo.public.foo\": \"foo-override\"}"); + when(anotherRelease.getConfigurations()).thenReturn( + "{\"apollo.public.foo\": \"foo-override\"}"); when(anotherPublicRelease.getConfigurations()) - .thenReturn("{\"apollo.public.foo\": \"foo\", \"apollo.public.bar\": \"bar\"}"); + .thenReturn("{\"apollo.public.foo\": \"foo\", \"apollo.public.bar\": \"bar\"}"); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, someClusterName, somePublicNamespaceName, - someDataCenter, someNotificationMessages)).thenReturn(anotherRelease); + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, someAppId, + someClusterName, somePublicNamespaceName, + someDataCenter, someNotificationMessages)).thenReturn(anotherRelease); when(anotherRelease.getReleaseKey()).thenReturn(someAppServerSideReleaseKey); when(anotherRelease.getNamespaceName()).thenReturn(somePublicNamespaceName); when(appNamespaceService.findPublicNamespaceByName(somePublicNamespaceName)) - .thenReturn(somePublicAppNamespace); - when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, someClusterName, somePublicNamespaceName, - someDataCenter, someNotificationMessages)).thenReturn(anotherPublicRelease); + .thenReturn(somePublicAppNamespace); + when(configService.loadConfig(someAppId, someClientIp, someClientLabel, somePublicAppId, + someClusterName, somePublicNamespaceName, + someDataCenter, someNotificationMessages)).thenReturn(anotherPublicRelease); when(anotherPublicRelease.getReleaseKey()).thenReturn(somePublicAppSideReleaseKey); when(anotherPublicRelease.getAppId()).thenReturn(somePublicAppId); when(anotherPublicRelease.getClusterName()).thenReturn(someDataCenter); when(anotherPublicRelease.getNamespaceName()).thenReturn(somePublicNamespaceName); - String mergeServerSideConfigurations = "{\"apollo.public.bar\": \"bar\",\"apollo.public.foo\": \"foo-override\"}"; String mergeClientSideConfigurations = "{\"apollo.public.foo.client\": \"foo.override\"}"; - List configurationChanges=new ArrayList<>(); + List configurationChanges = new ArrayList<>(); configurationChanges.add(new ConfigurationChange("apollo.public.bar", "bar", "ADDED")); configurationChanges.add(new ConfigurationChange("apollo.public.foo", "foo-override", "ADDED")); configurationChanges.add(new ConfigurationChange("apollo.public.foo.client", null, "DELETED")); - when(configService.calcConfigurationChanges(gson.fromJson(mergeServerSideConfigurations, configurationTypeReference), - gson.fromJson(mergeClientSideConfigurations, configurationTypeReference))) - .thenReturn(configurationChanges); + when(configService.calcConfigurationChanges( + gson.fromJson(mergeServerSideConfigurations, configurationTypeReference), + gson.fromJson(mergeClientSideConfigurations, configurationTypeReference))) + .thenReturn(configurationChanges); - String mergeClientSideReleaseKey=Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR) - .join(someAppClientSideReleaseKey, somePublicAppClientSideReleaseKey); - ApolloConfig result = configController.queryConfig(someAppId, someClusterName, somePublicNamespaceName, someDataCenter, - mergeClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, someResponse); + String mergeClientSideReleaseKey = Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR) + .join(someAppClientSideReleaseKey, somePublicAppClientSideReleaseKey); + ApolloConfig result = configController.queryConfig(someAppId, someClusterName, + somePublicNamespaceName, someDataCenter, + mergeClientSideReleaseKey, someClientIp, someClientLabel, someMessagesAsString, someRequest, + someResponse); assertEquals(Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR) - .join(someAppServerSideReleaseKey, somePublicAppSideReleaseKey), - result.getReleaseKey()); + .join(someAppServerSideReleaseKey, somePublicAppSideReleaseKey), + result.getReleaseKey()); assertEquals(ConfigSyncType.INCREMENTALSYNC.getValue(), result.getConfigSyncType()); assertEquals(configurationChanges, result.getConfigurationChanges()); } diff --git a/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCacheTest.java b/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCacheTest.java index e0bf3150d03..68db36dd5a1 100644 --- a/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCacheTest.java +++ b/apollo-configservice/src/test/java/com/ctrip/framework/apollo/configservice/service/config/ConfigServiceWithChangeCacheTest.java @@ -47,10 +47,12 @@ */ @RunWith(MockitoJUnitRunner.class) public class ConfigServiceWithChangeCacheTest { + private ConfigServiceWithChangeCache configServiceWithChangeCache; @Mock private ReleaseService releaseService; + @Mock private ReleaseMessageService releaseMessageService; @Mock @@ -73,19 +75,21 @@ public class ConfigServiceWithChangeCacheTest { @Before public void setUp() throws Exception { - configServiceWithChangeCache = new ConfigServiceWithChangeCache(releaseService, releaseMessageService, - grayReleaseRulesHolder, bizConfig, meterRegistry); + configServiceWithChangeCache = new ConfigServiceWithChangeCache(releaseService, + releaseMessageService, + grayReleaseRulesHolder, bizConfig, meterRegistry); configServiceWithChangeCache.initialize(); - someReleaseKey="someReleaseKey"; + someReleaseKey = "someReleaseKey"; someAppId = "someAppId"; someClusterName = "someClusterName"; someNamespaceName = "someNamespaceName"; - someKey= ReleaseMessageKeyGenerator.generate(someAppId, someClusterName, someNamespaceName); + someKey = ReleaseMessageKeyGenerator.generate(someAppId, someClusterName, someNamespaceName); } + @Test public void testChangeConfigurationsWithAdd() { String key1 = "key1"; @@ -94,33 +98,34 @@ public void testChangeConfigurationsWithAdd() { String key2 = "key2"; String value2 = "value2"; - Map latestConfig = ImmutableMap.of(key1, value1,key2, value2); + Map latestConfig = ImmutableMap.of(key1, value1, key2, value2); Map historyConfig = ImmutableMap.of(key1, value1); List result = - configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); + configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); assertEquals(1, result.size()); assertEquals(key2, result.get(0).getKey()); assertEquals(value2, result.get(0).getNewValue()); assertEquals("ADDED", result.get(0).getConfigurationChangeType()); } + @Test public void testChangeConfigurationsWithLatestConfigIsNULL() { String key1 = "key1"; String value1 = "value1"; - Map historyConfig = ImmutableMap.of(key1, value1); List result = - configServiceWithChangeCache.calcConfigurationChanges(null, historyConfig); + configServiceWithChangeCache.calcConfigurationChanges(null, historyConfig); assertEquals(1, result.size()); assertEquals(key1, result.get(0).getKey()); assertEquals(null, result.get(0).getNewValue()); assertEquals("DELETED", result.get(0).getConfigurationChangeType()); } + @Test public void testChangeConfigurationsWithHistoryConfigIsNULL() { String key1 = "key1"; @@ -129,13 +134,14 @@ public void testChangeConfigurationsWithHistoryConfigIsNULL() { Map latestConfig = ImmutableMap.of(key1, value1); List result = - configServiceWithChangeCache.calcConfigurationChanges(latestConfig, null); + configServiceWithChangeCache.calcConfigurationChanges(latestConfig, null); assertEquals(1, result.size()); assertEquals(key1, result.get(0).getKey()); assertEquals(value1, result.get(0).getNewValue()); assertEquals("ADDED", result.get(0).getConfigurationChangeType()); } + @Test public void testChangeConfigurationsWithUpdate() { String key1 = "key1"; @@ -147,13 +153,14 @@ public void testChangeConfigurationsWithUpdate() { Map historyConfig = ImmutableMap.of(key1, value1); List result = - configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); + configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); assertEquals(1, result.size()); assertEquals(key1, result.get(0).getKey()); assertEquals(anotherValue1, result.get(0).getNewValue()); assertEquals("MODIFIED", result.get(0).getConfigurationChangeType()); } + @Test public void testChangeConfigurationsWithDelete() { String key1 = "key1"; @@ -163,7 +170,7 @@ public void testChangeConfigurationsWithDelete() { Map historyConfig = ImmutableMap.of(key1, value1); List result = - configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); + configServiceWithChangeCache.calcConfigurationChanges(latestConfig, historyConfig); assertEquals(1, result.size()); assertEquals(key1, result.get(0).getKey()); @@ -174,11 +181,12 @@ public void testChangeConfigurationsWithDelete() { @Test public void testFindReleasesByReleaseKeys() { when(releaseService.findByReleaseKey(someReleaseKey)).thenReturn - (someRelease); - - Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); - Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); + (someRelease); + Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); + Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); int retryTimes = 100; @@ -195,11 +203,12 @@ public void testFindReleasesByReleaseKeys() { @Test public void testFindReleasesByReleaseKeysWithReleaseNotFound() { when(releaseService.findByReleaseKey(someReleaseKey)).thenReturn - (null); - - Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); - Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); + (null); + Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); + Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); int retryTimes = 100; @@ -217,13 +226,16 @@ public void testFindReleasesByReleaseKeysWithReleaseNotFound() { public void testFindReleasesByReleaseKeysWithReleaseMessageNotification() { ReleaseMessage someReleaseMessage = mock(ReleaseMessage.class); - when(releaseService.findLatestActiveRelease(someAppId,someClusterName,someNamespaceName)).thenReturn(someRelease); + when(releaseService.findLatestActiveRelease(someAppId, someClusterName, + someNamespaceName)).thenReturn(someRelease); when(someReleaseMessage.getMessage()).thenReturn(someKey); when(someRelease.getReleaseKey()).thenReturn(someReleaseKey); configServiceWithChangeCache.handleMessage(someReleaseMessage, Topics.APOLLO_RELEASE_TOPIC); - Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); - Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys(Sets.newHashSet(someReleaseKey)); + Map someReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); + Map anotherReleaseMap = configServiceWithChangeCache.findReleasesByReleaseKeys( + Sets.newHashSet(someReleaseKey)); assertEquals(someRelease, someReleaseMap.get(someReleaseKey)); assertEquals(someRelease, anotherReleaseMap.get(someReleaseKey));