You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zh...@apache.org on 2023/07/19 09:26:06 UTC
[dolphinscheduler] branch dev updated: Support parse ipv6 (#14584)
This is an automated email from the ASF dual-hosted git repository.
zhongjiajie pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 93c3871925 Support parse ipv6 (#14584)
93c3871925 is described below
commit 93c387192562cd0e5680ede709626bff70ec942b
Author: Wenjun Ruan <we...@apache.org>
AuthorDate: Wed Jul 19 17:25:58 2023 +0800
Support parse ipv6 (#14584)
---
.../api/service/LoggerServiceTest.java | 2 +-
.../registry/api/RegistryClient.java | 6 +-
.../apache/dolphinscheduler/remote/utils/Host.java | 121 ++-------------------
.../dolphinscheduler/remote/utils/HostTest.java | 6 +-
4 files changed, 21 insertions(+), 114 deletions(-)
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/LoggerServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/LoggerServiceTest.java
index 51b9faf55c..8b0594faf6 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/LoggerServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/LoggerServiceTest.java
@@ -183,7 +183,7 @@ public class LoggerServiceTest {
.thenReturn(new byte[0]);
Mockito.when(projectMapper.queryProjectByTaskInstanceId(1)).thenReturn(project);
byte[] result = loggerService.getLogBytes(loginUser, 1);
- Assertions.assertEquals(90, result.length);
+ Assertions.assertEquals(62, result.length);
}
@Test
diff --git a/dolphinscheduler-registry/dolphinscheduler-registry-api/src/main/java/org/apache/dolphinscheduler/registry/api/RegistryClient.java b/dolphinscheduler-registry/dolphinscheduler-registry-api/src/main/java/org/apache/dolphinscheduler/registry/api/RegistryClient.java
index 4423a0ffd1..6b8046b6e2 100644
--- a/dolphinscheduler-registry/dolphinscheduler-registry-api/src/main/java/org/apache/dolphinscheduler/registry/api/RegistryClient.java
+++ b/dolphinscheduler-registry/dolphinscheduler-registry-api/src/main/java/org/apache/dolphinscheduler/registry/api/RegistryClient.java
@@ -109,10 +109,10 @@ public class RegistryClient {
// todo: add host, port in heartBeat Info, so that we don't need to parse this again
server.setZkDirectory(registryNodeType.getRegistryPath() + "/" + serverPath);
// set host and port
- String[] hostAndPort = serverPath.split(Constants.COLON);
+ int lastColonIndex = serverPath.lastIndexOf(":");
// fetch the last one
- server.setHost(hostAndPort[0]);
- server.setPort(Integer.parseInt(hostAndPort[1]));
+ server.setHost(serverPath.substring(0, lastColonIndex));
+ server.setPort(Integer.parseInt(serverPath.substring(lastColonIndex + 1)));
serverList.add(server);
}
return serverList;
diff --git a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/utils/Host.java b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/utils/Host.java
index ccc4af829d..94a852ea33 100644
--- a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/utils/Host.java
+++ b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/utils/Host.java
@@ -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);
- }
}
diff --git a/dolphinscheduler-remote/src/test/java/org/apache/dolphinscheduler/remote/utils/HostTest.java b/dolphinscheduler-remote/src/test/java/org/apache/dolphinscheduler/remote/utils/HostTest.java
index ce8859fd9b..ce8a433a4b 100644
--- a/dolphinscheduler-remote/src/test/java/org/apache/dolphinscheduler/remote/utils/HostTest.java
+++ b/dolphinscheduler-remote/src/test/java/org/apache/dolphinscheduler/remote/utils/HostTest.java
@@ -29,9 +29,13 @@ public class HostTest {
public void testHost() {
Host host = Host.of("192.158.2.2:22");
Assertions.assertEquals(22, host.getPort());
- host.setAddress("127.0.0.1:8888");
+ host = new Host("127.0.0.1:8888");
Assertions.assertEquals("127.0.0.1", host.getIp());
Assertions.assertEquals(8888, host.getPort());
+
+ host = new Host("2001:db8:1::ab9:C0A8:102:5678");
+ Assertions.assertEquals("2001:db8:1::ab9:C0A8:102", host.getIp());
+ Assertions.assertEquals(5678, host.getPort());
}
}