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