use of com.alipay.sofa.rpc.boot.config.RegistryConfigureProcessor in project sofa-boot by alipay.
the class RegistryConfigContainer method getRegistryConfig.
/**
* @param registryAlias
* @return
* @throws SofaBootRpcRuntimeException
*/
public RegistryConfig getRegistryConfig(String registryAlias) throws SofaBootRpcRuntimeException {
RegistryConfig registryConfig;
String registryProtocol;
String registryAddress;
String currentDefaultAlias;
if (StringUtils.isNotBlank(customDefaultRegistry)) {
currentDefaultAlias = customDefaultRegistry;
} else {
currentDefaultAlias = DEFAULT_REGISTRY;
}
if (StringUtils.isEmpty(registryAlias)) {
registryAlias = currentDefaultAlias;
}
if (registryConfigs.get(registryAlias) != null) {
return registryConfigs.get(registryAlias);
}
// just for new address
if (DEFAULT_REGISTRY.equalsIgnoreCase(registryAlias)) {
registryAddress = sofaBootRpcProperties.getRegistryAddress();
} else if (registryAlias.equals(customDefaultRegistry)) {
registryAddress = customDefaultRegistryAddress;
} else {
registryAddress = sofaBootRpcProperties.getRegistries().get(registryAlias);
}
// for worst condition.
if (StringUtils.isBlank(registryAddress)) {
registryProtocol = SofaBootRpcConfigConstants.REGISTRY_PROTOCOL_LOCAL;
} else {
final int endIndex = registryAddress.indexOf("://");
if (endIndex != -1) {
registryProtocol = registryAddress.substring(0, endIndex);
} else {
registryProtocol = registryAlias;
}
}
if (registryConfigMap.get(registryProtocol) != null) {
RegistryConfigureProcessor registryConfigureProcessor = registryConfigMap.get(registryProtocol);
registryConfig = registryConfigureProcessor.buildFromAddress(registryAddress);
registryConfigs.put(registryAlias, registryConfig);
// 不再处理以.分隔的.
final Environment environment = sofaBootRpcProperties.getEnvironment();
if (environment.containsProperty(SofaOptions.CONFIG_RPC_REGISTER_REGISTRY_IGNORE)) {
if (Boolean.TRUE.toString().equalsIgnoreCase(environment.getProperty(SofaOptions.CONFIG_RPC_REGISTER_REGISTRY_IGNORE))) {
registryConfig.setRegister(false);
}
}
return registryConfig;
} else {
throw new SofaBootRpcRuntimeException(LogCodes.getLog(LogCodes.ERROR_REGISTRY_NOT_SUPPORT, registryAddress));
}
}
use of com.alipay.sofa.rpc.boot.config.RegistryConfigureProcessor in project sofa-boot by sofastack.
the class RegistryConfigContainer method getRegistryConfig.
/**
* @param registryAlias
* @return
* @throws SofaBootRpcRuntimeException
*/
public RegistryConfig getRegistryConfig(String registryAlias) throws SofaBootRpcRuntimeException {
RegistryConfig registryConfig;
String registryProtocol;
String registryAddress;
String currentDefaultAlias;
if (StringUtils.isNotBlank(customDefaultRegistry)) {
currentDefaultAlias = customDefaultRegistry;
} else {
currentDefaultAlias = DEFAULT_REGISTRY;
}
if (StringUtils.isEmpty(registryAlias)) {
registryAlias = currentDefaultAlias;
}
if (registryConfigs.get(registryAlias) != null) {
return registryConfigs.get(registryAlias);
}
// just for new address
if (DEFAULT_REGISTRY.equalsIgnoreCase(registryAlias)) {
registryAddress = sofaBootRpcProperties.getRegistryAddress();
} else if (registryAlias.equals(customDefaultRegistry)) {
registryAddress = customDefaultRegistryAddress;
} else {
registryAddress = sofaBootRpcProperties.getRegistries().get(registryAlias);
}
// for worst condition.
if (StringUtils.isBlank(registryAddress)) {
registryProtocol = SofaBootRpcConfigConstants.REGISTRY_PROTOCOL_LOCAL;
} else {
final int endIndex = registryAddress.indexOf("://");
if (endIndex != -1) {
registryProtocol = registryAddress.substring(0, endIndex);
} else {
registryProtocol = registryAlias;
}
}
if (registryConfigMap.get(registryProtocol) != null) {
RegistryConfigureProcessor registryConfigureProcessor = registryConfigMap.get(registryProtocol);
registryConfig = registryConfigureProcessor.buildFromAddress(registryAddress);
registryConfigs.put(registryAlias, registryConfig);
// 不再处理以.分隔的.
final Environment environment = sofaBootRpcProperties.getEnvironment();
if (environment.containsProperty(SofaOptions.CONFIG_RPC_REGISTER_REGISTRY_IGNORE)) {
if (Boolean.TRUE.toString().equalsIgnoreCase(environment.getProperty(SofaOptions.CONFIG_RPC_REGISTER_REGISTRY_IGNORE))) {
registryConfig.setRegister(false);
}
}
return registryConfig;
} else {
throw new SofaBootRpcRuntimeException(LogCodes.getLog(LogCodes.ERROR_REGISTRY_NOT_SUPPORT, registryAddress));
}
}
Aggregations