Coverage Report - com.ctrip.framework.apollo.biz.service.ServerConfigService
 
Classes in this File Line Coverage Branch Coverage Complexity
ServerConfigService
85%
12/14
83%
10/12
3
 
 1  
 package com.ctrip.framework.apollo.biz.service;
 2  
 
 3  
 import com.google.common.base.Strings;
 4  
 
 5  
 import com.ctrip.framework.apollo.biz.entity.ServerConfig;
 6  
 import com.ctrip.framework.apollo.biz.repository.ServerConfigRepository;
 7  
 import com.ctrip.framework.apollo.core.ConfigConsts;
 8  
 import com.ctrip.framework.foundation.Foundation;
 9  
 
 10  
 import org.springframework.beans.factory.annotation.Autowired;
 11  
 import org.springframework.stereotype.Service;
 12  
 
 13  
 /**
 14  
  * @author Jason Song(song_s@ctrip.com)
 15  
  */
 16  
 @Service
 17  7
 public class ServerConfigService {
 18  
   @Autowired
 19  
   private ServerConfigRepository serverConfigRepository;
 20  
 
 21  
   public String getValue(String key) {
 22  6
     ServerConfig serverConfig = null;
 23  
 
 24  
     //1. Load from cluster config
 25  6
     if (!Strings.isNullOrEmpty(System.getProperty(ConfigConsts.APOLLO_CLUSTER_KEY))) {
 26  3
       serverConfig =
 27  3
           serverConfigRepository.findTopByKeyAndCluster(key, System.getProperty(ConfigConsts.APOLLO_CLUSTER_KEY));
 28  
     }
 29  
 
 30  
     //2. Fall back to data center config
 31  6
     if (serverConfig == null && !Strings.isNullOrEmpty(getDataCenter())) {
 32  3
       serverConfig = serverConfigRepository.findTopByKeyAndCluster(key, getDataCenter());
 33  
     }
 34  
 
 35  
     //3. Fall back to default cluster config
 36  6
     if (serverConfig == null) {
 37  4
       serverConfig =
 38  4
           serverConfigRepository.findTopByKeyAndCluster(key, ConfigConsts.CLUSTER_NAME_DEFAULT);
 39  
     }
 40  
 
 41  6
     return serverConfig == null ? null : serverConfig.getValue();
 42  
   }
 43  
 
 44  
   public String getValue(String key, String defaultValue) {
 45  0
     String value = getValue(key);
 46  0
     return value == null ? defaultValue : value;
 47  
   }
 48  
 
 49  
   String getDataCenter() {
 50  5
     return Foundation.server().getDataCenter();
 51  
   }
 52  
 
 53  
 }