diff --git a/README.md b/README.md
index 32ed8d6f910c..46e07f000be2 100644
--- a/README.md
+++ b/README.md
@@ -74,15 +74,15 @@ For a more intimate guide, please check out our *[Introduction to Pinpoint](http
Java version required to run Pinpoint:
-Pinpoint Version | Agent | Collector | Web
----------------- | ----- | --------- | ---
-1.8.0 | 6-10 | 8 | 8
-1.8.1+ | 6-11 | 8 | 8
-2.0.x | 6-13 | 8 | 8
-2.1.x | 6-14 | 8 | 8
-2.2.x | 7-14 | 8 | 8
-2.3.x | 7-17 | 8 | 8
-2.4.x | 7-18 | 8 | 8
+Pinpoint Version | Agent | Collector | Web | Flink
+---------------- | ----- | --------- | --- | ---
+1.8.0 | 6-10 | 8 | 8 | 8
+1.8.1+ | 6-11 | 8 | 8 | 8
+2.0.x | 6-13 | 8 | 8 | 8
+2.1.x | 6-14 | 8 | 8 | 8
+2.2.x | 7-14 | 8 | 8 | 8
+2.3.x | 7-17 | 8 | 8 | 8
+2.4.x | 7-18 | 11 | 11 | 11
HBase compatibility table:
diff --git a/batch/pom.xml b/batch/pom.xml
index b5c2c8cdb206..fc5c34efb293 100644
--- a/batch/pom.xml
+++ b/batch/pom.xml
@@ -12,9 +12,9 @@
pinpoint-batch
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${log4j2-jdk8.version}
${thrift-jdk8.version}
diff --git a/collector/pom.xml b/collector/pom.xml
index 8cdca03968ac..c980c2891343 100644
--- a/collector/pom.xml
+++ b/collector/pom.xml
@@ -29,9 +29,9 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${guava-jdk8.version}
${javax.servlet4.version}
diff --git a/collector/src/main/java/com/navercorp/pinpoint/collector/receiver/thrift/udp/ReusePortSocketOptionApplier.java b/collector/src/main/java/com/navercorp/pinpoint/collector/receiver/thrift/udp/ReusePortSocketOptionApplier.java
index d84e97db3ad6..e7a3bb5dc540 100644
--- a/collector/src/main/java/com/navercorp/pinpoint/collector/receiver/thrift/udp/ReusePortSocketOptionApplier.java
+++ b/collector/src/main/java/com/navercorp/pinpoint/collector/receiver/thrift/udp/ReusePortSocketOptionApplier.java
@@ -16,14 +16,13 @@
package com.navercorp.pinpoint.collector.receiver.thrift.udp;
+import com.navercorp.pinpoint.common.util.OsType;
+import com.navercorp.pinpoint.common.util.OsUtils;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.net.DatagramSocket;
-import java.net.SocketOption;
import java.net.StandardSocketOptions;
/**
@@ -33,9 +32,7 @@ public class ReusePortSocketOptionApplier {
private static final Logger LOGGER = LogManager.getLogger(ReusePortSocketOptionApplier.class);
- private static final String FIELD_NAME_SO_REUSEPORT = "SO_REUSEPORT";
-
- private static final SocketOption REUSE_PORT_SOCKET_OPTION = getReusePortSocketOption();
+ private static final OsType[] UNSUPPORTED_OS = new OsType[]{OsType.WINDOW, OsType.SOLARIS};
private final boolean reusePortEnable;
private final int socketCount;
@@ -50,14 +47,9 @@ public void apply(DatagramSocket socket) throws IOException {
return;
}
try {
- Method setOptionMethod = DatagramSocket.class.getDeclaredMethod("setOption", SocketOption.class, Object.class);
- setOptionMethod.invoke(socket, REUSE_PORT_SOCKET_OPTION, true);
- } catch (Exception e) {
+ socket.setOption(StandardSocketOptions.SO_REUSEPORT, true);
+ } catch (IOException e) {
LOGGER.warn("setOption invoke error", e);
- if (e instanceof IOException) {
- throw (IOException)e;
- }
- throw new IOException("setOption invoke error", e);
}
}
@@ -70,31 +62,24 @@ public int getSocketCount() {
}
public static ReusePortSocketOptionApplier create(boolean reusePort, int socketCount) {
- if (REUSE_PORT_SOCKET_OPTION != null) {
- return new ReusePortSocketOptionApplier(reusePort, socketCount);
- }
- if (reusePort) {
- LOGGER.warn("ReusePort not supported, Please use Jvm9+ for using ReusePort SocketOption");
+ if (isUnsupportedOS()) {
+ if (reusePort) {
+ LOGGER.warn("ReusePort not supported, OS:{}", OsUtils.getType());
+ }
+ return new ReusePortSocketOptionApplier(false, socketCount);
}
- return new ReusePortSocketOptionApplier(false, socketCount);
+
+ return new ReusePortSocketOptionApplier(reusePort, socketCount);
}
- private static SocketOption getReusePortSocketOption() {
- try {
- Field[] declaredFields = StandardSocketOptions.class.getDeclaredFields();
- for (Field declaredField : declaredFields) {
- if (declaredField.getName().equals(FIELD_NAME_SO_REUSEPORT)) {
- Object socketOption = declaredField.get(null);
- if (socketOption instanceof SocketOption) {
- LOGGER.info("{} option found", FIELD_NAME_SO_REUSEPORT);
- return (SocketOption) socketOption;
- }
- }
+ private static boolean isUnsupportedOS() {
+ final OsType osType = OsUtils.getType();
+ for (OsType unsupportedO : UNSUPPORTED_OS) {
+ if (osType.equals(unsupportedO)) {
+ return true;
}
- } catch (Exception ignore) {
- // ignores
}
- return null;
+ return false;
}
@Override
diff --git a/commons-hbase/pom.xml b/commons-hbase/pom.xml
index a3d8230db35a..b85b0fdcb5bc 100644
--- a/commons-hbase/pom.xml
+++ b/commons-hbase/pom.xml
@@ -29,9 +29,9 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${log4j2-jdk8.version}
diff --git a/commons-server/pom.xml b/commons-server/pom.xml
index 47cbcfe72489..875234e21c4f 100644
--- a/commons-server/pom.xml
+++ b/commons-server/pom.xml
@@ -29,10 +29,10 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
+ 11
+ ${env.JAVA_11_HOME}
+ true
${jdk.home}
- java18
${log4j2-jdk8.version}
${guava-jdk8.version}
diff --git a/flink/pom.xml b/flink/pom.xml
index a394807c4fbe..187c7e9e4c21 100644
--- a/flink/pom.xml
+++ b/flink/pom.xml
@@ -30,9 +30,10 @@
pinpoint-flink
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
+
${log4j2-jdk8.version}
${thrift-jdk8.version}
diff --git a/hbase/hbase-schema-definition/pom.xml b/hbase/hbase-schema-definition/pom.xml
index 7b26e59d13fe..af32204080a4 100644
--- a/hbase/hbase-schema-definition/pom.xml
+++ b/hbase/hbase-schema-definition/pom.xml
@@ -38,4 +38,25 @@
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ 2.3.3
+
+
+ com.sun.xml.bind
+ jaxb-impl
+ 2.3.3
+ runtime
+
+
+
+
\ No newline at end of file
diff --git a/hbase/pom.xml b/hbase/pom.xml
index 1c5c3ea15268..69abcab6781c 100644
--- a/hbase/pom.xml
+++ b/hbase/pom.xml
@@ -14,9 +14,10 @@
pom
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
+
${log4j2-jdk8.version}
diff --git a/hbase2-module/hbase2-batch/pom.xml b/hbase2-module/hbase2-batch/pom.xml
index 5d4dd08f405a..706402868300 100644
--- a/hbase2-module/hbase2-batch/pom.xml
+++ b/hbase2-module/hbase2-batch/pom.xml
@@ -13,9 +13,9 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${log4j2-jdk8.version}
${project.artifactId}-${project.version}
diff --git a/hbase2-module/hbase2-collector/pom.xml b/hbase2-module/hbase2-collector/pom.xml
index 3be492b146c7..37636f6dedf4 100644
--- a/hbase2-module/hbase2-collector/pom.xml
+++ b/hbase2-module/hbase2-collector/pom.xml
@@ -28,9 +28,9 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${guava-jdk8.version}
${javax.servlet4.version}
diff --git a/hbase2-module/hbase2-flink/pom.xml b/hbase2-module/hbase2-flink/pom.xml
index 684f3a2254ac..959ad8d61134 100644
--- a/hbase2-module/hbase2-flink/pom.xml
+++ b/hbase2-module/hbase2-flink/pom.xml
@@ -28,9 +28,9 @@
pinpoint-hbase2-flink
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
${log4j2-jdk8.version}
diff --git a/hbase2-module/hbase2-web/pom.xml b/hbase2-module/hbase2-web/pom.xml
index 11eba66c8781..94c76fdb0596 100644
--- a/hbase2-module/hbase2-web/pom.xml
+++ b/hbase2-module/hbase2-web/pom.xml
@@ -28,9 +28,10 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
+
build_release_without_lint
diff --git a/pom.xml b/pom.xml
index c93d92bb537f..2b7f9c3a373a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -198,7 +198,7 @@
3.14.0
3.0.0
- 1.19
+ 1.20
java17
diff --git a/web/pom.xml b/web/pom.xml
index 281c852d5134..7fa82e5b4f92 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -29,9 +29,10 @@
jar
- 1.8
- ${env.JAVA_8_HOME}
- java18
+ 11
+ ${env.JAVA_11_HOME}
+ true
+
build_release_without_lint