Add new configuration item.

Fixed equals and hash method.
Replaced StringUtils, Spring's isEmpty method is deprecated.
pull/2360/head
Freeman Lau 3 years ago
parent 9a4a7d6f42
commit 5850798977

@ -19,16 +19,13 @@ package com.alibaba.cloud.nacos;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.PostConstruct;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.cloud.nacos.event.NacosDiscoveryInfoChangedEvent;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.PreservedMetadataKeys;
@ -44,18 +41,8 @@ import org.springframework.cloud.commons.util.InetUtils;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import static com.alibaba.nacos.api.PropertyKeyConst.ACCESS_KEY;
import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME;
import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT;
import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT_PORT;
import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE;
import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;
import static com.alibaba.nacos.api.PropertyKeyConst.PASSWORD;
import static com.alibaba.nacos.api.PropertyKeyConst.SECRET_KEY;
import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;
import static com.alibaba.nacos.api.PropertyKeyConst.USERNAME;
import static com.alibaba.nacos.api.PropertyKeyConst.*;
/**
* @author dungu.zpf
@ -63,6 +50,7 @@ import static com.alibaba.nacos.api.PropertyKeyConst.USERNAME;
* @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
* @author <a href="mailto:lyuzb@lyuzb.com">lyuzb</a>
* @author <a href="mailto:78552423@qq.com">eshun</a>
* @author freeman
*/
@ConfigurationProperties("spring.cloud.nacos.discovery")
public class NacosDiscoveryProperties {
@ -207,6 +195,12 @@ public class NacosDiscoveryProperties {
*/
private boolean ephemeral = true;
/**
* Whether to enable nacos failure tolerance. If enabled, nacos will return cached
* values when exceptions occur.
*/
private boolean failureToleranceEnabled = true;
@Autowired
private InetUtils inetUtils;
@ -486,6 +480,14 @@ public class NacosDiscoveryProperties {
this.ephemeral = ephemeral;
}
public boolean isFailureToleranceEnabled() {
return failureToleranceEnabled;
}
public void setFailureToleranceEnabled(boolean failureToleranceEnabled) {
this.failureToleranceEnabled = failureToleranceEnabled;
}
@Override
public boolean equals(Object o) {
if (this == o) {
@ -495,7 +497,12 @@ public class NacosDiscoveryProperties {
return false;
}
NacosDiscoveryProperties that = (NacosDiscoveryProperties) o;
return Objects.equals(serverAddr, that.serverAddr)
return watchDelay == that.watchDelay && Float.compare(that.weight, weight) == 0
&& registerEnabled == that.registerEnabled && port == that.port
&& secure == that.secure && instanceEnabled == that.instanceEnabled
&& ephemeral == that.ephemeral
&& failureToleranceEnabled == that.failureToleranceEnabled
&& Objects.equals(serverAddr, that.serverAddr)
&& Objects.equals(username, that.username)
&& Objects.equals(password, that.password)
&& Objects.equals(endpoint, that.endpoint)
@ -503,8 +510,9 @@ public class NacosDiscoveryProperties {
&& Objects.equals(logName, that.logName)
&& Objects.equals(service, that.service)
&& Objects.equals(clusterName, that.clusterName)
&& Objects.equals(group, that.group) && Objects.equals(ip, that.ip)
&& Objects.equals(port, that.port)
&& Objects.equals(group, that.group)
&& Objects.equals(namingLoadCacheAtStart, that.namingLoadCacheAtStart)
&& Objects.equals(metadata, that.metadata) && Objects.equals(ip, that.ip)
&& Objects.equals(networkInterface, that.networkInterface)
&& Objects.equals(accessKey, that.accessKey)
&& Objects.equals(secretKey, that.secretKey)
@ -517,14 +525,15 @@ public class NacosDiscoveryProperties {
public int hashCode() {
return Objects.hash(serverAddr, username, password, endpoint, namespace,
watchDelay, logName, service, weight, clusterName, group,
namingLoadCacheAtStart, registerEnabled, ip, networkInterface, port,
secure, accessKey, secretKey, heartBeatInterval, heartBeatTimeout,
ipDeleteTimeout, instanceEnabled, ephemeral);
namingLoadCacheAtStart, metadata, registerEnabled, ip, networkInterface,
port, secure, accessKey, secretKey, heartBeatInterval, heartBeatTimeout,
ipDeleteTimeout, instanceEnabled, ephemeral, failureToleranceEnabled);
}
@Override
public String toString() {
return "NacosDiscoveryProperties{" + "serverAddr='" + serverAddr + '\''
+ ", username='" + username + '\'' + ", password='" + password + '\''
+ ", endpoint='" + endpoint + '\'' + ", namespace='" + namespace + '\''
+ ", watchDelay=" + watchDelay + ", logName='" + logName + '\''
+ ", service='" + service + '\'' + ", weight=" + weight
@ -535,7 +544,9 @@ public class NacosDiscoveryProperties {
+ ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey
+ '\'' + ", secretKey='" + secretKey + '\'' + ", heartBeatInterval="
+ heartBeatInterval + ", heartBeatTimeout=" + heartBeatTimeout
+ ", ipDeleteTimeout=" + ipDeleteTimeout + '}';
+ ", ipDeleteTimeout=" + ipDeleteTimeout + ", instanceEnabled="
+ instanceEnabled + ", ephemeral=" + ephemeral
+ ", failureToleranceEnabled=" + failureToleranceEnabled + '}';
}
public void overrideFromEnv(Environment env) {

@ -74,11 +74,5 @@
"type": "java.lang.Boolean",
"defaultValue": false,
"description": "Integrate LoadBalancer or not."
},
{
"name": "spring.cloud.nacos.discovery.failure-tolerance-enabled",
"type": "java.lang.Boolean",
"defaultValue": true,
"description": "Whether to enable nacos failure tolerance. If enabled, nacos will return cached values when exceptions occur."
}
]}

Loading…
Cancel
Save