in dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java [115:150]
public void deleteOverride(String id) {
if (StringUtils.isEmpty(id)) {
// throw exception
}
String path = getPath(id);
String config = dynamicConfiguration.getConfig(path);
if (config == null) {
//throw exception
}
OverrideDTO overrideDTO = YamlParser.loadObject(config, OverrideDTO.class);
DynamicConfigDTO old = OverrideUtils.createFromOverride(overrideDTO);
List<OverrideConfig> newConfigs = new ArrayList<>();
if (overrideDTO.getConfigs() != null && overrideDTO.getConfigs().size() > 0) {
for (OverrideConfig overrideConfig : overrideDTO.getConfigs()) {
if (Constants.CONFIGS.contains(overrideConfig.getType())) {
newConfigs.add(overrideConfig);
}
}
if (newConfigs.size() == 0) {
dynamicConfiguration.deleteConfig(path);
} else {
overrideDTO.setConfigs(newConfigs);
dynamicConfiguration.setConfig(path, YamlParser.dumpObject(overrideDTO));
}
} else {
dynamicConfiguration.deleteConfig(path);
}
//for 2.6
if (Constants.SERVICE.equals(overrideDTO.getScope())) {
List<Override> overrides = convertDTOtoOldOverride(old);
for (Override o : overrides) {
registry.unregister(o.toUrl().addParameter(Constants.COMPATIBLE_CONFIG, true));
}
}
}