org.zodiac.sentinel.nacos.config.NacosDataSourceInfo Maven / Gradle / Ivy
The newest version!
package org.zodiac.sentinel.nacos.config;
import static com.alibaba.nacos.api.PropertyKeyConst.ACCESS_KEY;
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.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 java.util.Objects;
import java.util.Properties;
import javax.validation.constraints.NotEmpty;
import org.zodiac.sentinel.base.datasource.DataSourceType;
import org.zodiac.sentinel.base.datasource.model.AbstractDataSourceInfo;
import org.zodiac.sentinel.nacos.datasource.factory.SentinelNacosDataSourceFactoryBean;
public class NacosDataSourceInfo extends AbstractDataSourceInfo {
private String serverAddr;
private String username;
private String password;
@NotEmpty
private String groupId = "DEFAULT_GROUP";
@NotEmpty
private String dataId;
private String endpoint;
private String namespace;
private String accessKey;
private String secretKey;
public NacosDataSourceInfo() {
super(DataSourceType.nacos, SentinelNacosDataSourceFactoryBean.class.getName());
}
public String getServerAddr() {
return serverAddr;
}
public void setServerAddr(String serverAddr) {
this.serverAddr = serverAddr;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getEndpoint() {
return endpoint;
}
public void setEndpoint(String endpoint) {
this.endpoint = endpoint;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
public String getAccessKey() {
return accessKey;
}
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
public String getSecretKey() {
return secretKey;
}
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
public Properties toNacosConfigProperties() {
Properties properties = new Properties();
properties.put(SERVER_ADDR, Objects.toString(this.getServerAddr(), ""));
properties.put(USERNAME, Objects.toString(this.getUsername(), ""));
properties.put(PASSWORD, Objects.toString(this.getPassword(), ""));
properties.put(NAMESPACE, Objects.toString(this.getNamespace(), ""));
properties.put(ACCESS_KEY, Objects.toString(this.getAccessKey(), ""));
properties.put(SECRET_KEY, Objects.toString(this.getSecretKey(), ""));
String endpoint = Objects.toString(this.getEndpoint(), "");
if (endpoint.contains(":")) {
int index = endpoint.indexOf(":");
properties.put(ENDPOINT, endpoint.substring(0, index));
properties.put(ENDPOINT_PORT, endpoint.substring(index + 1));
} else {
properties.put(ENDPOINT, endpoint);
}
return properties;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result
+ Objects.hash(accessKey, dataId, endpoint, groupId, namespace, password, secretKey, serverAddr, username);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
NacosDataSourceInfo other = (NacosDataSourceInfo)obj;
return Objects.equals(accessKey, other.accessKey) && Objects.equals(dataId, other.dataId)
&& Objects.equals(endpoint, other.endpoint) && Objects.equals(groupId, other.groupId)
&& Objects.equals(namespace, other.namespace) && Objects.equals(password, other.password)
&& Objects.equals(secretKey, other.secretKey) && Objects.equals(serverAddr, other.serverAddr)
&& Objects.equals(username, other.username);
}
@Override
public String toString() {
return "SentinelNacosDataSourceInfo [serverAddr=" + serverAddr + ", username=" + username + ", password="
+ password + ", groupId=" + groupId + ", dataId=" + dataId + ", endpoint=" + endpoint + ", namespace="
+ namespace + ", accessKey=" + accessKey + ", secretKey=" + secretKey + ", getDataType()=" + getDataType()
+ ", getRule()=" + getRule() + ", getConverterClass()=" + getConverterClass() + "]";
}
}