
com.huaweicloud.config.client.ConfigCenterClient Maven / Gradle / Ivy
package com.huaweicloud.config.client;
import com.fasterxml.jackson.core.type.TypeReference;
import com.huaweicloud.common.exception.RemoteOperationException;
import com.huaweicloud.common.exception.RemoteServerUnavailableException;
import com.huaweicloud.common.transport.HttpTransport;
import com.huaweicloud.common.transport.Response;
import com.huaweicloud.config.ServiceCombConfigProperties;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.HttpStatus;
import org.apache.servicecomb.foundation.common.utils.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
/**
* @Author GuoYl123
* @Date 2020/7/14
**/
public class ConfigCenterClient extends ServiceCombConfigClient {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigCenterClient.class);
public ConfigCenterClient(String urls,
HttpTransport httpTransport) {
super(urls, httpTransport);
}
public Map loadAll(ServiceCombConfigProperties serviceCombConfigProperties,
String project) throws RemoteOperationException {
project = StringUtils.isEmpty(project) ? ConfigConstants.DEFAULT_PROJECT : project;
String dimensionsInfo = spliceDimensionsInfo(serviceCombConfigProperties);
Response response = null;
Map result = new HashMap<>();
try {
response = httpTransport.sendGetRequest(
configCenterConfig.getUrl() + "/" + ConfigConstants.DEFAULT_API_VERSION
+ "/" + project + "/configuration/items?dimensionsInfo="
+ URLEncoder.encode(dimensionsInfo, "UTF-8") + "&revision=" + revision);
if (response == null) {
return result;
}
if (response.getStatusCode() == HttpStatus.SC_OK) {
LOGGER.debug(response.getContent());
Map> allConfigMap = JsonUtils.OBJ_MAPPER
.readValue(response.getContent(),
new TypeReference
© 2015 - 2025 Weber Informatics LLC | Privacy Policy