Commit c46f561c authored by Jason Song's avatar Jason Song

Support reading Envs in Portal

parents 48c3bb83 0fce28d6
package com.ctrip.apollo.biz.utils; package com.ctrip.apollo.biz.utils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
...@@ -48,11 +50,23 @@ public class ApolloBeanUtils { ...@@ -48,11 +50,23 @@ public class ApolloBeanUtils {
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
org.springframework.beans.BeanUtils.copyProperties(src, instance, ConverterUtils org.springframework.beans.BeanUtils.copyProperties(src, instance, getNullPropertyNames(src));
.getNullPropertyNames(src));
return instance; return instance;
} }
static String[] getNullPropertyNames(Object source) {
final BeanWrapper src = new BeanWrapperImpl(source);
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
Set<String> emptyNames = new HashSet<String>();
for (java.beans.PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
if (srcValue == null) emptyNames.add(pd.getName());
}
String[] result = new String[emptyNames.size()];
return emptyNames.toArray(result);
}
/** /**
* 用于将一个列表转换为列表中的对象的某个属性映射到列表中的对象 * 用于将一个列表转换为列表中的对象的某个属性映射到列表中的对象
* *
...@@ -92,7 +106,7 @@ public class ApolloBeanUtils { ...@@ -92,7 +106,7 @@ public class ApolloBeanUtils {
*/ */
public static <K, V> Map<K, List<V>> aggByKeyToList(String key, List list) { public static <K, V> Map<K, List<V>> aggByKeyToList(String key, List list) {
Map<K, List<V>> map = new HashMap<K, List<V>>(); Map<K, List<V>> map = new HashMap<K, List<V>>();
if (CollectionUtils.isEmpty(list)) {//防止外面传入空list if (CollectionUtils.isEmpty(list)) {// 防止外面传入空list
return map; return map;
} }
try { try {
...@@ -122,7 +136,7 @@ public class ApolloBeanUtils { ...@@ -122,7 +136,7 @@ public class ApolloBeanUtils {
*/ */
public static Set toPropertySet(String key, List list) { public static Set toPropertySet(String key, List list) {
Set set = new HashSet(); Set set = new HashSet();
if (CollectionUtils.isEmpty(list)) {//防止外面传入空list if (CollectionUtils.isEmpty(list)) {// 防止外面传入空list
return set; return set;
} }
try { try {
...@@ -168,7 +182,7 @@ public class ApolloBeanUtils { ...@@ -168,7 +182,7 @@ public class ApolloBeanUtils {
return field.get(obj); return field.get(obj);
} }
} catch (Exception e) { } catch (Exception e) {
//ig // ig
} }
return null; return null;
} }
...@@ -184,7 +198,7 @@ public class ApolloBeanUtils { ...@@ -184,7 +198,7 @@ public class ApolloBeanUtils {
field.set(obj, value); field.set(obj, value);
} }
} catch (Exception e) { } catch (Exception e) {
//ig // ig
} }
} }
......
package com.ctrip.apollo.biz.utils;
import java.util.HashSet;
import java.util.Set;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public class ConverterUtils {
static String[] getNullPropertyNames(Object source) {
final BeanWrapper src = new BeanWrapperImpl(source);
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
Set<String> emptyNames = new HashSet<String>();
for (java.beans.PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
if (srcValue == null) emptyNames.add(pd.getName());
}
String[] result = new String[emptyNames.size()];
return emptyNames.toArray(result);
}
}
package com.ctrip.apollo.client.loader; package com.ctrip.apollo.client.loader;
import com.ctrip.apollo.client.env.ClientEnvironment; import com.ctrip.apollo.client.env.ClientEnvironment;
import com.ctrip.apollo.core.serivce.ApolloService; import com.ctrip.apollo.core.dto.ServiceDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -17,17 +17,17 @@ public class ConfigServiceLocator { ...@@ -17,17 +17,17 @@ public class ConfigServiceLocator {
private RestTemplate restTemplate = new RestTemplate(); private RestTemplate restTemplate = new RestTemplate();
private List<ApolloService> serviceCaches = new ArrayList<>(); private List<ServiceDTO> serviceCaches = new ArrayList<>();
public List<ApolloService> getConfigServices() { public List<ServiceDTO> getConfigServices() {
ClientEnvironment env = ClientEnvironment.getInstance(); ClientEnvironment env = ClientEnvironment.getInstance();
String domainName = env.getMetaServerDomainName(); String domainName = env.getMetaServerDomainName();
String url = domainName + "/services/config"; String url = domainName + "/services/config";
try { try {
ApolloService[] services = restTemplate.getForObject(new URI(url), ApolloService[].class); ServiceDTO[] services = restTemplate.getForObject(new URI(url), ServiceDTO[].class);
if (services != null && services.length > 0) { if (services != null && services.length > 0) {
serviceCaches.clear(); serviceCaches.clear();
for (ApolloService service : services) { for (ServiceDTO service : services) {
serviceCaches.add(service); serviceCaches.add(service);
} }
} }
......
...@@ -6,7 +6,7 @@ import com.ctrip.apollo.client.loader.ConfigServiceLocator; ...@@ -6,7 +6,7 @@ import com.ctrip.apollo.client.loader.ConfigServiceLocator;
import com.ctrip.apollo.client.model.ApolloRegistry; import com.ctrip.apollo.client.model.ApolloRegistry;
import com.ctrip.apollo.client.util.ConfigUtil; import com.ctrip.apollo.client.util.ConfigUtil;
import com.ctrip.apollo.core.dto.ApolloConfig; import com.ctrip.apollo.core.dto.ApolloConfig;
import com.ctrip.apollo.core.serivce.ApolloService; import com.ctrip.apollo.core.dto.ServiceDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -96,7 +96,7 @@ public class RemoteConfigLoader extends AbstractConfigLoader { ...@@ -96,7 +96,7 @@ public class RemoteConfigLoader extends AbstractConfigLoader {
} }
private String getConfigServiceUrl() { private String getConfigServiceUrl() {
List<ApolloService> services = serviceLocator.getConfigServices(); List<ServiceDTO> services = serviceLocator.getConfigServices();
if (services.size() == 0) { if (services.size() == 0) {
throw new RuntimeException("No available config service"); throw new RuntimeException("No available config service");
} }
......
...@@ -4,7 +4,7 @@ import com.ctrip.apollo.client.loader.ConfigServiceLocator; ...@@ -4,7 +4,7 @@ import com.ctrip.apollo.client.loader.ConfigServiceLocator;
import com.ctrip.apollo.client.model.ApolloRegistry; import com.ctrip.apollo.client.model.ApolloRegistry;
import com.ctrip.apollo.client.util.ConfigUtil; import com.ctrip.apollo.client.util.ConfigUtil;
import com.ctrip.apollo.core.dto.ApolloConfig; import com.ctrip.apollo.core.dto.ApolloConfig;
import com.ctrip.apollo.core.serivce.ApolloService; import com.ctrip.apollo.core.dto.ServiceDTO;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
...@@ -60,9 +60,9 @@ public class RemoteConfigLoaderTest { ...@@ -60,9 +60,9 @@ public class RemoteConfigLoaderTest {
ApolloRegistry apolloRegistry = assembleSomeApolloRegistry(someAppId, "someVersion"); ApolloRegistry apolloRegistry = assembleSomeApolloRegistry(someAppId, "someVersion");
ApolloConfig previousConfig = null; ApolloConfig previousConfig = null;
ApolloService someService = new ApolloService(); ServiceDTO someService = new ServiceDTO();
someService.setHomepageUrl(someServerUrl); someService.setHomepageUrl(someServerUrl);
List<ApolloService> someServices = new ArrayList<>(); List<ServiceDTO> someServices = new ArrayList<>();
someServices.add(someService); someServices.add(someService);
when(serviceLocater.getConfigServices()).thenReturn(someServices); when(serviceLocater.getConfigServices()).thenReturn(someServices);
when(configUtil.getCluster()).thenReturn(someCluster); when(configUtil.getCluster()).thenReturn(someCluster);
......
package com.ctrip.apollo.metaservice.controller; package com.ctrip.apollo.metaservice.controller;
import com.ctrip.apollo.core.serivce.ApolloService; import com.ctrip.apollo.core.dto.ServiceDTO;
import com.ctrip.apollo.metaservice.service.DiscoveryService; import com.ctrip.apollo.metaservice.service.DiscoveryService;
import com.netflix.appinfo.InstanceInfo; import com.netflix.appinfo.InstanceInfo;
...@@ -20,11 +20,11 @@ public class ServiceController { ...@@ -20,11 +20,11 @@ public class ServiceController {
@RequestMapping("/meta") @RequestMapping("/meta")
public List<ApolloService> getMetaService() { public List<ServiceDTO> getMetaService() {
List<InstanceInfo> instances = discoveryService.getMetaServiceInstances(); List<InstanceInfo> instances = discoveryService.getMetaServiceInstances();
List<ApolloService> result = new ArrayList<ApolloService>(); List<ServiceDTO> result = new ArrayList<ServiceDTO>();
for (InstanceInfo instance : instances) { for (InstanceInfo instance : instances) {
ApolloService service = new ApolloService(); ServiceDTO service = new ServiceDTO();
service.setAppName(instance.getAppName()); service.setAppName(instance.getAppName());
service.setInstanceId(instance.getInstanceId()); service.setInstanceId(instance.getInstanceId());
service.setHomepageUrl(instance.getHomePageUrl()); service.setHomepageUrl(instance.getHomePageUrl());
...@@ -34,11 +34,11 @@ public class ServiceController { ...@@ -34,11 +34,11 @@ public class ServiceController {
} }
@RequestMapping("/config") @RequestMapping("/config")
public List<ApolloService> getConfigService() { public List<ServiceDTO> getConfigService() {
List<InstanceInfo> instances = discoveryService.getConfigServiceInstances(); List<InstanceInfo> instances = discoveryService.getConfigServiceInstances();
List<ApolloService> result = new ArrayList<ApolloService>(); List<ServiceDTO> result = new ArrayList<ServiceDTO>();
for (InstanceInfo instance : instances) { for (InstanceInfo instance : instances) {
ApolloService service = new ApolloService(); ServiceDTO service = new ServiceDTO();
service.setAppName(instance.getAppName()); service.setAppName(instance.getAppName());
service.setInstanceId(instance.getInstanceId()); service.setInstanceId(instance.getInstanceId());
service.setHomepageUrl(instance.getHomePageUrl()); service.setHomepageUrl(instance.getHomePageUrl());
...@@ -48,11 +48,11 @@ public class ServiceController { ...@@ -48,11 +48,11 @@ public class ServiceController {
} }
@RequestMapping("/admin") @RequestMapping("/admin")
public List<ApolloService> getAdminService() { public List<ServiceDTO> getAdminService() {
List<InstanceInfo> instances = discoveryService.getAdminServiceInstances(); List<InstanceInfo> instances = discoveryService.getAdminServiceInstances();
List<ApolloService> result = new ArrayList<ApolloService>(); List<ServiceDTO> result = new ArrayList<ServiceDTO>();
for (InstanceInfo instance : instances) { for (InstanceInfo instance : instances) {
ApolloService service = new ApolloService(); ServiceDTO service = new ServiceDTO();
service.setAppName(instance.getAppName()); service.setAppName(instance.getAppName());
service.setInstanceId(instance.getInstanceId()); service.setInstanceId(instance.getInstanceId());
service.setHomepageUrl(instance.getHomePageUrl()); service.setHomepageUrl(instance.getHomePageUrl());
......
package com.ctrip.apollo.core; package com.ctrip.apollo.core;
public interface Constants { public interface ConfigConsts {
String DEFAULT_CLUSTER_NAME = "default"; String DEFAULT_CLUSTER_NAME = "default";
......
package com.ctrip.apollo.core; package com.ctrip.apollo.core;
public class ServiceNameConsts { public interface ServiceNameConsts {
public static final String APOLLO_METASERVICE = "apollo-metaservice"; final String APOLLO_METASERVICE = "apollo-metaservice";
public static final String APOLLO_CONFIGSERVICE = "apollo-configservice"; final String APOLLO_CONFIGSERVICE = "apollo-configservice";
public static final String APOLLO_ADMINSERVICE = "apollo-adminservice"; final String APOLLO_ADMINSERVICE = "apollo-adminservice";
public static final String APOLLO_PORTAL = "apollo-portal"; final String APOLLO_PORTAL = "apollo-portal";
} }
package com.ctrip.apollo.core.serivce; package com.ctrip.apollo.core.dto;
public class ApolloService { public class ServiceDTO {
private String appName; private String appName;
......
package com.ctrip.apollo.core.exception;
public class ServiceException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
public ServiceException(String str) {
super(str);
}
}
...@@ -15,7 +15,7 @@ import org.slf4j.LoggerFactory; ...@@ -15,7 +15,7 @@ import org.slf4j.LoggerFactory;
public class ResourceUtils { public class ResourceUtils {
private static final Logger logger = LoggerFactory.getLogger(ResourceUtils.class); private static final Logger logger = LoggerFactory.getLogger(ResourceUtils.class);
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static Properties readConfigFile(String configPath, Properties defaults) { public static Properties readConfigFile(String configPath, Properties defaults) {
InputStream in = ClassLoader.getSystemResourceAsStream(configPath); InputStream in = ClassLoader.getSystemResourceAsStream(configPath);
...@@ -28,6 +28,8 @@ public class ResourceUtils { ...@@ -28,6 +28,8 @@ public class ResourceUtils {
if (Files.isReadable(path)) { if (Files.isReadable(path)) {
in = new FileInputStream(path.toFile()); in = new FileInputStream(path.toFile());
logger.info("Reading config from file {} ", path); logger.info("Reading config from file {} ", path);
} else {
logger.info("Could not find available config file");
} }
} }
if (defaults != null) { if (defaults != null) {
...@@ -51,12 +53,16 @@ public class ResourceUtils { ...@@ -51,12 +53,16 @@ public class ResourceUtils {
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (Enumeration<String> e = (Enumeration<String>) props.propertyNames(); e for (Enumeration<String> e = (Enumeration<String>) props.propertyNames(); e
.hasMoreElements(); ) { .hasMoreElements();) {
String key = e.nextElement(); String key = e.nextElement();
String val = (String) props.getProperty(key); String val = (String) props.getProperty(key);
sb.append(key).append('=').append(val).append('\n'); sb.append(key).append('=').append(val).append('\n');
} }
logger.info("Reading properties: \n" + sb.toString()); if (sb.length() > 0) {
logger.info("Reading properties: \n" + sb.toString());
} else {
logger.info("No available properties");
}
return props; return props;
} }
} }
local.meta=http://localhost:8090 local.meta=http://localhost:8080
\ No newline at end of file \ No newline at end of file
package com.ctrip.apollo.core; package com.ctrip.apollo.core;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.springframework.util.Assert;
import com.ctrip.apollo.Apollo.Env; import com.ctrip.apollo.Apollo.Env;
public class MetaDomainTest { public class MetaDomainTest {
@Test @Test
public void testDefaultDomain() { public void testGetMetaDomain() {
Assert.notNull(MetaDomainConsts.getDomain(Env.LOCAL)); Assert.assertEquals("http://localhost:8090", MetaDomainConsts.getDomain(Env.LOCAL));
Assert.isNull(MetaDomainConsts.getDomain(Env.PRO)); Assert.assertEquals("http://dev:8080", MetaDomainConsts.getDomain(Env.DEV));
Assert.assertNull(MetaDomainConsts.getDomain(Env.PRO));
} }
} }
local.meta=http://localhost:8090 local.meta=http://localhost:8090
\ No newline at end of file dev.meta=http://dev:8080
\ No newline at end of file
package com.ctrip.apollo.portal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.ctrip.apollo.Apollo.Env;
@Component
public class PortalSettings {
@Value("#{'${apollo.portal.env}'.split(',')}")
private List<String> env;
private List<Env> envs = new ArrayList<Env>();
@PostConstruct
private void postConstruct() {
for (String e : env) {
envs.add(Env.valueOf(e.toUpperCase()));
}
}
public List<Env> getEnvs() {
return envs;
}
}
package com.ctrip.apollo.portal.api; package com.ctrip.apollo.portal.api;
import com.ctrip.apollo.Apollo; import com.ctrip.apollo.Apollo;
import com.ctrip.apollo.core.exception.ServiceException;
import com.ctrip.apollo.portal.service.ServiceLocator; import com.ctrip.apollo.portal.service.ServiceLocator;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -13,9 +14,14 @@ public class API { ...@@ -13,9 +14,14 @@ public class API {
protected RestTemplate restTemplate = new RestTemplate(); protected RestTemplate restTemplate = new RestTemplate();
public String getAdminServiceHost(Apollo.Env env){ public String getAdminServiceHost(Apollo.Env env) {
//本地测试用 // 本地测试用
// return "http://localhost:8090"; // return "http://localhost:8090";
return serviceLocator.getAdminService(env); try {
return serviceLocator.getAdminService(env).getHomepageUrl();
} catch (ServiceException e) {
e.printStackTrace();
}
return "";
} }
} }
...@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ctrip.apollo.Apollo.Env; import com.ctrip.apollo.Apollo.Env;
import com.ctrip.apollo.core.Constants; import com.ctrip.apollo.core.ConfigConsts;
import com.ctrip.apollo.core.dto.ClusterDTO; import com.ctrip.apollo.core.dto.ClusterDTO;
import com.ctrip.apollo.core.dto.ConfigItemDTO; import com.ctrip.apollo.core.dto.ConfigItemDTO;
import com.ctrip.apollo.core.dto.ReleaseSnapshotDTO; import com.ctrip.apollo.core.dto.ReleaseSnapshotDTO;
...@@ -61,7 +61,7 @@ public class ConfigService { ...@@ -61,7 +61,7 @@ public class ConfigService {
for (ReleaseSnapshotDTO snapShot : releaseSnapShots) { for (ReleaseSnapshotDTO snapShot : releaseSnapShots) {
// default cluster // default cluster
if (Constants.DEFAULT_CLUSTER_NAME.equals(snapShot.getClusterName())) { if (ConfigConsts.DEFAULT_CLUSTER_NAME.equals(snapShot.getClusterName())) {
collectDefaultClusterConfigs(appId, snapShot, appConfigVO); collectDefaultClusterConfigs(appId, snapShot, appConfigVO);
...@@ -223,7 +223,7 @@ public class ConfigService { ...@@ -223,7 +223,7 @@ public class ConfigService {
clusterName = entry.getKey(); clusterName = entry.getKey();
clusterConfigs = entry.getValue(); clusterConfigs = entry.getValue();
if (Constants.DEFAULT_CLUSTER_NAME.equals(clusterName)) { if (ConfigConsts.DEFAULT_CLUSTER_NAME.equals(clusterName)) {
// default cluster configs // default cluster configs
collectDefaultClusterConfigs(appId, clusterConfigs, defaultClusterConfigs, collectDefaultClusterConfigs(appId, clusterConfigs, defaultClusterConfigs,
overrideAppConfigs); overrideAppConfigs);
......
...@@ -11,7 +11,8 @@ import org.springframework.web.client.RestTemplate; ...@@ -11,7 +11,8 @@ import org.springframework.web.client.RestTemplate;
import com.ctrip.apollo.Apollo.Env; import com.ctrip.apollo.Apollo.Env;
import com.ctrip.apollo.core.MetaDomainConsts; import com.ctrip.apollo.core.MetaDomainConsts;
import com.ctrip.apollo.core.serivce.ApolloService; import com.ctrip.apollo.core.dto.ServiceDTO;
import com.ctrip.apollo.core.exception.ServiceException;
/** /**
* @author liuym * @author liuym
...@@ -23,32 +24,32 @@ public class ServiceLocator { ...@@ -23,32 +24,32 @@ public class ServiceLocator {
private RestTemplate restTemplate = new RestTemplate(); private RestTemplate restTemplate = new RestTemplate();
private List<ApolloService> serviceCaches = new ArrayList<>(); private List<ServiceDTO> serviceCaches = new ArrayList<>();
public List<ApolloService> getAdminServices(Env env) { public ServiceDTO getAdminService(Env env) throws ServiceException {
return getServices(env, "admin"); List<ServiceDTO> services = getServices(env, "admin");
}
public String getAdminService(Env env) {
List<ApolloService> services = getAdminServices(env);
if (services.size() == 0) { if (services.size() == 0) {
throw new RuntimeException("No available admin service"); throw new ServiceException("No available admin service");
} }
return services.get(0).getHomepageUrl(); return services.get(0);
} }
public List<ApolloService> getConfigServices(Env env) { public ServiceDTO getConfigService(Env env) throws ServiceException {
return getServices(env, "config"); List<ServiceDTO> services = getServices(env, "config");
if (services.size() == 0) {
throw new ServiceException("No available config service");
}
return services.get(0);
} }
private List<ApolloService> getServices(Env env, String serviceUrl) { private List<ServiceDTO> getServices(Env env, String serviceUrl) {
String domainName = MetaDomainConsts.getDomain(env); String domainName = MetaDomainConsts.getDomain(env);
String url = domainName + "/services/" + serviceUrl; String url = domainName + "/services/" + serviceUrl;
try { try {
ApolloService[] services = restTemplate.getForObject(new URI(url), ApolloService[].class); ServiceDTO[] services = restTemplate.getForObject(new URI(url), ServiceDTO[].class);
if (services != null && services.length > 0) { if (services != null && services.length > 0) {
serviceCaches.clear(); serviceCaches.clear();
for (ApolloService service : services) { for (ServiceDTO service : services) {
serviceCaches.add(service); serviceCaches.add(service);
} }
} }
......
...@@ -17,3 +17,7 @@ logging: ...@@ -17,3 +17,7 @@ logging:
ctrip: ctrip:
appid: 100003173 appid: 100003173
apollo:
portal:
env: dev,fws,uat
...@@ -15,11 +15,13 @@ import org.springframework.test.util.ReflectionTestUtils; ...@@ -15,11 +15,13 @@ import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.ctrip.apollo.Apollo.Env; import com.ctrip.apollo.Apollo.Env;
import com.ctrip.apollo.core.Constants; import com.ctrip.apollo.core.ConfigConsts;
import com.ctrip.apollo.core.dto.ClusterDTO; import com.ctrip.apollo.core.dto.ClusterDTO;
import com.ctrip.apollo.core.dto.ConfigItemDTO; import com.ctrip.apollo.core.dto.ConfigItemDTO;
import com.ctrip.apollo.core.dto.ReleaseSnapshotDTO; import com.ctrip.apollo.core.dto.ReleaseSnapshotDTO;
import com.ctrip.apollo.core.dto.ServiceDTO;
import com.ctrip.apollo.core.dto.VersionDTO; import com.ctrip.apollo.core.dto.VersionDTO;
import com.ctrip.apollo.core.exception.ServiceException;
import com.ctrip.apollo.portal.api.AdminServiceAPI; import com.ctrip.apollo.portal.api.AdminServiceAPI;
import com.ctrip.apollo.portal.constants.PortalConstants; import com.ctrip.apollo.portal.constants.PortalConstants;
import com.ctrip.apollo.portal.entity.AppConfigVO; import com.ctrip.apollo.portal.entity.AppConfigVO;
...@@ -47,7 +49,7 @@ public class ConfigServiceTest { ...@@ -47,7 +49,7 @@ public class ConfigServiceTest {
@Before @Before
public void setUp() { public void setUp() throws ServiceException {
ReflectionTestUtils.setField(versionAPI, "restTemplate", restTemplate); ReflectionTestUtils.setField(versionAPI, "restTemplate", restTemplate);
ReflectionTestUtils.setField(clusterAPI, "restTemplate", restTemplate); ReflectionTestUtils.setField(clusterAPI, "restTemplate", restTemplate);
ReflectionTestUtils.setField(configAPI, "restTemplate", restTemplate); ReflectionTestUtils.setField(configAPI, "restTemplate", restTemplate);
...@@ -57,7 +59,9 @@ public class ConfigServiceTest { ...@@ -57,7 +59,9 @@ public class ConfigServiceTest {
ReflectionTestUtils.setField(configAPI, "serviceLocator", serviceLocator); ReflectionTestUtils.setField(configAPI, "serviceLocator", serviceLocator);
String defaultAdminService = "http://localhost:8090"; String defaultAdminService = "http://localhost:8090";
Mockito.doReturn(defaultAdminService).when(serviceLocator).getAdminService(Env.DEV); ServiceDTO service = new ServiceDTO();
service.setHomepageUrl(defaultAdminService);
Mockito.doReturn(service).when(serviceLocator).getAdminService(Env.DEV);
} }
@Test @Test
...@@ -89,7 +93,7 @@ public class ConfigServiceTest { ...@@ -89,7 +93,7 @@ public class ConfigServiceTest {
VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId); VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId);
ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[1]; ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[1];
someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, Constants.DEFAULT_CLUSTER_NAME, someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, ConfigConsts.DEFAULT_CLUSTER_NAME,
"{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}"); "{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}");
when(versionAPI.getVersionById(Env.DEV, versionId)).thenReturn(someVersion); when(versionAPI.getVersionById(Env.DEV, versionId)).thenReturn(someVersion);
...@@ -111,7 +115,7 @@ public class ConfigServiceTest { ...@@ -111,7 +115,7 @@ public class ConfigServiceTest {
long releaseId = 11111; long releaseId = 11111;
VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId); VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId);
ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[1]; ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[1];
someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, Constants.DEFAULT_CLUSTER_NAME, someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, ConfigConsts.DEFAULT_CLUSTER_NAME,
"{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\", \"5555.bar\":\"demo2\", \"22.bar\":\"demo2\"}"); "{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\", \"5555.bar\":\"demo2\", \"22.bar\":\"demo2\"}");
when(versionAPI.getVersionById(Env.DEV, versionId)).thenReturn(someVersion); when(versionAPI.getVersionById(Env.DEV, versionId)).thenReturn(someVersion);
...@@ -133,7 +137,7 @@ public class ConfigServiceTest { ...@@ -133,7 +137,7 @@ public class ConfigServiceTest {
long releaseId = 11111; long releaseId = 11111;
VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId); VersionDTO someVersion = assembleVersion(appId, "1.0", releaseId);
ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[2]; ReleaseSnapshotDTO[] someReleaseSnapShots = new ReleaseSnapshotDTO[2];
someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, Constants.DEFAULT_CLUSTER_NAME, someReleaseSnapShots[0] = assembleReleaseSnapShot(11111, ConfigConsts.DEFAULT_CLUSTER_NAME,
"{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}"); "{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}");
someReleaseSnapShots[1] = assembleReleaseSnapShot(11112, "cluster1", someReleaseSnapShots[1] = assembleReleaseSnapShot(11112, "cluster1",
"{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}"); "{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\"}");
...@@ -179,7 +183,7 @@ public class ConfigServiceTest { ...@@ -179,7 +183,7 @@ public class ConfigServiceTest {
private ReleaseSnapshotDTO[] assembleReleaseSnapShots() { private ReleaseSnapshotDTO[] assembleReleaseSnapShots() {
ReleaseSnapshotDTO[] releaseSnapShots = new ReleaseSnapshotDTO[3]; ReleaseSnapshotDTO[] releaseSnapShots = new ReleaseSnapshotDTO[3];
releaseSnapShots[0] = assembleReleaseSnapShot(11111, Constants.DEFAULT_CLUSTER_NAME, releaseSnapShots[0] = assembleReleaseSnapShot(11111, ConfigConsts.DEFAULT_CLUSTER_NAME,
"{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\",\"3333.foo\":\"1008\",\"4444.bar\":\"99901\"}"); "{\"6666.foo\":\"demo1\", \"6666.bar\":\"demo2\",\"3333.foo\":\"1008\",\"4444.bar\":\"99901\"}");
releaseSnapShots[1] = assembleReleaseSnapShot(11111, "cluster1", "{\"6666.foo\":\"demo1\"}"); releaseSnapShots[1] = assembleReleaseSnapShot(11111, "cluster1", "{\"6666.foo\":\"demo1\"}");
releaseSnapShots[2] = assembleReleaseSnapShot(11111, "cluster2", "{\"6666.bar\":\"bar2222\"}"); releaseSnapShots[2] = assembleReleaseSnapShot(11111, "cluster2", "{\"6666.bar\":\"bar2222\"}");
...@@ -197,7 +201,7 @@ public class ConfigServiceTest { ...@@ -197,7 +201,7 @@ public class ConfigServiceTest {
private ClusterDTO[] assembleClusters() { private ClusterDTO[] assembleClusters() {
ClusterDTO[] clusters = new ClusterDTO[2]; ClusterDTO[] clusters = new ClusterDTO[2];
clusters[0] = assembleCluster(100, "6666", Constants.DEFAULT_CLUSTER_NAME); clusters[0] = assembleCluster(100, "6666", ConfigConsts.DEFAULT_CLUSTER_NAME);
clusters[1] = assembleCluster(101, "6666", "cluster1"); clusters[1] = assembleCluster(101, "6666", "cluster1");
return clusters; return clusters;
} }
...@@ -212,10 +216,10 @@ public class ConfigServiceTest { ...@@ -212,10 +216,10 @@ public class ConfigServiceTest {
private ConfigItemDTO[] assembleConfigItems() { private ConfigItemDTO[] assembleConfigItems() {
ConfigItemDTO[] configItems = new ConfigItemDTO[5]; ConfigItemDTO[] configItems = new ConfigItemDTO[5];
configItems[0] = assembleConfigItem(100, Constants.DEFAULT_CLUSTER_NAME, "6666", "6666.k1", "6666.v1"); configItems[0] = assembleConfigItem(100, ConfigConsts.DEFAULT_CLUSTER_NAME, "6666", "6666.k1", "6666.v1");
configItems[1] = assembleConfigItem(100, Constants.DEFAULT_CLUSTER_NAME, "6666", "6666.k2", "6666.v2"); configItems[1] = assembleConfigItem(100, ConfigConsts.DEFAULT_CLUSTER_NAME, "6666", "6666.k2", "6666.v2");
configItems[2] = assembleConfigItem(100, Constants.DEFAULT_CLUSTER_NAME, "6666", "6666.k3", "6666.v3"); configItems[2] = assembleConfigItem(100, ConfigConsts.DEFAULT_CLUSTER_NAME, "6666", "6666.k3", "6666.v3");
configItems[3] = assembleConfigItem(100, Constants.DEFAULT_CLUSTER_NAME, "5555", "5555.k1", "5555.v1"); configItems[3] = assembleConfigItem(100, ConfigConsts.DEFAULT_CLUSTER_NAME, "5555", "5555.k1", "5555.v1");
configItems[4] = assembleConfigItem(101, "cluster1", "6666", "6666.k1", "6666.v1"); configItems[4] = assembleConfigItem(101, "cluster1", "6666", "6666.k1", "6666.v1");
return configItems; return configItems;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment