|
|
|
@ -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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|