|
@@ -17,33 +17,20 @@
|
|
|
|
|
|
package org.apache.dolphinscheduler.remote.utils;
|
|
|
|
|
|
+import static org.apache.dolphinscheduler.common.constants.Constants.COLON;
|
|
|
+
|
|
|
import java.io.Serializable;
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
+import lombok.Data;
|
|
|
import lombok.NonNull;
|
|
|
|
|
|
-/**
|
|
|
- * server address
|
|
|
- */
|
|
|
+@Data
|
|
|
public class Host implements Serializable {
|
|
|
|
|
|
- private static final String COLON = ":";
|
|
|
-
|
|
|
public static final Host EMPTY = new Host();
|
|
|
|
|
|
- /**
|
|
|
- * address
|
|
|
- */
|
|
|
- private String address;
|
|
|
-
|
|
|
- /**
|
|
|
- * ip
|
|
|
- */
|
|
|
private String ip;
|
|
|
|
|
|
- /**
|
|
|
- * port
|
|
|
- */
|
|
|
private int port;
|
|
|
|
|
|
public Host() {
|
|
@@ -52,107 +39,23 @@ public class Host implements Serializable {
|
|
|
public Host(String ip, int port) {
|
|
|
this.ip = ip;
|
|
|
this.port = port;
|
|
|
- this.address = ip + COLON + port;
|
|
|
}
|
|
|
|
|
|
public Host(String address) {
|
|
|
- String[] parts = splitAddress(address);
|
|
|
- this.ip = parts[0];
|
|
|
- this.port = Integer.parseInt(parts[1]);
|
|
|
- this.address = address;
|
|
|
- }
|
|
|
-
|
|
|
- public String getAddress() {
|
|
|
- return address;
|
|
|
- }
|
|
|
-
|
|
|
- public void setAddress(String address) {
|
|
|
- String[] parts = splitAddress(address);
|
|
|
- this.ip = parts[0];
|
|
|
- this.port = Integer.parseInt(parts[1]);
|
|
|
- this.address = address;
|
|
|
- }
|
|
|
-
|
|
|
- public String getIp() {
|
|
|
- return ip;
|
|
|
- }
|
|
|
-
|
|
|
- public void setIp(String ip) {
|
|
|
- this.ip = ip;
|
|
|
- this.address = ip + COLON + port;
|
|
|
- }
|
|
|
-
|
|
|
- public int getPort() {
|
|
|
- return port;
|
|
|
- }
|
|
|
-
|
|
|
- public void setPort(int port) {
|
|
|
- this.port = port;
|
|
|
- this.address = ip + COLON + port;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * address convert host
|
|
|
- *
|
|
|
- * @param address address
|
|
|
- * @return host
|
|
|
- */
|
|
|
- public static Host of(@NonNull String address) {
|
|
|
- String[] parts = splitAddress(address);
|
|
|
- return new Host(parts[0], Integer.parseInt(parts[1]));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * address convert host
|
|
|
- *
|
|
|
- * @param address address
|
|
|
- * @return host
|
|
|
- */
|
|
|
- public static String[] splitAddress(String address) {
|
|
|
- if (address == null) {
|
|
|
- throw new IllegalArgumentException("Host : address is null.");
|
|
|
- }
|
|
|
- String[] parts = address.split(COLON);
|
|
|
- if (parts.length != 2) {
|
|
|
+ int lastColonIndex = address.lastIndexOf(COLON);
|
|
|
+ if (lastColonIndex < 0) {
|
|
|
throw new IllegalArgumentException(String.format("Host : %s illegal.", address));
|
|
|
}
|
|
|
- return parts;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * whether old version
|
|
|
- *
|
|
|
- * @param address address
|
|
|
- * @return old version is true , otherwise is false
|
|
|
- */
|
|
|
- public static Boolean isOldVersion(String address) {
|
|
|
- String[] parts = address.split(COLON);
|
|
|
- return parts.length != 2;
|
|
|
+ this.ip = address.substring(0, lastColonIndex);
|
|
|
+ this.port = Integer.parseInt(address.substring(lastColonIndex + 1));
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public String toString() {
|
|
|
- return "Host{"
|
|
|
- + "address='" + address + '\''
|
|
|
- + ", ip='" + ip + '\''
|
|
|
- + ", port=" + port
|
|
|
- + '}';
|
|
|
+ public String getAddress() {
|
|
|
+ return ip + COLON + port;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public boolean equals(Object o) {
|
|
|
- if (this == o) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- if (o == null || getClass() != o.getClass()) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- Host host = (Host) o;
|
|
|
- return port == host.port && Objects.equals(address, host.address) && Objects.equals(ip, host.ip);
|
|
|
+ public static Host of(@NonNull String address) {
|
|
|
+ return new Host(address);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public int hashCode() {
|
|
|
- return Objects.hash(address, ip, port);
|
|
|
- }
|
|
|
}
|