Skip to content

Commit

Permalink
fix bug: config with registries and registryIds, protocols and protoc…
Browse files Browse the repository at this point in the history
…olIds is chaotic (apache#6968)
  • Loading branch information
wikiwikiwiki committed Feb 8, 2021
1 parent 75f04bf commit f7c6396
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,10 @@ private void convertRegistryIdsToRegistries() {

}

protected boolean notHasSelfRegistryProperty() {
return CollectionUtils.isEmpty(registries) && StringUtils.isEmpty(registryIds);
}

public void completeCompoundConfigs(AbstractInterfaceConfig interfaceConfig) {
if (interfaceConfig != null) {
if (application == null) {
Expand All @@ -320,24 +324,26 @@ public void completeCompoundConfigs(AbstractInterfaceConfig interfaceConfig) {
if (module == null) {
setModule(interfaceConfig.getModule());
}
if (registries == null) {
if (notHasSelfRegistryProperty()) {
setRegistries(interfaceConfig.getRegistries());
setRegistryIds(interfaceConfig.getRegistryIds());
}
if (monitor == null) {
setMonitor(interfaceConfig.getMonitor());
}
}
if (module != null) {
if (registries == null) {
if (notHasSelfRegistryProperty()) {
setRegistries(module.getRegistries());
}
if (monitor == null) {
setMonitor(module.getMonitor());
}
}
if (application != null) {
if (registries == null) {
if (notHasSelfRegistryProperty()) {
setRegistries(application.getRegistries());
setRegistryIds(application.getRegistryIds());
}
if (monitor == null) {
setMonitor(application.getMonitor());
Expand All @@ -346,10 +352,9 @@ public void completeCompoundConfigs(AbstractInterfaceConfig interfaceConfig) {
}

protected void computeValidRegistryIds() {
if (StringUtils.isEmpty(getRegistryIds())) {
if (getApplication() != null && StringUtils.isNotEmpty(getApplication().getRegistryIds())) {
setRegistryIds(getApplication().getRegistryIds());
}
if (application != null && notHasSelfRegistryProperty()) {
setRegistries(application.getRegistries());
setRegistryIds(application.getRegistryIds());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,12 +259,14 @@ public void resolveFile() {

@Override
protected void computeValidRegistryIds() {
super.computeValidRegistryIds();
if (StringUtils.isEmpty(getRegistryIds())) {
if (getConsumer() != null && StringUtils.isNotEmpty(getConsumer().getRegistryIds())) {
setRegistryIds(getConsumer().getRegistryIds());
if (consumer != null) {
if (notHasSelfRegistryProperty()) {
setRegistries(consumer.getRegistries());
setRegistryIds(consumer.getRegistryIds());
}
}

super.computeValidRegistryIds();
}

@Parameter(excluded = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,32 +202,35 @@ public void checkDefault() throws IllegalStateException {
}

public void checkProtocol() {
if (provider != null && notHasSelfProtocolProperty()) {
setProtocols(provider.getProtocols());
setProtocolIds(provider.getProtocolIds());
}

if (CollectionUtils.isEmpty(protocols) && provider != null) {
setProtocols(provider.getProtocols());
}
convertProtocolIdsToProtocols();
}

private boolean notHasSelfProtocolProperty() {
return CollectionUtils.isEmpty(protocols) && StringUtils.isEmpty(protocolIds);
}

public void completeCompoundConfigs() {
super.completeCompoundConfigs(provider);
if (provider != null) {
if (protocols == null) {
if (notHasSelfProtocolProperty()) {
setProtocols(provider.getProtocols());
setProtocolIds(provider.getProtocolIds());
}
if (configCenter == null) {
setConfigCenter(provider.getConfigCenter());
}
if (StringUtils.isEmpty(registryIds)) {
setRegistryIds(provider.getRegistryIds());
}
if (StringUtils.isEmpty(protocolIds)) {
setProtocolIds(provider.getProtocolIds());
}
}
}

private void convertProtocolIdsToProtocols() {
computeValidProtocolIds();
if (StringUtils.isEmpty(protocolIds)) {
if (CollectionUtils.isEmpty(protocols)) {
List<ProtocolConfig> protocolConfigs = ApplicationModel.getConfigManager().getDefaultProtocols();
Expand Down Expand Up @@ -413,22 +416,14 @@ public String getVersion() {
return StringUtils.isEmpty(this.version) ? (provider != null ? provider.getVersion() : this.version) : this.version;
}

private void computeValidProtocolIds() {
if (StringUtils.isEmpty(getProtocolIds())) {
if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getProtocolIds())) {
setProtocolIds(getProvider().getProtocolIds());
}
}
}

@Override
protected void computeValidRegistryIds() {
super.computeValidRegistryIds();
if (StringUtils.isEmpty(getRegistryIds())) {
if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getRegistryIds())) {
setRegistryIds(getProvider().getRegistryIds());
}
if (provider != null && notHasSelfRegistryProperty()) {
setRegistries(provider.getRegistries());
setRegistryIds(provider.getRegistryIds());
}

super.computeValidRegistryIds();
}

public abstract void export();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -424,11 +424,6 @@ public void checkAndUpdateSubConfigs() {
throw new IllegalStateException("<dubbo:reference interface=\"\" /> interface not allow null!");
}
completeCompoundConfigs(consumer);
if (consumer != null) {
if (StringUtils.isEmpty(registryIds)) {
setRegistryIds(consumer.getRegistryIds());
}
}
// get consumer's global configuration
checkDefault();

Expand Down

0 comments on commit f7c6396

Please sign in to comment.